a^2 nebo a^{2} ?

Alexej Sveshnikov svesh at seznam.cz
Fri Feb 24 13:31:53 CET 2006


> Dobry den,
Dobry den,

> Je v LaTeXu rozdil mezi zapisy $a^2$ a $a^{2}$ ?
>
> Zvykl jsem si pouzivat prvni formu, ale ted ve mne hloda pochybnost,
> jsou-li oba zapisy opravdu plne ekvivalentni.  Lamport pouziva
> $a^{2}$, instrukce pro autory od Springeru ji uvadi take.
>
> Podobne napr. $x_\mathrm{abc}$ a $x_{\mathrm{abc}}$.

Kdyz TeX narazi v matematickem modu na _ nebo ^, podiva se na dalsi
token a pokud to je nejake makro, pak ho nejdriv rozvine. Pak se vrati k
_ nebo ^ a interpretuje je jako makra s jednim parametrem. Jinymi slovy,
plati nasledujici kod v pseudo-TeXu:

\catcode`\_=\active
\catcode`\^=\active
\def_{\expandafter\makesubscript}
\def^{\expandafter\makesuperscript}
\def\makesubscript#1{
% Vnitrni makro TeXu, ktere vysadi svuj parametr jako spodni index
}
\def\makesuperscript#1{
% Vnitrni makro TeXu, ktere vysadi svuj parametr jako horni index
}

Tim padem zadny rozdil mezi $a^2$ a $a^{2}$ nebo $x_\mathrm{abc}$ a
$x_{\mathrm{abc}$ neexistuje. Existuje ovsem velky rozdil mezi $a^12$ a
$a^{12}$, kde prvni zapis je ekvivalentni $a^{1}2$. Lamport systematicky
pouziva slozene zavorky, protoze to pomaha predejit nekterym druhum
chyb. Predstavte si situaci velmi podobnou vasemu prikladu s \mathrm,
ale tentokrat pouzijeme vlastni makro:

\newcommand{\nasemakro}[1]{#1}
$x_\nasemakro{abc}$.

Tentokrat TeX na zacatku rozvine makro a dostane $x_abc$. Vysledek:
$x_{a}bc$. Muzeme bud dodat slozene zavorky do definice \nasemakro
\newcommand{\nasemakro}[1]{{#1}}
anebo pouzit zapis $x_{\nasemakro{abc}}$.

Hezky den preji,
    Alexej Sveshnikov




More information about the csTeX mailing list