[Xy-pic] Positioning frames and understanding positions and objects

Michael Abbott michael@araneidae.co.uk
Mon, 30 Sep 2002 10:55:53 +0000 (GMT)

I don't yet understand how positions and shapes work.  The diagram below
is *nearly* the way I want it, but the frame around the bottom two bullets
is offset to the right in a way I didn't expect and can't explain.

\documentclass{article}
\usepackage[matrix,all]{xy}
\begin{document}
$\xymatrix@=2ex{ 0 \ar@{-}[dr] && 0 \ar@{-}[dl] && 1 \ar@{-}[dr] && 1 \ar@{-}[dl] \\ & *{\bullet} &&&& *{\bullet} \save "2,2"."2,6"*++\frm<1ex>{-} % This is the interesting bit % ^^^ ^ ^^^ select the two bullets % ^^ expanding the frame; *nearly* works +R*+!L{1+1} \restore }$
\end{document}

The "2,2"."2,6" selects the two bullets at the bottom.  I want to frame
them (using *\frm<1ex>{-}), but of course I also want to expand the
selection to leave a gap around the bullets, so I've tried *++\frm...
Unfortunately, although the gap is there it's offset to the right.  I
obviously don't understand something here!
If I leave out the ++ then it clearly frames the two bullets, so I've
clearly got the selection right.

I have a workaround that works, but it seems somewhat clumsy to me.  This
diagram produces the desired effect, but it feels wrong.  Is this really
the right way to do it?

\documentclass{article}
\usepackage[matrix,all]{xy}
\begin{document}
$\xymatrix@=2ex{ 0 \ar@{-}[dr] && 0 \ar@{-}[dl] && 1 \ar@{-}[dr] && 1 \ar@{-}[dl] \\ & *{\bullet} &&&& *{\bullet} \save "2,2"*++\frm{}.{"2,6"*++\frm{}}*\frm<1ex>{-} +R*+!L{1+1} \restore }$
\end{document}

I'd really like to understand what's going on better.  Why is the first
diagram not coming out the way I expect?  It feels like a bug, but I
expect I'm doing it wrong.