[OS X TeX] Microtype Fix (from: Microtype mystery)

Martin Costabel costabel at wanadoo.fr
Tue Aug 31 00:00:24 CEST 2010


Ross Moore wrote:
[]
> Morten's suggestion of rebinding via
> 
>    \let\ifMT at inlist@\iftrue
> 
> does not fix the error that you are reporting.

The reason is that if xetex is true, then the \makeatother in the \else 
clause is not executed, and the scanning for \if-\fi clauses does not 
see the macro \ifMT at inlist@, but only \ifMT, which it does not know. 
Thus Morton's suggestion works if it is replaced by

\let\ifMT\iftrue

This is, of course, not a good solution (incomprehensible, and it might 
interfere with other legitimate definitions.)

A simpler solution for the whole problem would be to not use "\fi" at 
all in Robert's fix, but "\csname fi\endcsname". Thus the lines would 
look like

\makeatletter
\def\MT at register@subst at font{\MT at exp@one at n\MT at in@clist\font at name\MT at font@list
\ifMT at inlist@\else\xdef\MT at font@list{\MT at font@list\font at name,}\csname 
fi\endcsname}
\makeatother

This works inside the \ifxetex clause without further changes.

The real solution is, of course, to put these lines, without the 
\makeatletter/other, into the microtype.sty.

-- 
Martin






More information about the macostex-archives mailing list