Makrá sú užitočné
Posted: Tue Jan 01, 2013 11:49 am
Pri TeX-ovaní môžu byť pre vás makrá veľmi užitočné z viacerých dôvodov:
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}}
- 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ť.
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}}