Makrá sú užitočné

O veciach súvisiacich s používaním LaTeXu
Post Reply
Martin Sleziak
Posts: 5517
Joined: Mon Jan 02, 2012 5:25 pm

Makrá sú užitočné

Post by Martin Sleziak »

Pri TeX-ovaní môžu byť pre vás makrá veľmi užitočné z viacerých dôvodov:
  • môžu vám výrazne urýchliť a zjednodušiť písanie (hlavne veci, ktoré sa opakujú viackrát);
  • umožnia vám ľahko zmeniť vysádzanie niektorej konkrétnej veci v celom dokumente;
  • výhodné sú, ak niečo neviete vysádzať.
Pokiaľ o makrách neviete vôbec nič, dobré miesto, kde začať, by mohli byť TeX-FAQ.

Uviedol by som zopár konkrétnych príkladov. Prakticky v každom matematickom texte sa vyskytne na rôznych miestach zobrazenie. Ak si nachystáme makro, napríklad
\newcommand{\Zobr}[3]{\ensuremath{#1\colon #2\to #3}}
\newcommand{\Zobrto}[3]{\ensuremath{#1\colon #2\mapsto #3}}
tak budeme písať rýchlejšie, ale je to výhodné napríklad aj ak sa dozvieme, že namiesto "f:X\to Y" by sme mali kvoli správnemu medzerovaniu používať "f\colon X\to Y", nemusíme prácne prechádzať celý dokument, ak sme všade funkciu zapisovali pomocou makra (ako "\Zobr fXY"), stačí to zmeniť v definícii makra. (O viacerých takýchto veciach si môžete prečítať napríklad tu v časti "Common Pitfalls".)

Podobný príklad: Pre uzavretý interval niektorí ľudia používajú $[a,b]$ [a,b], niektorí $\langle a,b\rangle$ \langle a,b\rangle. Pokiaľ použijete makro, napríklad
\newcommand{\intrv}[2]{\ensuremath{\langle #1,#2 \rangle}}
a budete ho dôsledne používať, tak môžete z jedného označenia veľmi ľahko prejsť na druhé. (Toto je typický príklad, že keď človek niečo nevie naTeXovať, môže si to odložiť na neskôr. Napríklad, ak vidíte, že "<a,b>" $<a,b>$ vyzerá strašne škaredo, ale neviete ako to zmeniť, nemáte sa práve koho opýtať a nemáte ani prístup na internet, tak si môžete urobiť makro, v ktorom zatiaľ používate takéto označenie, a keď sa dozviete ako to správne vysádzať, tak makro zmeníte. Toto je trochu naivný príklad, lebo ako sa TeX-uje interval nájdete vcelku ľahko; ale môže sa stať, že budete potrebovať nejaký symbol, ktorý je oveľa ťažšie nájsť.)

Ďalší príklad užitočného makra - na vysádzanie kongruencie; $a\equiv b\pmod{n}$.
\newcommand{\kong}[3]{\ensuremath{#1\equiv #2\pmod{#3}}}

Ďalšia výhoda, ktorú vám dávajú makrá je to, že môžete pomocou nich rozlíšiť aj význam. Napríklad môžete vektory označovať šípkou ako ja a použiť makro $\vec a$
\newcommand{\vek}[1]{\ensuremath{\vec{#1}}}
Keď sa rozhodnete, že sa vám viac páči označovať vektory bez šípok ale boldom, tak jednoducho zmeníte makro na $\mathbf a$
\newcommand{\vek}[1]{\ensuremath{\mathbf{#1}}}.
Podobne ak napríklad v nejakom texet často používam systémy množín a chcem ich značiť vždy tým istým fontom, môžem zaviesť napríklad makro $\mathcal S$:
\newcommand{\syst}[1]{\mathcal{#1}}
Ak sa rozhodnem zmeniť font napríklad takto $\mathscr S$, tak mi to stačí zmeniť v makre a zmena sa prejaví všade, kde som nejako označil systém množín
\newcommand{\syst}[1]{\mathscr{#1}}
Post Reply