[Xy-pic] Xy-pic with cyrtex

Dmitry Pavlov dmitry.pavlov at gmail.com
Sat Jun 3 12:02:41 CEST 2006

Hello Ross,

> The problem on loading the Xy-pic package is due to the fact that
> Cyr-TeX has redefined the TeX primitive  \lowercase .
> viz.  these lines from the CyrTeX source coding:
> plainenc.tex:101:% support for uppercase/lowercase
> plainenc.tex:103:\let\@lowercase\lowercase

Thanks for pointing on that!

> So before you do   \input xy
> it is necessary to revert the meaning of  \lowercase  to its original
> value;
> e.g.
>    \let \cyrtexlowercase \lowercase
>    \catcode`\@ 11
>    \let \lowercase \@lowercase
>    \catcode`\@ 12
>    \input xy
>    \let \lowercase \cyrtexlowercase

I found a nice macros in plainenc.tex: \PROTECT and \UNPROTECT,
which save and restore \lowercase, \uppercase, \edef and \xdef,
just like in the workaround you proposed.

> Please try it with a real example, and report back on your results.

The following example is compiled correctly in cyrtex:

--- test.tex
\input xy

     U \ar@/_/[ddr]_y \ar@/^/[drr]^x
       \ar@{.>}[dr]|-{(x,y)}            \\
      & \hbox{X} \times_Z Y \ar[d]^q \ar[r]_p
                     & X \ar[d]_f       \\
      & Y \ar[r]^g   & Z                }}

A real texfile is also compiled well. Thank you.

By the way, do you have an idea why miniltx package does not load in cyrtex
even inside \UNPROTECT .. \PROTECT ?
The following file:

\input miniltx

Gives an error:
Illegal parameter number in definition of \@yargdef.
<to be read again>
l.170   \let\@hash@\relax


More information about the xy-pic mailing list