[Xy-pic] What are the default entry modifiers in xygraph, xymatrix, and xymatrix@1?

Ross Moore ross@ics.mq.edu.au
Sat, 24 Aug 2002 19:38:14 +1000 (EST)


Hi Alex,

> When you process
> 
>   \xymatrix{A \ar[r] & B}
> 
> you discover that Xy-pic places nice margins around "A" and "B" so
> that the arrows do not get too close to the objects. Similarly, using
> \xygraph{...}, you get those same margins. If you instead use

Each use of + or - increments/decrements by the value stored in 
the \objectmargin@  internal.
You can adjust this amount using  \objectmargin=<dimen>

This applies at the kernel level, so also within \xygraph
and \xymatrix .


> \xymatrix@1{A \ar[r] & B} then the margins will be smaller.

This is using \everyentry@ , which can be adjusted
directly using  \everyentry={....} to place (La)TeX code
as part of each cell.
^^^^^^^^^^
For @1 the code placed is:  \vphantom(   which effectively adds depth
to every uppercase and lowercase letter that doesn't have a natural
descender, and adds height to the shorter lowercase letters.

Does this explain the apparent extra margins that you observe ?


Note that there is also \entrymodifiers@ , which can be adjusted
directly using  \entrymodifiers={....} , for specifying Xy-pic
modifiers for the contents of each cell (including the \everyentry@).

These two apply only within \xymatrix .

 
> Sometimes one wishes to build more complicated entries, which
> sometimes requires escaping to Xy-pic kernel code. But I would like
> to maintain the precise same margins as would have been used above!
> So my question is simply: what modifiers do the job?

\entrymodifiers= ....    sets modifiers for all cells
\objectmargin=.....      determines a unit-step for margins
\everyentry={....}       adds content within the object for each cell.

All 3 do quite different things, though the resulting visual effect
may appear to be similar in some cases.

 
> In my experiments, it seems that the "+" modifier gives the same
> margins as \xymatrix and \xygraph, but I'm not certain. In other
> words, *+{A} seems to produce the same "A" as the code above does.

Yes; that should be the case.

> But in addition to getting confirmation, I wonder, what modifiers
> precisely mimic the behavior of \xymatrix@1{...}?

It's not modifiers. It is actual (invisible) content, using \vphantom.

> 
> Thanks.


Hope this helps,

	Ross

> 
> 
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Finance - Get real-time stock quotes
> http://finance.yahoo.com
> _______________________________________________
> Xy-pic mailing list
> http://tug.org/mailman/listinfo/xy-pic