# [Xy-pic] macros in xy

Michael Barr barr at math.mcgill.ca
Sat Jul 28 14:49:27 CEST 2007

What I found is that the only way of using macros in xy for internal
operations is to assemble the arguments and then issue a command that xy
recognizes.  Here is an example from my diagxy macros:
\def\topppp/#1/<#2>^#3_#4{\:%
\ifnum#2=0%
\setwdth{#3}{#4}\deltax=\wdth \divide \deltax by \ul
\else \deltax #2%
\fi%
\xy\ar@{#1}^{#3}_{#4}(\deltax,0) \endxy%
\:}%
What it does is make an arrow in the text.  In fact, it is the operating
macro for a macro called \to that has a number of parameters, all
optional.  Aside from spacing, what it does is assemble the parameters and
then issue a valid xy command that is parsed by xy.  There are also \top,
\toppp all of which deal with putting in default values for the various
optional parameters.  Incidentally, I could not begin to imagine to doing
all this using \newcommand.  It just doesn't have the chops.

Michael Barr