[Xy-pic] Delicate alignment problem.
Ross Moore
ross at ics.mq.edu.au
Tue May 13 01:23:48 CEST 2003
On Mon, 12 May 2003, Michael Abbott wrote:
> > What is wrong with using *+!L{{}=BBBB}="BB" to get the margin ?
> >
> > (which is different to *!L+{{}=BBBB}="BB" by the way)
> > Does the extra slight shift to the right upset the diagram ?
>
> Alas, yes, that's the problem. I've tried that one, and it creates an
> unwanted extra gap between AAAA and the =.
But you know how big it is: \objectmargin
(or is it 1/2 * \objectmargin )
so shift left by this amount before putting the {{}=BBBB}.
> Obviously I'm trying to solve a generic problem here. In this particular
> case the problem is one of placing two boxes side by side while still
> retaining full independent command over the resulting boxes.
>
> Even if we fixed this with an extra sideways shift, eg
> -\whatever *+!L{{}=BBBB}="BB"
> because the centre point is still in the wrong place the generic problem
> remains open. For example, I might like to draw the following:
>
> |
> v
> AAAA = BBBB
> ^
> |
This isn't a problem, since you can add the margin in one direction only
--- in this case above and below, but not left-right.
*+<0pt,\objectmargin>!L{AAAA}
But you could do it in a different way, using \phantom
and the Xy-pic 'skew' operator (e.g. !C to center a <POS>)
to adjust the reference-point within a known rectangle;
e.g.
[]*+{\phantom{AAAA}}="AA"
% establishes the left target <POS> without putting any ink
!{+L*+!L{AAAA = BBBB}}
% places the ink aligned at the left end
!{+R*+!R{\phantom{BBBB}}!C="BB"}
% creates a target <POS> of the correct size and alignment.
Note how the !{.....} kernel escape can be used within \xygraph
to help do a delicate alignment or positioning.
>
> If I can't give BBBB back its proper centre then I can't do the right hand
> arrow.
But you *can* give it back that alignment, using the ! skew operator.
>
> (What should \whatever be in the above, by the way? Obviously it should
> be an offset equal to the value added on each side by +.)
>
Yes, that's one way to skin this cat.
Hope this helps,
Ross Moore
More information about the Xy-pic
mailing list