You started this, Mike, not me. ``Here is my counter-proposal'' 12.35 started typing: \begin{diagram} TT & \rTo & T \\ & \rdTo _{TT\eta'} & 1 & \rdTo\\ \dTo<{T\eta'T} & 2 & TTT' & \pile{\rTo^{\mu T'}\\\rTo_{T\sigma}} & TT'\\ && \dTo<{T\eta'TT'} & 3 & \dTo<{T\eta'T'} & \rdTo_6^{id} \\ TT'T & \rTo^{TT'T\eta'} & TT'TT' & \rTo^{TT'\sigma} & TT'T' & \rTo^{T\mu'} & TT' \\ \dTo<{\sigma T} & 4 & \dTo<{\sigma TT'} & 5 & \dTo<{\sigma T'} & 7 & \dTo>{\sigma} \\ T'T & \rTo_{TT'\eta'} & T'TT' & \rTo_{T'\sigma} & T'T' & \rTo_{\mu'} & T' \end{diagram} 12:37 finished typing the original tried LaTeX well I made rather a lot of typing mistakes because I don't think very well under "race" conditions I had "TT && \rTo && T" in the first row (thinking of the cube!). I had an extra & at the beginning of the third row (dunno why). I missed an & before the last T'. A closing } was missing from \pile. I typed || instead of \\ on one row. 12.49 I got it right. Now you can't test Mike's proposal because he hasn't implemented it, but you could try typing in his test diagram (timing yourself) and then check it using a "dry run". Maybe you could do the same with catmac or any of the other competitors. Test the other way round: without running LaTeX, read the source of the diagram and draw it on paper. Do the same with Mike's proposed syntax. Can you make sense of the same example as it appears in the catmac manual? (I know that there are plenty of my users out there who will back me up on this in private, but I'd quite appreciate it if they did so publicly.) I'm afraid I didn't understand all of the notation in Mike's example, so what I have above may not be quite what he intended. Here is the ASCII version of his example for reference. % TT-------------\>T % |\ \ % | \ \ % | \ \ % | \ \ % | \ \ % | \ \ % | \ \ % | \ 1 \ % | TT\eta'\ T\eta'\ % | \ \ % | \ \ % | \ \ % | \ \ % | \lr \mu%T' \lr % | TTT'===========\>TT' % T\eta'T| 2 | T\sigma | \ % | | | \ % | | | \ % | | | \ % | T\eta'TT'| 3 T\eta'T'| 6 \\$id$\l % (6) | | | \ % | | | \ % \v TT'T\eta' \v TT'\sigma \v T\mu' \lr\l % TT'T---------\>TT'TT'-------\>TT'T'----\>TT' % | | | | % | | | | % | | | | % | | | | % \sigma%T| 4 \sigma%TT'| 5 \sigma%T'| 7 |\sigma\l % | | | | % | | | | % \v \v \v \v % T'T---------\>T'TT'---------\>T'T'-----\>T' % T'T\eta' T'\sigma \mu' Getting back to the LaTeX 3 project, which gave rise to this, I have proposed that instead of trying to build in applications like commutative diagrams as part of a monolithic program, there should be an interface standard for autonomous programs to co-operate with LaTeX if it is present. In fact this is already my and Kris Rose's policy: unlike most of the competitors, our code is written to be compatible with LaTeX, plain TeX, AMS-TeX, etc, rather than to rely on one of them. Kris Rose has recently made a proposal for a graphics language. (It is the core of xypic, but differs conceptually quite a lot from the original manual; in particular it is no longer based on the matrix structure, and I am not quite sure how he re-implements matrices on top of the new language.) The "core" proposal is in diku/users/kris/xycore27beta.psZ at ftp.diku.dk for those who are interested. I don't believe there is such a thing as a definitive graphics package, or even a definitive package for all category theory applications, and so I think it would be better for LaTeX 3 to give access (in a structured way) to many different applications packages. As far as plain old fashioned commutative diagrams are concerned, I claim that my matrix syntax (with the "chess" rule for spanning cells between objects) is the easiest to use, though improvement is always possible. Paul +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++