17.07.2013 Views

Introduktion til LaTeX

Introduktion til LaTeX

Introduktion til LaTeX

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Makroer med argumenter<br />

Eksemplerne vi har lavet her har mest med matematik at gøre, men man kan<br />

naturligvis også lave makroer som kan anvendes i teksten. Her skal vi dog huske dette<br />

med at anvender man makroer i teksten som ikke tager noget argument, så har de<br />

det med at spise mellemrum. Dette kan man dog også komme udenom, se afsnittet<br />

»Makroer specielt <strong>til</strong> teksten« på side 339.<br />

Makroer med argumenter<br />

Med \newcommand kan man anvende op <strong>til</strong> 9 argumenter 7 som i erstatningskoden kan<br />

<strong>til</strong>gås via #1 <strong>til</strong> #9. Et meget hurtigt eksempel kunne være<br />

\newcommand\NiceRed[1]{\textcolor{nicered}{#1}}<br />

\NiceRed{Noget i farver}<br />

Noget i farver<br />

hvor vi kan se at »#1« anvendes <strong>til</strong> at henvise <strong>til</strong> den tekst man giver <strong>til</strong> makroen.<br />

Her er et lidt mere kompliceret eksempel med to obligatoriske argumenter. Bemærk<br />

at idet erstatningskoden kun kan anvendes indenfor matematik-mode, så kan \diff<br />

også kun anvendes i matematik.<br />

Eksempel<br />

A.4<br />

\newcommand{\diff}[2]{\frac{\partial #1}{\partial #2}} Eksempel<br />

A.5<br />

hvor efter $\diff{f}{x}$ giver ∂f<br />

. Så kan man jo også lave en version med d i stedet for<br />

∂x<br />

∂ eller vi kan være lidt smart. Vi kender jo syntaksen for kubikrødder $\sqrt[3]{2}$<br />

( 3√ 2) – dvs. hvor man med et ekstra valgfrit argument kan angive graden. Hvordan<br />

laver man nu sådan noget?<br />

Et sådant ekstra valgfrit argument kan man også lave via \newcommand, dog kun<br />

med ét argument og det er altid #1. Syntaksen er<br />

\newcommand{〈makronavn〉}[〈num arg〉][〈std værdi for #1〉]{〈kode〉}<br />

Hvilket betyder at hvis man ikke anvender noget valgfrit argument vælges 〈std værdi<br />

for #1〉 automatisk og når man giver det valgfri argument anvendes det i stedet. Så en<br />

generalisering af \diff har nu tre argumenter med koden<br />

\newcommand{\diff}[3][\partial]{\frac{#1 #2}{#1 #3}}<br />

\[ \diff{f}{x}\diff[d]{x}{t} \qquad<br />

\diff{}{x} \int_0^x f(t)dt = f(x) \]<br />

∂f dx<br />

∂x dt<br />

Et tredje eksempel der også er ret anvendeligt (bemærk det specielle kolon): 8<br />

\newcommand\morf[4][\to]{#2\colon#3#1#4}<br />

$\morf{f}{A}{B}$ eller<br />

$\morf[\hookrightarrow]{f}{A}{B}$<br />

∂<br />

∂x<br />

f : A → B eller f : A ֒→ B<br />

x<br />

0<br />

f (t)dt = f (x)<br />

Hvordan man laver makroer som har en stjernet version (så som f.eks. \section)<br />

eller som har mere end et valgfrit argument (f.eks. \section indenfor memoir), er ikke<br />

noget vi kommer nærmere ind på i denne bog.<br />

7 Hvis man har brug for flere, bør man overveje at benytte en 〈nøgleord〉 = 〈værdi〉 syntaks i stedet, dette implementeres<br />

via pakken keyval eller lignende pakker.<br />

8 Makroen skyldes Emil Hedevang Lohse.<br />

Kapitlet er sidst opdateret 2010/03/02 16:53 (revision 610)<br />

337<br />

Eksempel<br />

A.6<br />

£<br />

Eksempel<br />

A.7<br />

£

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!