[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