N) Makra
Definice maker:
- K definici maker slouží následující příkaz:
- \newcommand{příkaz}[počet par.][implicitní]{tělo definice}
Pokud obsahuje definice makra nějaké parametry, musí se uvést volitelný
parametr počet par. Tento příkaz definuje nový příkaz příkaz - jeho použitím
v textu s případnými parametry se příkaz nahradí tělem definice s případnými
aplikovanými parametry. V konstrukci se na parametry odkazuje znakem #
následovaným číslem, které znamená pořadí parametru (např. #3). Při použití
jsou pak parametry umístěny každý zvlášt v jednom páru závorek. Pokud se v
této konstrukci uvede parametr implicitní, znamená to, že první parametr z
těla definice je při volání příkazu volitelný a má tuto implicitní hodnotu.
- Příklad:
- \newcommand{\operator}[2][\hat]{\ensuremath{\mathbf{#1{#2}}}} - definuje
makro se dvěma parametry. První je volitelný a pokud se při volání makra
nespecifikuje, bude automaticky \hat.
Příklady použití: \operator{A} - napíše tučné matematické A a nad ním
stříšku (\hat), \operator[]{A} - napíše jen tučné A v matematickém režimu,
\operator[\vec]{A} - napíše tučné A v matematickém režimu a nad ním šipku.
\ensuremath zajistí, že pokud již nejsme v matematickém režimu, tak se do
něj přepne.
Dokonce funguje i následující makro:
\newcommand{\operator}[2][]{\ensuremath{\mathbf{#1{#2}}}}
použití: např. \operator{A} - napíše jen tučné A v matematickém režimu,
\operator[\hat]{A} - napíše tučné A v matematickém režimu a nad ním stříšku.
- Příklad bez volitelného parametru:
- \newcommand{\operator}[1]{\ensuremath{\mathbf{\hat{#1}}}} - použití:
\operator{A} - napíše tučné A v matematickém režimu a nad ním stříšku.
- Příklad na změnu šířky odstavce:
\newcommand{\souhrn}[2]{
\begin{center}\parbox{#1}{\bfseries\itshape\hrulefill \\ #2
\hrulefill}\end{center}
}
- Použití:
- \souhrn{.8\textwidth}{Dá se říci, že se navrhovaná metoda ukázala jako
perspektivní. Avšak pro jistotu navrhujeme provést ještě další
ověřovací experimenty.}
Případná přítomnost číslovky v názvu makra činí problémy.
Příkazem \renewcommand se změní chování již existujícího příkazu, příkaz
\providecommand provede definici nového makra jen, pokud již definice
téhož jména neexistuje (\newcommand LaTeX v tomto případě způsobil
chybovou hlášku). Parametry u obou těchto příkazů jsou stejné jako u
přikazu \newcommand. Mám tu zkušennost, že \renewcommand něčeho co je
definováno v souborech .cls nebo .sty by se neměl uvádět v textové části
nýbrž v preambuli. V každém případě je i z hlediska přehlednosti lepší uvádět
příkazy jako newcommand v preambuli (případně v balíku).
Bezparametrický příkaz \renewcommand{}{} se často používá při modifikaci
chování standartních příkazů. Zde je seznam příkazů, které generují uvedený
řetězec (anglický nebo český) a které můžeme často potřebovat předefinovat
pomocí renewcommand (nejlépe na konci preambule). Tyto příkazy uživatel
obvykle přímo nepoužívá, ale jsou užity uvnitř jiných uživatelských
příkazů - obsaženy v jejich definici. Jejich význam by měl být jasný.
Příkaz | Anglická verze | Česká verze | |
\abstractname | Abstract | Abstrakt | |
\alsoseename | see also | viz také | |
\appendixname | Appendix | Příloha | |
\bibname | Bibliography | Literatura | |
\ccname | cc | Na vědomí | (u dopisů) |
\chaptername | Chapter | Kapitola | |
\contentsname | Contents | Obsah | |
\enclname | encl | Příloha | (u dopisů) |
\figurename | Figure | Obrázek | |
\headtoname | To | Komu | (u dopisů) |
\indexname | Index | Rejstřík | |
\listfigurename | List of Figures | Seznam obrázků | |
\listtablename | List of Tables | Seznam tabulek | |
\partname | Part | Část | |
\prefacename | Preface | Předmluva | |
\refname | References | Reference | |
\seename | see | viz | |
\tablename | Table | Tabulka | |
- Př.:
- \renewcommand{\figurename}{FIGURE}