[Xy-pic] Math fonts
Ross Moore
ross at ics.mq.edu.au
Sat May 10 09:46:53 CEST 2003
On Wed, 7 May 2003, Yannick Delbecque wrote:
> After a few tests, I get the same error with the minimal file:
Then I understand this perfectly now...
> \documentclass{article}
> \usepackage[all]{xy}
> \CompileMatrices
> \begin{document}
> \[ \xymatrix{ \mathrm{R} } \]
> \end{document}
Compilation necessarily requires expansion of the first thing
in each cell of a matrix.
But you cannot afford to have \mathrm expand at this early stage.
Simply use
\xymatrix{\relax\mathrm{R} }
Note that this applies to the 1st token in *every* cell.
If the 1st token is an expandable control-sequence (other than
Xy-pic macros: \drop, \ar, \POS, \xypolygon, etc.), then
you should put in \relax to inhibit expansion.
e.g.
this fails:
\[ \xymatrix{ a\mathrm{R} &\mathrm{B} } \]
this works:
\[ \xymatrix{ a\mathrm{R} &\relax\mathrm{B} } \]
There is a note in the Reference Manual about this effect, that occurs
when compiling matrices.
>
> But there is no error if I desactivate "\CompileMatrices" or remove the
> \mathrm command!
\CompileMatrices is a very TeXnichal thing.
To use it successfully in all contexts, you need to have some appreciation
of programming concepts (such as understaning the difference between
'immediate expansion' and 'deferred expansion').
>
> I also checked when there is no .xyc file present, and the error still
> occurs: the problem doesn't seems to be the reading of the compiled
> file by xypic.
No. It occurs earlier than at the re-reading stage.
>
> Note I used both OzTeX and TeTeX under mac os X to verify this.
Platform/system should be immaterial.
Hope this helps,
Ross Moore
>
> Thanks!
> Yannick
>
> _______________________________________________
> Xy-pic mailing list
> http://tug.org/mailman/listinfo/xy-pic
>
More information about the Xy-pic
mailing list