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.

Lave om på en makro mens man genbruger den gamle definition<br />

Lave om på en makro mens man genbruger den gamle definition<br />

Når man er ved at lave om på makroer, er det <strong>til</strong> tider en fordel at kunne gemme den<br />

nuværende definition af makroen, lave om på originalen og så f.eks. indsætte den<br />

gamle definition igen. I LATEX opnås dette via makroen \let.<br />

\let\nytnavn=\gammeltnavn \let<br />

Et simpelt eksempel på anvendelsen er hvis man ønsker at indbygge \FloatBarrier<br />

direkte ind i \section:<br />

\let\oldsection=\section<br />

\renewcommand{\section}{\FloatBarrier\oldsection}<br />

Faktisk kan man slippe endnu nemmere om ved dette idet pakken placeins (som giver<br />

os \FloatBarrier) faktisk har en option (section) som vil lave ovenstående omdefinering,<br />

se desuden Arseneau (1999).<br />

Sidebemærkning A.3. Begynder man på at anvende tricks af denne slags, skal man<br />

vide hvad man gør og hvordan tingene fungerer. Dette gælder især hvis der er makroargumenter<br />

involveret. Ovenstående omdefinition af \section ville eksempelvis<br />

gå helt galt hvis man byttede om på rækkefølgen af \FloatBarrier og \oldsection, thi<br />

så ville \oldsection spise \FloatBarrier som et argument, hvilket tydeligtvis ikke er<br />

meningen.<br />

Farlig (læs teksten) A.4. En anden ting man skal være særlig opmærksom på, er at<br />

man ikke kommer <strong>til</strong> at lave en ikke-<strong>til</strong>tænkt rekursion. F.eks.<br />

Eksempel<br />

A.10<br />

\renewcommand\nabla{\overline{\nabla}} Eksempel<br />

A.11<br />

Dette vil gå ind i en uendelig rekursion og LATEX vil fejle når den er løbet tør for<br />

hukommelse.<br />

Makroer specielt <strong>til</strong> teksten<br />

Man har sikkert opdaget at undertegnede er ret glad for memoir-klassen. For at skrive<br />

»memoir « kan jeg i min opsætning skrive<br />

\markup[nomk,cls]{memoir}<br />

Men det bliver man jo træt af, så man laver sig en genvej:<br />

\newcommand\memoir{\markup[nomk,cls]{memoir}} Eksempel<br />

A.12<br />

Men så er problemet jo at man bliver nødt <strong>til</strong> at skrive »\memoir{} « hele tiden for<br />

ellers spiser den mellemrummet efter. Ved at anvende makroen \xspace fra pakken \xspace<br />

xspace, kan man komme ud over dette problem, dvs. xspace<br />

\usepackage{xspace}<br />

\newcommand\memoir{memoir\xspace}<br />

bla \memoir bla<br />

slut preamble<br />

bla memoir bla<br />

Via \xspace vil makroen man har lavet ikke spise mellemrummet efter.<br />

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

339<br />

Eksempel<br />

A.13<br />

£

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

Saved successfully!

Ooh no, something went wrong!