[OS X TeX] i-Installer TeX installation on Intel

Morten Høgholm morten.hoegholm at gmail.com
Fri May 5 23:11:51 CEST 2006


On Thu, 04 May 2006 20:01:23 +0200, George Gratzer  
<gratzer at ms.umanitoba.ca> wrote:

> Two things:
>
> 1. I got a bunch of error messages wanting to put $ signs in the middle  
> of a verbatim environment. Not all, but a few per chapter.
>
> 2. It wants to put $ signs following an EOL. Used BBEdit to change the  
> EOL to Unix or Mac, but it did not help.

I found the bug.

In the new xspace, there is a definition for setting up active characters  
which goes like this:

   \def\@xspace at eTeX@setup{%
     \begingroup
       \everyeof{}%
       \endlinechar=-1\relax
       \catcode`\ =10\relax
       \makeatletter
       \scantokens\expandafter{\expandafter\gdef
         \expandafter\@xspace at exceptions@tlp
         \expandafter{\@xspace at exceptions@tlp}}%
     \endgroup
   }

The idea is to re-read the list of exceptions but with current catcodes.  
The implementation shown above requires \, { and } to have the usual  
catcodes of 0, 1 and 2 but in George's example, \xspace was called in a  
header in the output routine but in a setting where the verbatim  
environment is actually active. Hence this leads to an error because the  
inner \, { and } in this \scantokens have catcodes 12.

The solution is to change the expansion order (and recalling that  
\scantokens is expandable):

   \def\@xspace at eTeX@setup{%
     \begingroup
       \everyeof{}%
       \endlinechar=-1\relax
       \catcode`\ =10\relax
       \makeatletter
       \expandafter\expandafter\expandafter\gdef
       \expandafter\expandafter\expandafter\@xspace at exceptions@tlp
       \expandafter\expandafter\expandafter{%
         \expandafter\expandafter\expandafter
         \scantokens\expandafter{\@xspace at exceptions@tlp}}%
     \endgroup
   }

George, add this to your preamble - surrounded by the usual \makeatletter  
and \makeatother of course - and I predict it'll work... Thanks for  
bringing this to my attention!

Lesson to learn: Never let a catcode into your life.
-- 
Morten
------------------------- Info --------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
          & FAQ: http://latex.yauh.de/faq/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/




More information about the macostex-archives mailing list