[XeTeX] More info on segfaults in unicode-math on linux 64 bit

Kevin Klement klement at philos.umass.edu
Thu Jun 17 07:25:46 CEST 2010


Dear list members,

I tried to send a message earlier today confirming an earlier message
about segmentation fault that is had reliably when the \setmathfont
command from unicode-math is used on a 64-bit linux systems. I don't
know whether my message made it through, since I wasn't a member of
the list. Now I am. Sorry if I missed anything relevant.

I am also "double posting" here at the github issues pages for
unicode-math in this thread here:

http://github.com/wspr/unicode-math/issues/issue/96/

Sorry if this leads to duplication for anyone. William Robertson
suggested there that the problem might be "further down the chain". If
this is true, it still helps to know what reliably causes the problem,
at least for one user, so others might be interested too.

I am working on Ubuntu 10.04 Lucid Lynx, using the packages provided
by the testing version of TeXlive 2010. (The same problem does not
occur if one uses the Debian packaged version of TeXlive 2009, but
there are other problems instead.)

A segmentation fault occurs reliably when reading
unicode-math-table.tex, but only when \setmathfont is used with an
unspecified range, or with certain characters included.

I've been testing this a bit more, and I've isolated exactly which
characters create problems. There are just a few.

(In the examples, I use STIXGeneral, but the font isn't important. You
get the same results whatever font is used.)

The first character is \Vvert. A segfault will be created when
\setmathfont is called with any range that includes it, but not by
number. In other words:

\setmathfont{STIXGeneral}

\setmathfont[range=\mathfence]{STIXGeneral}

or

\setmathfont[range=\Vvert]{STIXGeneral}

will all lead to segfaults. But oddly,  this is OK:

\setmathfont[range={"2980}]{STIXGeneral}

Calling a wider range by number that includes it is OK too.

The other ones that cause problems is every character from "1D6C0
which is classified as \mathord. This includes "1D6DB, "1D7FB, "1D715,
"1D735, "1D74F, "1D76F, and everything from "1D789 and above. A lot of
these are nablas and partials, so I wonder if those package options
have something to do with this. For these, the command causes a
segfault regardless of the method used to include these characters. In
other words, any of the following:

\setmathfont[range=\mathord]{STIXGeneral}

\setmathfont[range=\mbfnabla]{STIXGeneral}

or

\setmathfont[range={"1D6C1}]{STIXGeneral}

will all lead to a segfault.

I'm hoping this might be helpful in isolating the problem. Apologies
if I'm overlooking something obvious.

Because every character above "1D6C0 is either classified as
\mathalpha or as \mathord, right now, a linux user can safely use
\setmathfont as so:

\setmathfont[range={"0001-"1D6C0,\mathalpha}]{STIXGeneral}

without major problems (unless of course you need one of those missing
characters!) Still, I hope it can be fixed to avoid this workaround.

-Kevin


More information about the XeTeX mailing list