[Xy-pic] Fwd: shorter arrows

Jonas Frey jonas743 at gmail.com
Fri Aug 27 20:57:58 CEST 2010

Hello Ross,

thanks for the quick reply.

> > I'm looking for a way to draw arrows in xymatrix which stretch not over
> the whole distance between to nodes, but only over  a certain percentage. I
> want to use this to draw 2-cells in commutative squares.
> Xy-pic has a 2-cell feature, which lets you position
> a short double-arrow within a diagram, indicating
> the 2-cell nature of that portion of it.
> It was developed for, and used extensively in,
> Ross Street's book on "Quantum Groups".

This is interesting, thanks. I had a look at the documentation, and now I
have another question:

If I understand correctly, \xtwocell is a generalization of all of
\drtwocell, \rrtwocell, ... . In the documentation, the format is specified
       \xtwocell[ hop ]{ displace }...
In the hop argument, I can place the relative target just like for \ar, but
what about the displace argument? I thought it served to move the source of
the arrow, but that doesn't work. In the documentation it says "The
displacement can be any string of valid xypic commands, but they must be
enclosed within a group {...}.", but frankly I don't really understand what
that means and what it's good for. I didn't find an example either. Well, at
least it works when left empty.

> Does this not do the kind of thing that you want?
> Or do you want longer arrows, that adapt to the size
> of the square/rectangle or other polygonal area defined
> by the composition of arrows in the 2-cell?
> that is an awful lot harder, as you'll need to work out
> a way of specifying where to start and end the arrow.

Well, specifying source and target of arrows hasn't been so difficult in my
use cases, you can for example take the middle of a (possible invisible)
arrow defined by something like:
(I found this trick on thte website of Aaron Lauda:
This can be useful because then you can also draw bent 2-cells and in this
way get a more three dimensional impression, for example to put 2-cells on
the front and back of a cone. In this case it would be nice to say that the
arrow should only be drawn in the interval between maybe 30% and 70% of the
total distance.

Thanks a lot,


> >
> > Until now, I have done this by drawing invisible frames around source and
> target nodes, as in the following example:
> > \[
> > \xymatrix{
> > FA
> >     \ar[r]^{Ff}
> >     \ar[d]_{\eta_A} &
> > FB
> >     \ar[d]^{\eta_B}
> > \\
> > GA
> >     \ar[r]_{Gf} &
> > GB
> > \\
> > %
> > \ar@{<=}"1,2"*+++\frm{};"2,1"*++\frm{}^{\eta_f}
> > }
> > \]
> > However, this seems overly complicated and has the disatvantage that the
> invisible frames reach in all directions, and so make the entire diagram
> bigger, resulting in too much space above and beneath the diagram in the
> document.
> >
> > Is there a easier/better way to do this?
> >
> > Thanks in advance,
> >
> > Jonas
> Hope this helps,
>        Ross
> ------------------------------------------------------------------------
> Ross Moore                                       ross.moore at mq.edu.au
> Mathematics Department                           office: E7A-419
> Macquarie University                             tel: +61 (0)2 9850 8955
> Sydney, Australia  2109                          fax: +61 (0)2 9850 8114
> ------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://tug.org/pipermail/xy-pic/attachments/20100827/dbb82065/attachment.html>

More information about the xy-pic mailing list