LaTeX - makra (newcommand)
Posted: Mon Oct 29, 2012 2:56 pm
Ti z vas, ktori uz pouzivate LaTeX dlhsie, viete, ze makra su velmi uzitocna vec. (Hlavne pri dlhsich textoch, tu na fore to az tak velmi nechyba. Ale aj tu sa to moze hodit - ak mate nejaky TeX-ovy zdrojak a chcete z neho cast skopirovat sem, tak su dve moznosti; bud kazdy vyskyt makra nahradite rucne tym, na co sa makro rozvinie, alebo pouzjete \newcommand resp. \def).
Makro mozem pouzit ako nejaku skratku namiesto casto pouzivanej veci. Napriklad ak casto pouzivam znak pre realne cisla, mozem pouzit
Dosiahnem tym, ze vsade sa namiesto \R vysadza \mathbb R. Ukazka: $\newcommand{\RR}{\mathbb R}\RR$.
Makra mozu mat aj parametre, napriklad ak vlozim taketo nieco
$\newcommand{\intrv}[2]{\langle #1,#2\rangle}$ $\newcommand{\Zobr}[3]{#1 \colon #2 \to #3}$ tak dosiahnem to, ze \intrv 01 sa vysadza ako $\intrv 01$ a \Zobr fXY sa vysadza ako $\Zobr fXY$.
V pripade, ze parameter pozostava z viac nez jedneho znaku, pouzijem kucerave zatvorky {}. Napriklad
$\Zobr \varphi{\intrv01}{\intrv{\frac12}{\frac23}}$
Niektore veci funguju trochu inak ako v TeXu. V TeXu ste zvyknuti mat makra na zaciatku suboru. Tu ich musite mat niekde medzi dolarmi a ich platnost je na celej stranke, ktora sa zobrazuje.
Cize asi je rozumne (aby sa zabranilo konfliktom medzi makrami, ktore zadefinuju rozni ludia pripadne konfliktom so standardne pouzivanymi makrami, ktore sa nahraju automaticky:
Makro mozem pouzit ako nejaku skratku namiesto casto pouzivanej veci. Napriklad ak casto pouzivam znak pre realne cisla, mozem pouzit
Code: Select all
$\newcommand{\RR}{\mathbb R}$
Makra mozu mat aj parametre, napriklad ak vlozim taketo nieco
Code: Select all
$\newcommand{\intrv}[2]{\langle #1,#2\rangle}$
$\newcommand{\Zobr}[3]{#1 \colon #2 \to #3}$
V pripade, ze parameter pozostava z viac nez jedneho znaku, pouzijem kucerave zatvorky {}. Napriklad
Code: Select all
$\Zobr \varphi{\intrv01}{\intrv{\frac12}{\frac23}}$
Niektore veci funguju trochu inak ako v TeXu. V TeXu ste zvyknuti mat makra na zaciatku suboru. Tu ich musite mat niekde medzi dolarmi a ich platnost je na celej stranke, ktora sa zobrazuje.
Cize asi je rozumne (aby sa zabranilo konfliktom medzi makrami, ktore zadefinuju rozni ludia pripadne konfliktom so standardne pouzivanymi makrami, ktore sa nahraju automaticky:
- Nepouzivat ich v subjecte
- Pouzivat ich s mierou.
- Nepredefinovavat standardne makra (nepouzivat renewcommand)