[Xy-pic] Your tex problem

Michael Abbott michael at araneidae.co.uk
Wed May 7 18:40:35 CEST 2003


On Wed, 7 May 2003, Michael Barr wrote:
> Here is a copy of the note I sent to Michael Abbott in response to his
> recent request.

Ah.  I guess I'd better post my reply to Michael Barr together with some
further comments.

Although Michael's answer is very interesting, I don't think it solves the
problem I'm trying to tackle.  In particular, I'm really more interested
in getting to grips with the underlying xy language.  It seems to be a
slippery thing: each time I think I understand it, the next thing I try
breaks :(


---------- Forwarded message ----------
Date: Wed, 7 May 2003 14:52:10 +0000 (GMT)
From: Michael Abbott <michael at saturn.araneidae.co.uk>
To: Michael Barr <barr at barrs.org>
Subject: Re: Your tex problem

> I am obviously prejudiced in favour of my own package (which is
> essentially a front end to xy-pic, but uses the arrow option and
> definitely not the matrix option that I find rather inferior in several
> respects).  It is on CTAN, but the latest version can always be
> downloaded from ftp.math.mcgill.ca/pub/barr/diagxy.zip (which includes
> the package as well as documentation/examples). At any rate, with some
> tinkering, I produced the following, which looks pretty good.

Thank you for the thought.  I *think* my best bet is to get to grips with
xy-pic itself, but I keep taking glances at your diagrams package.  I
don't really think I understand the concepts behind it, and I'm also not
at all sure I can handle trying to understand yet another diagramming
system!

>
> \documentclass{article}
> \input diagxy
> \begin{document}
> \def\mathbox#1{\hbox{$#1$}}
>
> $$\bfig
> \square/>`>`>`<-/<1300,600>[\phantom{=BBBB}AAAA=BBBB`\vtop{
> \mathbox{CCCC}\mathbox{\kern 12pt\simeq}
> \mathbox{DDDD}}`FFFF`EEEE;f`g`h`k]
>  \efig\phantom{=BBBB}$$
>
> \end{document}
>
> Some comments:
>
> Note the \phantom at the end.  This is to compensate for the way the
> upper left corner was moved over.  Without this, the picture will not be
> centred.  I do not know any other way of doing this; there is no way I
> know of to prescribe a baseline for an hbox.

This is bad news.  I can see your trick with the \phantom{=BBBB} in the
first line, and it feels just so wrong to me.

For example, how would you modify your diagram to product an arrow into
AAAA from the left, eg:

                z                   f
         ZZZZ ----> AAAA = BBBB -------> CCCC
                     |                    ~=
                     |                   DDDD
                   g |                     |
                     |                     | h
                     v          k          v
                    FFFF <-------------- EEEE
?

>
> The kern of 12pt was just trial and error.  I don't know a good way of
> telling a vbox (or a vtop, in this case) to fill out to the width of the
> remaining hboxes.  Without the vtop, the upper right node will just
> stick up and you could get it centred with a \vcenter box.

Ouch.  Also not nice at all...

> The width of 1300 and height of 600 were just done by eye.  I despair of
> doing things like that automatically.

Hmm.

So what *is* wrong with xymatrix?  The interface seems to me very easy to
understand and simple to use, but it does seem to have problems.

So far I can't figure out whether the problems I'm encoutering are bugs in
Xy or errors in my use.  Both of the problems I described in my first
posting today *look* like bugs to me; but then I despair of ever
understanding xy.  Each time I think I understand it, the next thing I try
breaks.


More information about the Xy-pic mailing list