[OS X TeX] Microtype Fix (from: Microtype mystery)
Ross Moore
ross.moore at mq.edu.au
Mon Aug 30 19:24:31 EDT 2010
Hi Martin,
On 31/08/2010, at 8:00 AM, Martin Costabel wrote:
> 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,
Doh!
Both Morten and I missed that aspect...
> 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
...but it makes for a pretty ugly solution...
>
> This is, of course, not a good solution (incomprehensible, and it might interfere with other legitimate definitions.)
...for all these reasons.
>
> 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.
Which is happening, so I believe.
For those who need a really quick fix, I'd just put
the original supplied fix within the preamble, or inside your
own macro file, but *outside* of any conditionals.
>
> --
> Martin
Cheers,
Ross
------------------------------------------------------------------------
Ross Moore ross.moore at mq.edu.au
Mathematics Department office: E7A-419
Macquarie University tel: +61 (0)2 9850 8955
Sydney, Australia 2109 fax: +61 (0)2 9850 8114
------------------------------------------------------------------------
More information about the MacOSX-TeX
mailing list