[XeTeX] Odd baselineskip behaviour
jonathan_kew at sil.org
Sat Sep 18 18:06:12 CEST 2004
On 18 Sep 2004, at 3:06 pm, Malcolm Ross wrote:
> I use XeTeX to type linguistics materials, as it is far easier to use
> a Unicode font for input than the usual LaTeX macros (including TIPA),
> since the complexity of the latter easily leads to mistakes.
> For this purpose I need an AAT serif font which includes the various
> Latin blocks, IPA Extensions and Combining Diacritical Marks, and has
> regular, italic, bold and bold italic variants. To the best of my
> knowledge no such font is available, and so I have devised my own
> using FontForge and Apple Font Tools. The resulting font works
> perfectly in Mellel.
> It also works in XeTeX, except that when a line contains bold or
> italic characters, the baselineskip (is that the right term? the
> vertical distance between printed lines) is greater than with regular
> characters. I have struggled in vain to identify the source of this
> problem. I cannot find a relevant parameter in the .sfd files (the
> files one edits in FontForge), nor can I find a way to neutralise the
> problem using a TeX or LaTeX command (I use XeLaTeX, as I am not
> fluent in plain TeX).
> Is it possible that the problem lies with XeTeX? I doubt it, as I have
> tried using Frutiger Linotype (a sans serif font which otherwise
> satisfies my criteria), and the baselineskip problem does not arise
> Any suggestions as to what else I might try would be gratefully
> received. I hope I am just missing the obvious.
I'm guessing that your fonts must have different vertical metrics.
Could you try dumping the 'hhea' tables of each of the faces using
ftxdumperfuser, and see if the ascender and descender values are the
same? Also check the 'OS/2' table (these values are close to the end of
the long dump generated); I'm not totally sure which ATSUI will use, if
they aren't in agreement.
If you do find big discrepancies in the ascent/descent metrics, you'll
probably want to harmonize these across the family. I'm not sure where
in FontForge these parameters would be set, as I'm a FontLab user, but
I'm sure it'll provide access to them somewhere.
(A plain TeX way to ignore the font vertical metrics and always set
text exactly at the specified \baselineskip would be to set
\lineskiplimit=-10000pt or something like that. But LaTeX probably
resets such parameters from time to time, so this may not be sufficient
More information about the XeTeX