[XeTeX] polyglossia, makeidx: Missing control sequence \inaccessible
Ulrike Fischer
news3 at nililand.de
Sun May 16 16:51:53 CEST 2010
Am Sat, 15 May 2010 23:20:12 -0400 schrieb Taylor Venable:
> Hello, I just updated my TeXlive 2009 installation the other day from CTAN
> and am having a problem with some shortcut macros I was using to make
> indexing easier. I have a shortest working example attached as test.tex,
> and the log file as well. I've summarised the things which can and can't be
> changed in the test file. Essentially, if I have a \newcommand which
> creates an index entry and specifies the output formatting of that entry,
> while using Polyglossia, I get an error. The error is:
>
> ! Missing control sequence inserted.
> <inserted text>
> \inaccessible
> l.7 \item {\ttfamily \def r
> m{tt}lambda}, \hyperpage{1}
>
> Which originates from the .ind file produced by makeindex. The error is
> sort of an obvious problem: that \def should not be there! :-)
Polyglossia redefines \ttfamily, it adds \def\familytype{tt} to it -
obviously to save the "type" of the font. \familytype is also
redefined by \rmfamily and \sffamily.
But now \ttfamily is no longer robust. You can avoid your problem
with \protect:
\newcommand{\broken}[1]{\index{#1@{\protect\ttfamily #1}}}
But I think polyglossia should change its definitions and make the
commands robust.
--
Ulrike Fischer
More information about the XeTeX
mailing list