I have not found a satisfactory method of adding extra width to glyphs like lslash. The slash is added as a ‘diacritic’ and thusly does not change the sidebearings of the base glyph, the ‘l’. It is often I would like to change the sidebearings of the composite, and the only way to do it is to disable automatic alignment of the l, but retain it on the slash. Then set the wanted either on the composite and/or on the slash, and then use metrics key to the slash. But then the sidebearings are not updated automatically.
Your way doesn’t take into account the space of the slash. You set a multiple of the ‘l’ sidebearings. It is the width of the slash that needs to set the sidebearings. Your method is specifically what I want to avoid, because it is the wrong way around.
You add to the sidebearings of the ‘l’. It would be better to take the sidebearings from the slash. Right now I’m doing that by setting the lslash sidebearings to =slash. This is not automatically updated – it would be nice if it was.
This is a general problem. The system of alignment of composites is too simplistic, and we end up with hacks to get things done. Hacks are bad. What we need is some system so that we can rigorously define positions and other glyph properties, to a degree that we never have to visit that glyph again. It should be ‘Set it and forget it’. Anchors gets us some of the way but eg. in this example will not help us.
Or use the “l” as a “mark” on the slash glyph. So you reverse the component order and you need to adjust the anchor setup (use a “connect” anchor, or “#slash”/“_#slash” (put it on the baseline (or any known vertical height)).