# [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