[Xy-pic] 'macros' with saved points

Tue Nov 4 03:07:01 CET 2003

Ross,

thanks for your help -- but I can't get this to work. Presumably I'm
just doing something silly - I'm getting frustrated trying to work this
out. Here's what you suggested:

> But this works:
>
>   \newcommand{\dropblob}[1]{\POS*\xycircle(1,1){}="#1"}
> or
>   \newcommand{\dropblob}[1]{\drop\xycircle(1,1){}="#1"}
>
>  * is a non-active shorthand for \drop , when in the
> appropriate parser context.
>
> Another useful way to define a macro expansion is as:
>
>   \newcommand{\dropblob}[1]{\save*\xycircle(1,1){}="#1"\restore}
>
> where now the graphics state reverts to what it was before
> the  \dropblob  macro is called.

Here's what I tried. The first equation is what I want. The second two
equations should produce the same output (it seems!), but they don't.
What's happening?

\documentclass{article}
\usepackage{amsmath}
\usepackage[curve]{xy}

\newcommand{\dropcircle}{\drop\xycircle(2,4){}}
\newcommand{\dropcircletwo}{\save*\xycircle(2,4){}\restore}

\begin{document}

\begin{equation*}
\xy
*\xycircle(2,4){}; (0,1) *{a}
\endxy
\end{equation*}

\begin{equation*}
\xy
\dropcircle; (0,1) *{a}
\endxy
\end{equation*}

\begin{equation*}
\xy
\dropcircletwo; (0,1) *{a}
\endxy
\end{equation*}

\end{document}

Thanks, Scott