Page 1 of 1

LaTeX - makra (newcommand)

Posted: Mon Oct 29, 2012 2:56 pm
by Martin Sleziak
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

Code: Select all

$\newcommand{\RR}{\mathbb R}$
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

Code: Select all

$\newcommand{\intrv}[2]{\langle #1,#2\rangle}$
$\newcommand{\Zobr}[3]{#1 \colon #2 \to #3}$
$\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

Code: Select all

$\Zobr \varphi{\intrv01}{\intrv{\frac12}{\frac23}}$
$\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)