[Fontinst] letterspacing

Philipp Lehman lehman at gmx.net
Thu May 26 12:55:26 CEST 2005


Am Mittwoch, 25. Mai 2005 20:17 schrieb Lars Hellström:

> "ligaturing" is mostly a parameter for the encoding variations
> within OT1 between the various CM fonts, but it exists also in
> t1.etx to simplify making fonts with nonstandard sets of ligatures.

It's t1.etx I have in mind, I didn't check ot1.etx.

> The tricky issue seems to be that there is both SS (which is never
> letterspaced) and SSspaced (which is spaced by capspacing).
> Although this is not necessarily the right interpretation, one can
> read t1.etx as saying that when letterspacing is applied one should
> define
>
>   \setcommand\uclig#1#2{#1spaced}
>
> which has the effect of selecting IJspaced and SSspaced. Is this
> reasonable? I can't say for sure.

It's not unreasonable, but it seems overly complicated. SS should 
always be spaced out if letterspacing is applied, so it's always 
SSspaced in practice.

> >I believe it should be sufficient to set letterspacing=value and
> >ligaturing=0.
>
> ligaturing=0 primarily to turn off the lower case ligatures, you
> mean?

Lowercase ligatures, but also small caps ligatures (see below) and 
possibly also some selected uppercase ligs (SS and IJ).

> Hmmm...  A couple of days ago I changed in the forthcoming release
> the defaults for capspacing and smallcapsspacing to be the value of
> letterspacing (if that is set, otherwise 0 as now). This means that
> in order to have it as you wish one would only have to change the
> default for \uclig if ligaturing=0, which does not seem
> unreasonable.

There's one more problem with SSsmall. Suppose I'm building a titling 
font, caps & small caps only, all conveniently spaced out. I have 
expert fonts with native small caps. The ETX file is t1c.etx, which 
defines \uclig#1#2{#1spaced}. With the default setup, I still need 
two fixes:

\resetglyph{SSspaced}
  \glyph{S}{1000}
  \movert{\int{letterspacing}}
  \glyph{S}{1000}
\endsetglyph

\resetglyph{SSsmall}
  \glyph{Ssmall}{1000}
  \movert{\int{letterspacing}}
  \glyph{Ssmall}{1000}
\endsetglyph

Now you mentioned that there is a problem with legacy code being left 
over in lsfake.mtx. If I comment that out, defining \uclig and 
setting ligaturing=0 is sufficient as far as SSspaced is concerned, 
but I still have to break up SSsmall explicitly. Redefining \lclig 
does not have the desired effect because "germandbls" is controlled 
by \lc. I obviously can't define \lc#1#2{#1spaced} since I need 
{#1small} for all glyphs except for "germandbls" which should become 
Ssmall+Ssmall with letterspacing.

> Whether it all makes sense (or should be replaced by something
> simpler) is however also a question that should be asked.

It seems a bit convoluted to me as well, but I might be missing some 
of the finer points.

> >I suppose this applies to IJ/ij as well,
>
> Yes, but whether that is a good thing is harder to say. Alan's
> comments in t1.etx say that these should ideally be one character
> wide in a monowidth font.
>
> >but I'm not sure about º/‡ and /Ê.
>
> I'm afraid that got badly garbled.

That's \AE, \ae, \OE, and \oe (and also \IJ and \ij). Note that the 
above is really a question, I don't know. It might very well be the 
case that a ligature (say, IJ) is one character wide in a monowidth 
font but should still be treated as two characters if letterspacing 
is applied. It might be helpful to get comments from native speakers 
of the affected languages.

-- 
Philipp Lehman <lehman at gmx.net>



More information about the fontinst mailing list