Předchozí   Další   Dolů   Obsah 

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říkazAnglická 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}


 Předchozí   Další   Nahoru   Obsah