[XeTeX] \predisplaysize in XeTeX

Bruno Voisin bvoisin at mac.com
Thu Jun 17 00:23:06 CEST 2004

Hi,

I've been fighting with XeTeX (and the TeXbook, pp. 188--189) for more
than one hour, and now I'm wondering whether XeTeX's implementation of
TeX's primitive \predisplaysize is correct.

Try compiling first, with XeTeX (everything here is plain TeX):

One form of the solution of the wave equation (9) is the inverse
Fourier transform
$$\zeta({\bf r},t) = {\rm e}^{-{\rm i}\sigma t} \int\!\!\!\int\!\!\!\int {F({\bf k})\over B({\bf k},\sigma)} {\rm e}^{{\rm i}(kx+ly+mz)}\,{\rm d}k{\rm d}l{\rm d}m,$$
\bye

Everything's right. Now replaces CMR by Trebuchet:

\font\tenrm="Trebuchet MS" at 10pt
\font\tenit="Trebuchet MS Italic" at 10pt
\font\tenbf="Trebuchet MS Bold" at 10pt
\font\tenbi="Trebuchet MS Bold Italic" at 10pt
\rm
One form of the solution of the wave equation (9) is the inverse
Fourier transform
$$\zeta({\bf r},t) = {\rm e}^{-{\rm i}\sigma t} \int\!\!\!\int\!\!\!\int {F({\bf k})\over B({\bf k},\sigma)} {\rm e}^{{\rm i}(kx+ly+mz)}\,{\rm d}k{\rm d}l{\rm d}m,$$
\bye

The space between the displayed equation and the preceding line is set
to practically zero, which seems to indicate that
\abovedisplayshortskip is used instead of \abovedisplayskip. This is
indeed the case, as setting \predisplaysize manually cures the problem
(\predisplaysize is normally calculated automatically by TeX at the
beginning of every displayed equation, that is immediately after $$, as the width of the preceding line; if this width is recognized small, as for a line containing the single word "and", then the space between this line and the following displayed equation, normally \abovedisplayskip, is changed to \abovedisplayshortskip): \font\tenrm="Trebuchet MS" at 10pt \font\tenit="Trebuchet MS Italic" at 10pt \font\tenbf="Trebuchet MS Bold" at 10pt \font\tenbi="Trebuchet MS Bold Italic" at 10pt \rm One form of the solution of the wave equation (9) is the inverse Fourier transform$$\predisplaysize=\hsize
\zeta({\bf r},t) = {\rm e}^{-{\rm i}\sigma t}
\int\!\!\!\int\!\!\!\int {F({\bf k})\over B({\bf k},\sigma)}
{\rm e}^{{\rm i}(kx+ly+mz)}\,{\rm d}k{\rm d}l{\rm d}m,
$$\bye Is this caused by an error in the way XeTeX handles AAT fonts, or is it one of the bugs that$$ is sometimes said to have?

Bruno