[Xy-pic] macros

Ross Moore ross.moore at mq.edu.au
Thu Feb 24 20:57:11 CET 2011

Hi Daniel, and Alex,

Sent from my iPad

On 25/02/2011, at 6:19 AM, Daniel Müllner <nospamplease at stanford.edu> wrote:

> Hi Alex, (and hi Ross, since I know you are reading this list),
> yes, you can. Here is the trick: Use \scantokens{\POS{...}}
> \newcommand{\XyCover}[2]{\scantokens{\POS

Mostly the \scantokens is not needed, but certainly you must start the macro expansion with \POS to turn on parsing of the subsequent tokens. However ...

> #1*{};#2*{}**{};
> ?<*[@_][o]=<0.0pc>{\bullet};
> ?>*[@_][o]=<0.8pc>{\bigcup} **[|(2)]\dir{-};
> }}
> \[
> \xy
> \XyCover{(-10,0)}{(0,10)}
> \XyCover{(0,10)}{(10,0)}
> \XyCover{(10,0)}{(0,-10)}
> \XyCover{(0,-10)}{(-10,0)}
> \endxy
> \]
> Has this trick ever been mentioned in the Xy-pic mailing list? Ross, you might want to describe the \scantokens trick somewhere in the Xy-pic documentation. It can be a real lifesaver in every TeXnical situation where the catcodes have non-default values!

  ... yes, when the catcodes are different, then \scantokens would be a life saver.
It is not mentioned in the existing documentation, since this pre-dates the adoption of eTeX as the main basis of processing engines, and the decision to make the basic  tex  and  latex  commands become  pdfTeX  running with  pdfoutput  being 0. Prior to this, \scantokens  would not be available. 

But now, it certainly could be the right way to solve some problems where the catcode of some punctuation characters has been changed, e.g. by Babel for French or Spanish accents.
A collection of real-world examples would be useful.

> Best,
> Daniel



More information about the xy-pic mailing list