Problem s expanzi ?
David Necas
yeti at monoceros.physics.muni.cz
Thu Jun 1 14:57:54 CEST 2000
On Thu, 1 Jun 2000, Dont Miroslav wrote:
>
>
> Davidek Tomas wrote:
>
> > Dobry vecer vespolek,
> > narazil jsem na problem s velice podivnym chovanim. V LaTeXu mam
> > nadefinovano:
> > \newcommand{\Wboson}{\ifmmode {\mathrm{W}}\else W\fi}
> > \newcommand{\lepton}{\ifmmode {\ell}\else $\ell$\fi}
> >
> > Pouziti funguje spravne v matematice i v textu, napr.
> > $$ \Wboson \rightarrow \lepton \nu $$
> > problem nastane v prostredi eqnarray pri pouziti "separatoru" & (bez nich
> > to prave taky funguje)
> > \begin{eqnarray}
> > \Wboson & \rightarrow & \lepton \nu \\
> > ^^^^^^^^
> > ...
> > \end{eqnarray}
> >
> > Problem je v tom, ze v danem miste neni podminka \ifmmode splnena, tudiz
> > se substituuje $\ell$ a tim padem dojde k chybe. Kdyz ale dam vse do
> > zavorek, tj.
> > \Wboson & \rightarrow & {\lepton} \nu \\
> > tak je vse v poradku, tj. test \ifmmode da hodnotu true.
> >
> > Mohl by mi prosim nekdo naznacit, v cem je zakopana kuna ?
> >
>
> Nevim kde je co zakopaneho.
Zakopane je to, ze se podminka \ifmmode expanduje nekdy jindy, nez by
mela. Zpusobene je to tim, ze je prvnim tokenem nasledujicim po & (po
expanzi), takze spravit to lze treba nasledovne (pouze jsem pridal
\relax):
\def\lepton{\relax\ifmmode\ell\else$\ell$\fi}
Nevim ovsem pricinu toho celeho, zkousel jsem \tracingmacros=1, ale to je
v LaTeXu naprosto beznadejna zalezitost, dozvite se akorat, jake je NFSS
zverstvo :-)
> P.S. Prostredi eqnarray je ponekud zastarale. Vhodnejsi je pouzit
> balik amsmath, kde je spousta ruznych prostredi pro viceradkove
> formule, ktere, oproti eqnarray, davaji (napr.) spravne mezerovani
> kolem rovnitka.
To je obecne dobra rada, ale obavam se, ze problemy s expanzi tam budou
tytez. Kdo chce pouzivat LaTeX, at si zvykne psat pred kazdy prikaz
\protect (a dobre mu tak :-))
Yeti
More information about the csTeX
mailing list