[XeTeX] hz

Jonathan Kew jonathan_kew at sil.org
Sun Jul 4 17:40:14 CEST 2004


On 4 Jul 2004, at 4:22 pm, Somadevah at aol.com wrote:

> Does anybody know what it would take to implement something like hz in 
> XeTeX?
>
>  http://dante.ctan.org/CTAN/systems/tex-extensions/clasen/hz/
>

Without actually looking at the hz changes, I suspect it would take 
quite a bit of work. And the interaction with AAT justification might 
be tricky. Note that when using AAT fonts, XeTeX takes advantage of 
justification rules defined in the font, which means that it may do 
things like adjust letter spacing and decompose ligatures when extreme 
stretch is required. (Yes, I know, Don Knuth would be horrified at 
interletter spacing. But the point is that this is under the control of 
the font designer, which is an appropriate place for it.)

AAT justification can even involve substituting glyphs with alternate 
widths, or making use of a "ductility" variation axis in the font to 
continuously vary glyph shapes (this is not merely stretching 
uniformly; this could involve extending linking strokes in a cursive 
script, while keeping the core letter shapes unchanged, for example). 
Read Apple's documentation on AAT fonts for more on the capabilities.

For a simple demonstration showing that justification uses the AAT 
rules, rather than only TeX's standard behavior, try this sample in 
XeTeX:

- - - - - cut here - - - - -
\nopagenumbers \frenchspacing
\font\tenrm="Hoefler Text" at 10pt \tenrm

\hsize=1.7in
\emergencystretch=1in

The quick brown fox jumps over the lazy dog.
Pack my box with five dozen liquor jugs.
How razorback-jumping frogs can level six piqued gymnasts!
Pack my box with five dozen liquor jugs.

\bye
- - - - - cut here - - - - -

Note how some lines have extra interletter space, and one of the "fi" 
ligatures is decomposed. Again, I want to stress that this behavior is 
NOT built into XeTeX; it is defined by the Hoefler Text font. XeTeX 
simply uses the font designer's rules.

Jonathan



More information about the XeTeX mailing list