De niet zo korte inleiding tot L^{A}TEX 2ε

ofwel L^{A}TEX 2εin 101 minuten

door Tobias Oetiker

Hubert Partl, Irene Hyna en Elisabeth Schlegl

Vertaling van de Engelse versie naar het Nederlands: Stefan Becuwe, Bart Windels en anderen

Versie 1.3, april 2003 \underline{ii}

Copyright \begin{matrix}c \\ ◯ \end{matrix}2000-2003 Tobias Oetiker en alle medewerkers aan LShort. Alle rechten voorbehouden. Dit document is vrij beschikbaar; u kan het verder verspreiden en/of het aanpassen in overeenstemming met de voorwaarden uit de GNU General Public License zoals die door de Free Software Foundation is gepubliceerd; ofwel versie 2 van de Licentie, of (naar keuze) gelijk welke latere versie. Dit document is verspreid in the hoop dat het nuttig kan gebruikt worden, maar ZONDER ENIGE VORM VAN GARANTIE; zonder zelfs de impliciete garantie van VERHANDELBAARHEID of GESCHIKTHEID VOOR WELK DOEL DAN OOK. Zie de GNU General Public License voor meer details. U zou een copie van de GNU General Public License moeten ontvangen hebben, tesamen met dit document; indien dit niet het geval is, schrijf naar de Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Copyright \begin{matrix}c \\ ◯ \end{matrix}2000-2003 Tobias Oetiker and all the Contributers to LShort. All rights reserved. This document is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this document; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Dank je wel!

Veel van het materiaal uit deze inleiding komt van een Oostenrijkse inleiding tot L^{A}TEX 2.09, geschreven in het Duits door:

     Hubert Partl <partl@mail.boku.ac.at>

Zentraler Informatikdienst der Universität für Bodenkultur Wien

     Irene Hyna <Irene.Hyna@bmwf.ac.at>

Bundesministerium für Wissenschaft und Forschung Wien

Elisabeth Schlegl <geen email>

in Graz

Als je interesse hebt voor het Duitstalige document, dan vind je een aan L^{A}TEX 2εaangepaste versie van de hand van Jörg Knappen op

CTAN:/tex-archive/info/lshort/german/.

iv  Dank je wel!

Bij de voorbereiding van dit document heb ik op comp.text.tex voor reviewers gevraagd. Ik heb heel wat reacties gekregen. De volgende personen hebben geholpen met correcties, suggesties en materiaal om de tekst te verbeteren. Zij hebben grote inspanningen geleverd om me te helpen dit document in zijn huidige toestand te krijgen. Ik wens hen allemaal van harte hiervoor te danken. Natuurlijk zijn alle vergissingen die je in de tekst vindt mijn verantwoordelijkheid. Als je bij toeval een woord vindt dat juist gespeld is, dan moet dat te danken zijn aan één van hen.

Rosemary Bailey, Friedemann Brauer, Jan Busa, Markus Brühwiler, David Carlisle, José Carlos Santos, Mike Chapman, Pierre Chardaire, Christopher Chin, Carl Cerecke, Chris McCormack, Wim van Dam, Jan Dittberner, Michael John Downes, David Dureisseix, Elliot, Daniel Flipo, David Frey, Hans Fugal, Robin Fairbairns, Jörg— Fischer, Erik Frisk, Frank, Kasper B. Graversen, Arlo Griffiths, Alexandre Guimond, Cyril Goutte, Greg Gamble, Neil Hammond, Rasmus Borup Hansen, Joseph Hilferty, Björn Hvittfeldt, Martien Hulsen, Werner Icking, Jakob, Eric Jacoboni, Alan Jeffrey, Byron Jones, David Jones, Johannes-Maria Kaltenbach, Michael Koundouros, Andrzej Kawalec, Alain Kessi, Christian Kern, Jörg Knappen, Kjetil Kjernsmo, Maik Lehradt, Alexander Mai, Martin Maechler, Aleksandar S Milosevic, Claus Malten, Kevin Van Maren, Lenimar Nunes de Andrade, Demerson Andre Polli, Maksym Polyakov Hubert Partl, John Refling, Mike Ressler, Brian Ripley, Young U. Ryu, Bernd Rosenlecher, Chris Rowley, Risto Saarelma, Hanspeter Schmid, Craig Schlenter, Christopher Sawtell, Geoffrey Swindale, Josef Tkadlec, Scott Veirs, Didier Verna, Fabian Wernli, Carl-Gustav Werner, David Woodhouse, Chris York, Fritz Zaucker, Rick Zaccone, and Mikhail Zotov.

Noot van de vertalers. De Nederlandse vertaling is het werk van deel-

nemers aan de nieuwsgroepen be.comp.os.linux en kotnet.comp.latex.

Meer in het bijzonder: Stefan Becuwe, Herman Bruyninckx, Maarten De Munck, Tom Mortier, Tim Piessens, Arnout Standaert, Stefan Stroobants, Yves Vandewoude, Erik Van Eynde, Peter Vangorp, Dong Hoon Van Uytsel, Bart Windels.

Woord vooraf

L^{A}TEX [1] is een zetsysteem dat uitermate geschikt is voor wetenschappelijke en wiskundige documenten die een hoge typografische kwaliteit moeten hebben. L^{A}TEX kan ook worden gebruikt voor het opmaken van andere documenten, gaande van een eenvoudige brief tot een volledig boek. L^{A}TEX is geen tekstverwerker of DeskTop Publishing pakket, maar in feite een macropakket dat gebruik maakt van een onderliggend zetsysteem: TEX. Deze tekst is een korte beschrijving van L^{A}TEX 2ε(de meest recente versie van L^{A}TEX) die moet volstaan voor de meeste toepassingen van L^{A}TEX. De geïnteresseerde lezer vindt een volledige beschrijving van L^{A}TEX in [1, 3]. Deze tekst is onderverdeeld in vijf hoofdstukken:

Hoofdstuk 1 beschrijft de werking van L^{A}TEX 2εen de structuur van een L^{A}TEX 2ε-document. Je leest hier bovendien iets over de geschiedenis van L^{A}TEX. Na dit hoofdstuk heb je een ruw beeld van L^{A}TEX en zijn doelstelling, wat je zal helpen om de informatie uit de volgende hoofdstukken in een breder kader te plaatsen.

Hoofdstuk 2 leert je de syntax van een eenvoudig L^{A}TEX 2ε-document. Je leert de belangrijkste L^{A}TEX-commando’s en -omgevingen. Hierna ben je in staat om je eerste L^{A}TEX-document te maken.

Hoofdstuk 3 beschrijft hoe je wiskundige formules kan gebruiken in L^{A}TEX. De enorme hoeveelheid voorbeelden zal je snel overtuigen van de voordelen van de meerwaarde van L^{A}TEX. Op het einde van dit hoofdstuk vind je enkele tabellen met de in L^{A}TEX beschikbare wiskundige symbolen.

Hoofdstuk 4 behandelt de automatische aanmaak van een index en een referentielijst, het invoegen van tekeningen in EPS-formaat en enkele andere nuttige uitbreidingen.

Hoofdstuk 5 bevat (mogelijk zeer gevaarlijke) informatie over hoe je zelf wijzigingen kan aanbrengen aan de standaard lay-out die L^{A}TEX gebruikt. Je leert er o.a. hoe je de prachtige standaard opmaak van L^{A}TEX op eenvoudige wijze kan herschapen tot een amateuristisch boeltje.

Omdat deze tekst zelf al een korte introductie is tot L^{A}TEX, is het erg belangrijk dat je de hoofdstukken in de juiste volgorde doorneemt. Schenk vooral veel aandacht aan de voorbeelden, omdat de meeste informatie aan de hand van voorbeelden wordt beschreven. L^{A}TEX is beschikbaar voor de meeste besturingssystemen, onder andere voor PC, Mac en UNIX-systemen. Op de computersystemen van de meeste universiteiten is een L^{A}TEX-omgeving klaar voor gebruik. In deze tekst zullen we je niet leren hoe je L^{A}TEX moet installeren, maar tonen we je hoe je documenten maakt die door L^{A}TEX kunnen worden verwerkt.

Andere informatie over L^{A}TEX kan je vinden op één van de sites van het Comprehensive TEX Archive Network (CTAN). De startpagina van CTAN is http://www.ctan.org/. Uitbreidingen voor L^{A}TEX kan je vinden in de verschillende ftp-archieven van CTAN: ftp://ctan.tug.org/ (VS),

ftp://ftp.dante.de/ (Duitsland), ftp://ftp.tex.ac.uk/ (Verenigd Ko-

ninkrijk) zijn enkele voorbeelden. Op ftp://ftp.belnet.be/ (België) staat er steeds een lokale versie. In deze tekst zullen we af en toe verwijzen naar CTAN (we zullen bijvoorbeeld af en toe tips geven over bepaalde software of documenten die je kan downloaden). In plaats van de volledige URL zullen we dan de locatie op CTAN vermelden. Anderstalige versies van deze tekst worden regelmatig herwerkt en ter be-

schikking gesteld op CTAN:/tex-archive/info/lshort/.

Inhoudsopgave

Dank je wel! iii

Woord vooraf v

1 Wat u moet weten 1

1.1 The Name of the Game . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2 L^{A}TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 De bouwstenen . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.1 Auteur, grafisch ontwerper en zetter . . . . . . . . . . 2 1.2.2 Typografisch ontwerp . . . . . . . . . . . . . . . . . . 4 1.2.3 Voor- en nadelen . . . . . . . . . . . . . . . . . . . . . 4

1.3 Een L^{A}TEX-document maken . . . . . . . . . . . . . . . . . . . 5 1.3.1 Spaties . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3.2 Speciale karakters . . . . . . . . . . . . . . . . . . . . . 6 1.3.3 L^{A}TEX-commando’s . . . . . . . . . . . . . . . . . . . . 7 1.3.4 Commentaar . . . . . . . . . . . . . . . . . . . . . . . 7

1.4 De structuur van de invoertekst . . . . . . . . . . . . . . . . . 8 1.5 De opmaak van een document . . . . . . . . . . . . . . . . . 9

1.5.1 Documentklassen . . . . . . . . . . . . . . . . . . . . . 9 1.5.2 Pakketten . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5.3 Pagina-opmaakstijlen . . . . . . . . . . . . . . . . . . 14

1.6 Bestanden die je ongetwijfeld tegenkomt . . . . . . . . . . . 14 1.7 Grote projecten . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Tekstopmaak 17 2.1 De structuur van tekst en taal . . . . . . . . . . . . . . . . . . 17 2.2 Afbreken van regels en pagina’s . . . . . . . . . . . . . . . . . 19

2.2.1 Uitgelijnde alinea’s . . . . . . . . . . . . . . . . . . . . 19 2.2.2 Woordsplitsing . . . . . . . . . . . . . . . . . . . . . . 20

2.3 Kant-en-klare uitdrukkingen . . . . . . . . . . . . . . . . . . 21 2.4 Speciale karakters en symbolen . . . . . . . . . . . . . . . . . 22 2.4.1 Aanhalingstekens . . . . . . . . . . . . . . . . . . . . . 22 2.4.2 Liggende streepjes . . . . . . . . . . . . . . . . . . . . 22 2.4.3 Tilde (∼) . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4.4 Graden (^{∘}) . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4.5 Beletselteken ( …) . . . . . . . . . . . . . . . . . . . . 23 2.4.6 Ligaturen . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4.7 Accenten en speciale karakters . . . . . . . . . . . . . 24

2.5 Niet-Engelstalige teksten . . . . . . . . . . . . . . . . . . . . . 24 2.6 Witruimte tussen woorden . . . . . . . . . . . . . . . . . . . . 26 2.7 Titels, hoofdstukken en secties . . . . . . . . . . . . . . . . . . 26 2.8 Verwijzingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.9 Voetnoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.10 Benadrukte woorden . . . . . . . . . . . . . . . . . . . . . . . 29 2.11 Omgevingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    2.11.1 Lijstjes: itemize, enumerate en description . . . . . 30

2.11.2 Uitlijnen . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.11.3 Citaten . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.11.4 Verbatim . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.11.5 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.12 Vlottende objecten: figuren en tabellen . . . . . . . . . . . . . 35 2.13 Breekbare (fragile) commando’s beschermen . . . . . . . . . 38

3 Het zetten van wiskundige formules 39 3.1 Algemene bemerkingen . . . . . . . . . . . . . . . . . . . . . 39 3.2 Groeperen in “wiskundige modus” . . . . . . . . . . . . . . . 41 3.3 Bouwstenen voor een wiskundige formule . . . . . . . . . . 42 3.4 Spatiëring in wiskundige uitdrukkingen . . . . . . . . . . . . 46 3.5 Verticaal gealigneerd materiaal . . . . . . . . . . . . . . . . . 47 3.6 Phantom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.7 Font grootte in wiskundige modus . . . . . . . . . . . . . . . 49 3.8 Theorema’s, axioma’s, . . . . . . . . . . . . . . . . . . . . . . . 50 3.9 Vette symbolen . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.10 Lijst van wiskundige symbolen . . . . . . . . . . . . . . . . . 53

4 Gespecialiseerde technieken 61 4.1 Beelden in EPS-formaat invoegen . . . . . . . . . . . . . . . . 61 4.2 Referentielijst . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.3 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.4 Aangepaste kop- en voetteksten . . . . . . . . . . . . . . . . . 66 4.5 Het verbatim-pakket . . . . . . . . . . . . . . . . . . . . . . . . 67 4.6 L^{A}TEX-pakketten downloaden en installeren . . . . . . . . . . 67 5 Je eigen L^{A}TEX 71

5.1 Nieuwe commando’s, omgevingen en pakketten . . . . . . . 71 5.1.1 Nieuwe commando’s . . . . . . . . . . . . . . . . . . . 72 5.1.2 Nieuwe omgevingen . . . . . . . . . . . . . . . . . . . 73 5.1.3 Je eigen pakket . . . . . . . . . . . . . . . . . . . . . . 74

5.2 Font en corps . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.2.1 Het font wijzigen . . . . . . . . . . . . . . . . . . . . . 74 5.2.2 Levensgevaar . . . . . . . . . . . . . . . . . . . . . . . 78 5.2.3 Goede raad is duur . . . . . . . . . . . . . . . . . . . . 78

5.3 Witruimte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.3.1 Witruimte tussen regels . . . . . . . . . . . . . . . . . 78 5.3.2 Alinea-opmaak . . . . . . . . . . . . . . . . . . . . . . 79 5.3.3 Horizontale witruimte . . . . . . . . . . . . . . . . . . 79 5.3.4 Verticale witruimte . . . . . . . . . . . . . . . . . . . . 80

5.4 Pagina-opmaak . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.5 Creatief met lengte . . . . . . . . . . . . . . . . . . . . . . . . 83 5.6 Lege dozen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.7 Staafjes en stutten . . . . . . . . . . . . . . . . . . . . . . . . . 86

Bibliografie 89

Index 91

Lijst van figuren

1.1 Componenten van een TEX-systeem. . . . . . . . . . . . . . . 3 1.2 Een minimale invoertekst voor L^{A}TEX. . . . . . . . . . . . . . . 9 1.3 Voorbeeld van een realistische invoertekst. . . . . . . . . . . 9

4.1 Voorbeeld van een opmaak met het fancyhdr-pakket. . . . . . 66

5.1 Voorbeeld van een pakket. . . . . . . . . . . . . . . . . . . . . 75 5.2 Parameters voor pagina-opmaak. . . . . . . . . . . . . . . . . 82

Lijst van tabellen

1.1 Documentklassen. . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2 Opties bij documentklassen. . . . . . . . . . . . . . . . . . . . 11 1.3 Sommige pakketten die met L^{A}TEX worden meegeleverd… 13 1.4 De vooraf gedefinieerde pagina-opmaakstijlen van L^{A}TEX… 14

2.1 Accenten en speciale karakters. . . . . . . . . . . . . . . . . . 24 2.2 Plaatsspecificatie voor vlottende objecten. . . . . . . . . . . . 36

3.1 Accenten in wiskundige modus. . . . . . . . . . . . . . . . . 53 3.2 Kleine Griekse letters. . . . . . . . . . . . . . . . . . . . . . . 53 3.3 Griekse hoofdletters. . . . . . . . . . . . . . . . . . . . . . . . 53 3.4 Binaire relaties. . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.5 Binaire operatoren. . . . . . . . . . . . . . . . . . . . . . . . . 54 3.6 GROTE operatoren. . . . . . . . . . . . . . . . . . . . . . . . . 55 3.7 Pijlen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.8 Begrenzingstekens. . . . . . . . . . . . . . . . . . . . . . . . . 55 3.9 Grote begrenzingstekens. . . . . . . . . . . . . . . . . . . . . 55 3.10 Verschillende symbolen. . . . . . . . . . . . . . . . . . . . . . 56 3.11 Niet-wiskundige symbolen. . . . . . . . . . . . . . . . . . . . 56 3.12 AMS begrenzingstekens. . . . . . . . . . . . . . . . . . . . . . 56 3.13 AMS Grieks en Hebreeuws. . . . . . . . . . . . . . . . . . . . 56 3.14 AMS binaire relaties. . . . . . . . . . . . . . . . . . . . . . . . 57 3.15 AMS pijlen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.16 AMS negaties van binaire relaties en pijlen. . . . . . . . . . . 58 3.17 AMS binaire operatoren. . . . . . . . . . . . . . . . . . . . . . 59 3.18 AMS varia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.19 Wiskundige alfabetten. . . . . . . . . . . . . . . . . . . . . . . 59

4.1 Sleutels voor het graphicx-pakket. . . . . . . . . . . . . . . . . 63 4.2 Syntax voor sleutelwoorden in het \index-commando. … 65

5.1 Fonts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.2 Corpsgrootte. . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.3 Absolute corpsgrootte in punten in de standaardklassen… 76 5.4 Fonts binnen formules. . . . . . . . . . . . . . . . . . . . . . . 77 5.5 Lengtematen in TEX. . . . . . . . . . . . . . . . . . . . . . . . 80

Hoofdstuk 1

Wat u moet weten

In het eerste deel van dit hoofdstuk vind je een kort overzicht van de filosofie achter L^{A}TEX 2ε. Het tweede deel richt zich op de elementaire structuur van een L^{A}TEX-document. Als je dit hoofdstuk hebt gelezen, zou je een ruw beeld moeten hebben van hoe L^{A}TEX werkt en ‘denkt’. Dit zal je helpen om alle nieuwe informatie in een breder kader te plaatsen.

1.1 The Name of the Game

1.1.1 TEX

TEX is een computerprogramma dat door Donald E. Knuth werd ontworpen [2]. Het is een “tekstverwerker” die zeer geschikt is voor het verwerken van wiskundige formules. In 1977 begon Knuth uit frustratie over de bedenkelijke opmaak die de American Mathematical Society gebruikte om zijn artikels te publiceren, met de ontwikkeling van TEX. Vanaf 1974 had hij zelfs geen artikels meer ter publicatie ingediend, omdat (zo zei hij) “het eindproduct gewoonweg te pijnlijk was om naar te kijken”. De versie van TEX die vandaag nog steeds gebruikt wordt, werd uitgebracht in 1982 en is sindsdien lichtjes verbeterd en uitgebreid. De laatste jaren is TEX zeer stabiel en Knuth beweert dat het quasi bug-vrij is. Het nummer van de versie van TEX convergeert naar π en is nu 3.141592. Knuth wenst dat de versie van TEX die zal bestaan bij zijn overlijden versie π zal heten, en niet meer zal wijzigen. TEX spreekt men uit als “tech”, met “ch” zoals in “toch”. In een ASCIIomgeving spel je TEX als TeX.

1.1.2 L^{A}TEX

L^{A}TEX is een verzameling macro’s; dit zijn kleine programmaatjes die de gebruiker toelaten met eenvoudige commando’s vrij ingewikkelde TEXstructuren te gebruiken. L^{A}TEX, dat oorspronkelijk werd geschreven door Leslie Lamport [1], laat alle auteurs toe hun werk af te drukken met de hoogste typografische kwaliteit en volgens een vooraf gedefinieerde professionele opmaak. Het gebruikt TEX als (onzichtbare) onderliggende “tekstverwerker”. In 1994 werd L^{A}TEX geüpdatet door het zogenaamde L^{A}TEX3-team, onder leiding van Frank Mittelbach. Sommige veelgevraagde en langverwachte verbeteringen werden doorgevoerd en een heleboel uitbreidingen die sinds de iets oudere versie L^{A}TEX 2.09 her en der werden uitgebracht, werden samengevoegd. Om het onderscheid te kunnen maken tussen de oude en de nieuwe (in deze tekst besproken) versie, wordt deze laatste L^{A}TEX 2εgenoemd. Figuur 1.1 illustreert de samenwerking van TEX en L^{A}TEX 2ε. L^{A}TEX spreekt men uit als “la-tech” of “lee-tech”. Als je naar L^{A}TEX wilt verwijzen in een ASCII-omgeving, dan schrijf je LaTeX. L^{A}TEX 2εwordt uitgesproken als “la-tech twee ee” en genoteerd als LaTeX2e.

1.2 De bouwstenen

1.2.1 Auteur, grafisch ontwerper en zetter

Als een auteur iets wenst te publiceren, geeft hij zijn getypt of geschreven manuscript aan een uitgeverij. Eén van haar grafische ontwerpers beslist dan over de lay-out van het document: kolombreedte, lettertype, spaties voor en na een hoofding, … De ontwerper voegt zijn instructies bij het manuscript, en de zetter doet er zijn ding mee. Een ontwerper neemt beslissingen op basis van zijn ervaring, rekening houdend met de inhoud van het manuscript. Hij tracht te begrijpen wat de auteur in gedachte had toen hij het manuscript schreef. In een L^{A}TEX-omgeving speelt L^{A}TEX de rol van grafisch ontwerper en TEX doet het werk van de zetter. L^{A}TEX is natuurlijk “slechts” een programma en moet daarom de nodige gegevens inlezen die de auteur zelf moet geven om de logische structuur van zijn werk te beschrijven. Deze extra informatie wordt in de tekst ingevoerd onder de vorm van “L^{A}TEX-commando’s”. L^{A}TEX werkt dus op een heel andere manier dan de WYSIWYG^{1}-aanpak van de meeste moderne tekstverwerkers zoals MS Word of Corel WordPerfect. Bij deze tekstverwerkers specificeren de auteurs zélf de lay-out van het document terwijl ze de tekst intypen. De hele tijd kunnen ze zien hoe het afgedrukte document er uiteindelijk zal uitzien. Wanneer je L^{A}TEX gebruikt, is het normaal gezien niet mogelijk de finale

1What you see is what you get = je ziet op het scherm wat straks uit de printer rolt

[figure: .pk; METAfont; .mf; driver; dvips; xdvi; ^{...}; .dvi; TEX; Plain; L^{A}TEX 2ε; AMS-Package; ^{...}; .tex; editor; emacs; ispell; ^{...}; copy; printer screen; PostScript; .tfm; .log; Fonts; Typesetting]

Figuur 1.1: Componenten van een TEX-systeem. uitvoer te zien tijdens het intypen van de tekst (alhoewel er tegenwoordig programma’s bestaan die dit mogelijk maken). Je kunt wel een “preview” van de uitvoer op het scherm zien, nadat je het document hebt verwerkt met L^{A}TEX. Je kunt dan correcties aanbrengen, alvorens het document af te drukken.

1.2.2 Typografisch ontwerp

Typografisch ontwerp is een stiel. Onbekwame auteurs begaan regelmatig ernstige opmaakblunders, meestal omdat ze denken dat een goed ontwerp kwestie is van esthetiek — “Als het er goed uitziet, dan is het een goed ontwerp.” Desalniettemin dienen documenten om te worden gelezen, niet om in een museum aan de muur te hangen omwille van hun esthetische kwaliteiten. Dus leesbaarheid en verstaanbaarheid zijn van veel groter belang dan een mooie look. Bijvoorbeeld.

• Het corps (de grootte van de letters) en de nummering van hoofdingen moeten zodanig worden gekozen dat de structuur van de hoofdstukken en andere secties zeer duidelijk is voor de lezer.

• De regels mogen niet te breed zijn, om de ogen van de lezer niet te vermoeien; anderzijds moeten ze lang genoeg zijn om de pagina voldoende te vullen.

Auteurs die gebruik maken van WYSIWYG-systemen, eindigen dikwijls met mooi ogende documenten met weinig of geen consistentie in de structuur. L^{A}TEX voorkomt zulke fouten door de auteur te verplichten de logische structuur van het document aan te geven. L^{A}TEX kiest dan zélf de meest gepaste lay-out.

1.2.3 Voor- en nadelen

In ontmoetingen tussen mensen uit de WYSIWYG-wereld met mensen die L^{A}TEX gebruiken, ontstaat al gauw de discussie over “de voordelen van L^{A}TEX ten opzichte van een gewone tekstverwerker” of omgekeerd. In dat geval kun je je beter niet in het gesprek mengen, omdat zulke discussies meestal uit de hand lopen. Als je toch niet kunt ontsnappen, dan vind je hier wat munitie.

De belangrijkste voordelen van L^{A}TEX ten opzichte van “normale” tekstverwerkers zijn de volgende.

• Er zijn professioneel ontworpen lay-outs beschikbaar, die ervoor zorgen dat het document er uitziet alsof het is “gedrukt”.

• Het invoegen van wiskundige formules gaat op zeer vlotte wijze.

• De auteur moet enkel een paar eenvoudige commando’s kennen die de logische opbouw van het document beschrijven. Hij moet zich zelden bezighouden met de uiteindelijke lay-out.

• Zelfs vrij complexe structuren zoals voetnoten, verwijzingen, een inhoudstafel en een referentielijst kunnen eenvoudig worden gegenereerd.

• Er bestaan aanvulpakketten voor verschillende typografische kunstgrepen die niet door standaard L^{A}TEX worden ondersteund, bijvoorbeeld: het invoegen van beelden in andere formaten dan EPS.

• L^{A}TEX spoort auteurs aan om goed gestructureerde teksten te schrijven; dit is een logisch gevolg van de werking van L^{A}TEX (zie hierboven).

• TEX draait op bijna elk beschikbaar hardwareplatform.

• Je eigenlijke L^{A}TEX-documenten zijn veel kleiner (en transporteerbaarder) omdat figuren, … niet geïntegreerd zijn.

• TEX is freeware en kost dus niks.

L^{A}TEX heeft ook enkele nadelen.

• In het begin is L^{A}TEX even doorbijten. Documenten moeten aan een bepaalde syntax voldoen, die de auteur moet aanleren.

• Alhoewel sommige parameters naar believen kunnen worden aangepast binnen de standaard lay-out, is het ontwerpen van een volledig nieuwe lay-out voor je documenten moeilijk en tijdrovend.

• Het is erg moeilijk om ongestructureerde documenten te maken.

1.3 Een L^{A}TEX-document maken

De invoer van L^{A}TEX is een gewoon ASCII-tekstbestand, dat je met gelijk welke editor kan maken en aanpassen.^{2} Het bevat de tekst van het document, en de commando’s die aan L^{A}TEX duidelijk maken hoe de tekst moet worden georganiseerd.

2Dit is een aangenaam gevolg van het feit dat ASCII een open standaard is.

1.3.1 Spaties

“Witruimte” (een spatie, verschillende spaties, een tabulator, …) in de invoertekst wordt door L^{A}TEX beschouwd als “spatie” zonder meer. Verschillende opeenvolgende spaties worden behandeld als één spatie. Witruimte aan het begin van een regel wordt meestal genegeerd en het beginnen van een nieuwe regel wordt geïnterpreteerd als een spatie. Een lege regel tussen twee regels tekst definieert het einde van een alinea. Verschillende lege regels worden bekeken als één lege regel. Hieronder zie je een voorbeeld. Aan de linkerkant staat de tekst zoals in het invoerbestand. Aan de rechterzijde staat de uitvoer gegenereerd door L^{A}TEX.

Het doet er niet toe of je
een of meerdere        spaties
achter een woord plaatst.
Een lege regel betekent de start
van een nieuwe alinea.

Het doet er niet toe of je een of meerdere spaties achter een woord plaatst. Een lege regel betekent de start van een nieuwe alinea.

1.3.2 Speciale karakters

De volgende symbolen zijn gereserveerde karakters die een speciale betekenis hebben binnen L^{A}TEX. Als je ze (zonder meer) gebruikt in de invoertekst, dan worden ze meestal niet afgedrukt, of — veel erger — ze veroorzaken allerlei nare effecten die je niet voorzag.

     $ & % # _{ }  ~  ^\

Je kunt deze karakters wel in je documenten gebruiken, als je ze in de invoertekst laat voorafgaan door een backslash \.

\$ \& \% \# \_\{ \}                    $ & % # { }

Vele andere symbolen en allerlei accenten kunnen worden ingevoegd met speciale L^{A}TEX-commando’s, die we hieronder zullen bespreken. Het backslash-karakter \ kan niet worden ingevoegd door er een andere backslash voor te zetten (\\), vermits deze combinatie wordt gebruikt om een regel af te breken.^{3}

3Probeer het commando $\backslash$. Zo verkrijg je ‘\’.

1.3.3 L^{A}TEX-commando’s

L^{A}TEX commando’s zijn case sensitive (er wordt een onderscheid gemaakt tussen kleine letters en hoofdletters) en komen voor in twee vormen:

• Het commando begint met een backslash \, gevolgd door een naam die enkel uit letters bestaat. Op het einde van de commandonaam komt een spatie, een getal of elk ander symbool dat geen letter is.

• Het commando bestaat uit een backslash en precies één speciaal karakter.

L^{A}TEX negeert witruimte achter een commando. Wil je toch een kleine witruimte achter het commando, dan typ je {} en een spatie of een speciaal commando dat de witruimte regelt na de commandonaam. De combinatie {} zorgt ervoor dat L^{A}TEX niet alle witruimte achter een commando opeet.

Ik las dat Knuth de mensen
die met \TeX{} werken, verdeelt in
\TeX{}niciens en \TeX perten.

Ik las dat Knuth de mensen die met TEX werken, verdeelt in TEXniciens en TEXperten.

Sommige commando’s vragen om een parameter die moet worden vermeld tussen accolades { } achter de commandonaam. Sommige commando’s aanvaarden optionele parameters die tussen vierkante haken [ ] kunnen worden vermeld achter de commandonaam. De volgende voorbeelden gebruiken L^{A}TEX-commando’s. Lig er niet wakker van: ze worden verder in deze tekst verklaard.

Ik hou van \textsl{hondjes}.

Ik hou van hondjes.

Ik wil met jou niet op
dezelfde regel staan! \newline
Ik ook niet met jou!

Ik wil met jou niet op dezelfde regel staan! Ik ook niet met jou!

1.3.4 Commentaar

Als L^{A}TEX een %-karakter tegenkomt tijdens de verwerking, dan negeert L^{A}TEX de rest van de huidige regel, het afbreken van de regel en al de witruimte in het begin van de volgende regel.

Op deze manier kun je commentaar in je invoertekst opnemen die niet in het finale document mag worden afgedrukt.

$(a+b)^2 = a^2 + b^2$
% NOG NAKIJKEN !!! <----
is een formule uit de  driehoeks%
   meetkunde

(a + b)^{2} = a^{2} + b^{2} is een formule uit de driehoeksmeetkunde

Het %-karakter kan ook worden gebruikt om lange invoerregels, waarin geen witruimte of regelafbreking mag voorkomen, over verschillende regels te verdelen. Voor grote blokken met commentaar kun je ook de omgeving comment uit het pakket verbatim gebruiken. Als je het commando comment wil gebruiken, moet je dus \usepackage{verbatim} in de preamble van de invoertekst plaatsen.

Dit is nog een
\begin{comment}
vrij belachelijk,
maar toch leerzaam
\end{comment}
voorbeeld.

Dit is nog een voorbeeld.

De omgeving comment werkt niet binnen complexe structuren, ook niet binnen een formule.

1.4 De structuur van de invoertekst

Als L^{A}TEX 2εeen invoertekst verwerkt, dan gaat het systeem ervan uit dat die tekst is opgesteld volgens een zekere structuur. Zo moet elke invoertekst beginnen met het commando

     \documentclass{...}

Dit commando specificeert welk soort document je wilt schrijven (een brief, een boek, …). Daarna kun je commando’s schrijven die de stijl van het hele document mee bepalen, of je kunt pakketten (Engels: package) inlezen die nieuwe mogelijkheden aan het L^{A}TEX-systeem toevoegen. Om zo’n pakket in te lezen, gebruik je het commando

     \usepackage{...}

Als al het voorbereidende werk is gebeurd,^{4} begin je de eigenlijke tekst met het commando

4Alles wat tussen het \documentclass-commando en het \begin{document}- commando staat, wordt de preamble genoemd.

          \documentclass{article}
          \begin{document}
          Eenvoud siert.
          \end{document}

Figuur 1.2: Een minimale invoertekst voor L^{A}TEX.

\documentclass[a4paper,11pt]{article}
\author{W.~Sollie}
\title{Wit-Russisch voor beginners}
\begin{document}
\maketitle
\tableofcontents
\section{Het begin}
Heel lang geleden, heel ver hiervandaan, \ldots{}
\section{Het slot}
En ze leefden nog lang en gelukkig.
\end{document}

Figuur 1.3: Voorbeeld van een realistische invoertekst.

\begin{document}

Daarna volgt je eigenlijke tekst (eventueel gebruik je L^{A}TEX-commando’s voor wiskundige formules, …) en op het einde van het document typ je het commando

\end{document}

waardoor L^{A}TEX weet dat het ermee gedaan is. Alles wat dan volgt, wordt door L^{A}TEX genegeerd. Figuur 1.2 toont de inhoud van een minimale L^{A}TEX 2εinvoertekst. Een iets uitgebreidere invoertekst vind je in figuur 1.3.

1.5 De opmaak van een document

1.5.1 Documentklassen

De eerste informatie die L^{A}TEX moet kennen om een invoertekst te verwerken, is de aard van het document dat de auteur wil schrijven. Dit gebeurt met het \documentclass-commando.

 \documentclass[opties]{klasse}

Hier staat klasse voor het type van document dat moet worden gegenereerd. Tabel 1.1 somt enkele belangrijke documentklassen op. De parameter opties laat toe bepaalde voorkeuren op te geven. Verschillende opties moeten van elkaar worden gescheiden door een komma. De meest frequente opties worden opgesomd in tabel 1.2.

Tabel 1.1: Documentklassen.

article voor artikels in wetenschappelijke tijdschriften, korte verslagen, examens en toetsen, …

report voor langere verslagen die uit verschillende hoofdstukken bestaan, cursussen, eindverhandelingen, …

book voor echte boeken

slides voor transparanten. Deze klasse gebruikt grote sans serif letters.

Voorbeeld: een invoertekst voor een L^{A}TEX-document kan beginnen met de regel

     \documentclass[11pt,twoside,a4paper]{article}

die aangeeft dat L^{A}TEX het document moet structureren als een artikel met elf-punts-letters en een lay-out moet genereren die aangepast is voor tweezijdig afdrukken op A4-papier.

1.5.2 Pakketten

Wanneer je je document schrijft, zul je af en toe ondervinden dat standaard L^{A}TEX sommige van je noden niet kan invullen. Als je bijvoorbeeld illustraties of kleurtekst wilt invoegen, dan moet je de mogelijkheden van L^{A}TEX uitbreiden. Zulke uitbreidingen heten pakketten (Engels: packages). Ze kunnen worden geactiveerd met het commando

waarbij pakket de naam van het pakket is en opties een optionele lijst van

\usepackage[opties]{pakket}

Tabel 1.2: Opties bij documentklassen.

10pt, 11pt, 12pt

Definieert het corps (lettergrootte) voor het gehele document. Als je geen optie aangeeft, dan wordt 10pt verondersteld.

a4paper, letterpaper, . . .

Definieert het papierformaat. Als je geen optie aangeeft, wordt letterpaper verondersteld (dat is breder en korter dan A4!) Je

kunt ook a5paper, b5paper, executivepaper en legalpaper

opgeven.

fleqn

Formules worden links uitgelijnd in plaats van gecentreerd.

leqno

Plaatst de nummering van formules aan de linkerkant in plaats van aan de rechterkant.

titlepage, notitlepage

Bepaalt of een nieuwe pagina moet starten na de titel van het document of niet. De klasse article start standaard geen nieuwe pagina, maar report en book wel.

twocolumn

Het document wordt in twee kolommen afgedrukt.

twoside, oneside

Bepaalt of een enkelzijdige of tweezijdige (recto verso) uitvoer moet worden gegenereerd. De klassen article en report zijn standaard enkelzijdig en de klasse book dubbelzijdig. Deze optie beïnvloedt alleen de stijl van het document. De optie twoside heeft niet als gevolg dat je printer effectief een tweezijdige afdruk maakt.

openright, openany

Bepaalt of hoofdstukken enkel op een rechterpagina dan wel op de eerst beschikbare pagina moeten beginnen. Dit werkt niet in de klasse article, omdat hier geen hoofdstukken voorkomen. De klasse report laat nieuwe hoofdstukken op de eerst beschikbare pagina beginnen, de klasse book op de eerst beschikbare rechterpagina. parameters. Sommige pakketten worden standaard met L^{A}TEX 2εmeegeleverd (zie tabel 1.3). Informatie over andere pakketten vind je in The L^{A}TEX Companion [3]. Het bevat beschrijvingen van honderden pakketten en informatie over hoe je zélf uitbreidingen voor L^{A}TEX 2εkan schrijven. Later in deze tekst behandelen we nog het gebruik van de pakketten babel en amsmath.

Tabel 1.3: Sommige pakketten die met L^{A}TEX worden meegeleverd.

doc Laat documentatie van L^{A}TEX toe.

Details worden beschreven in doc.dtx en in The L^{A}TEX Companion [3].

exscale Laat herschaling van verschillende wiskundige lettertypen toe. Details worden beschreven in ltexscale.dtx.

fontenc Beschrijft welke font codering (Engels: font encoding) L^{A}TEX moet gebruiken. Details worden beschreven in ltoutenc.dtx.

ifthen Laat commando’s van de vorm ‘als … dan doe … en anders doe … ’ toe. Details worden beschreven in ifthen.dtx en The L^{A}TEX Companion [3].

latexsym Laat toe het L^{A}TEX-lettertype voor symbolen te gebruiken. Details worden beschreven in latexsym.dtx en in The L^{A}TEX Companion [3].

makeidx Levert commando’s om automatisch een index te genereren. Details worden beschreven in de sectie 4.3 en in The L^{A}TEX Companion [3].

syntonly Verwerkt een document zonder uitvoer te genereren. Details worden beschreven in syntonly.dtx en in The L^{A}TEX Companion [3]. Dit is nuttig voor een snelle controle van de syntax.

inputenc Laat toe specificaties over de invoertekst aan te geven. Bijvoorbeeld: ASCII, ISO Latin-1, ISO Latin-2, 437/850 IBM code pages, Apple Macintosh, Next, ANSI-Windows. Details worden beschreven in inputenc.dtx.

1.5.3 Pagina-opmaakstijlen

L^{A}TEX ondersteunt drie vooraf gedefinieerde combinaties van header (koptekst) en footer (voettekst), de zogenaamde pagina-opmaakstijlen (Engels: page styles). De parameter stijl in het commando

 \pagestyle{stijl}

bepaalt welke stijl wordt gebruikt. Tabel 1.4 geeft een opsomming van de drie vooraf gedefinieerde pagina-opmaakstijlen.

Tabel 1.4: De vooraf gedefinieerde pagina-opmaakstijlen van L^{A}TEX.

plain drukt de paginanummering midden onderaan de pagina af. Als je geen opmaakstijl specificeert, gebruikt L^{A}TEX de stijl plain.

headings drukt de titel van het lopende hoofdstuk en de paginanummering bovenaan elke pagina. Dit is de stijl die in dit document wordt gebruikt.

empty drukt geen voettekst of koptekst af.

Het is mogelijk de opmaakstijl van één pagina te wijzigen met het commando

 \thispagestyle{stijl}

Een beschrijving van hoe je je eigen opmaakstijl kunt ontwerpen, vind je in The L^{A}TEX Companion [3] en in sectie 4.4 op pagina 66.

1.6 Bestanden die je ongetwijfeld tegenkomt

Als je met L^{A}TEX aan de slag gaat, kom je allerlei bestanden met verschillende extensies tegen. Hieronder vind je een lijstje met de belangrijkste extensies.

.tex Dit bestand bevat de invoertekst. Dat is de invoer die je zelf intypt. Deze tekst wordt later met L^{A}TEX verwerkt.

.sty Dit is een pakket. Je kunt zo’n pakket gebruiken met het commando \usepackage in de preamble van je invoertekst.

.dtx Als je dit ‘documented TEX’-bestand L^{A}TEXt, verkrijg je de documentatie bij het gelijknamige pakket.

.ins Dit is een installatiebestand dat hoort bij het gelijknamige .dtxbestand. Als je een pakket downloadt, krijg je meestal een .ins en een .dtx-bestand. Voer het .ins-bestand uit met L^{A}TEX om het .dtxbestand uit te pakken.

.cls Dit bestand bepaalt de opmaak van uw document. Je kiest het gewenste bestand met het commando \documentclass.

.dvi ‘Device Independent File’. Dit is de uitvoer van het programma L^{A}TEX. Je kunt dit bestand bekijken met een viewer of het omzetten naar een .pdf- of een .ps-bestand.

.log Dit is een logboekbestand. Het geeft een gedetailleerd overzicht van wat er precies gebeurde tijdens de verwerking van u L^{A}TEX-document.

.toc Dit bestand onthoudt de hoofdingen van hoofdstukken en secties.

Het wordt (als je het .tex-bestand een volgende keer compileert) gebruikt om de inhoudstafel te produceren.

.lof Idem als .toc, maar dan voor de lijst met figuren.

.lot Idem als .toc, maar dan voor de lijst met tabellen.

.aux Idem als .toc, maar dan voor verwijzingen binnen de tekst en andere informatie.

.idx Als je document het commando \makeindex bevat, bewaart dit bestand alle woorden die in de index terecht zullen komen.

.ind Dit is de uitvoer van het programma makeindex, dat het .idxbestand verwerkt. Dit .ind-bestand wordt in het document ingevoerd al u het .tex-bestand een volgende keer compileert.

.ilg Dit is het logboekbestand van het programma makeindex.

1.7 Grote projecten

Als je met grote documenten werkt (zeg meer dan 20 pagina’s), is het dikwijls nuttig de invoertekst over verschillende bestanden te verdelen. L^{A}TEX kent twee commando’s die hierbij nuttig kunnen zijn.

 \include{bestand}

kan worden gebruikt om in de invoertekst de inhoud van het bestand bestand in te voegen. Het tweede commando kan worden gebruikt in de preamble. Het beveelt L^{A}TEX enkel de daar vermelde bestanden in te voegen.

\includeonly{bestand1,bestand2,… }

Als dit commando voorkomt in de preamble van het document, zullen enkel de \include commando’s die betrekking hebben op de bestanden bestand1, bestand2, … worden uitgevoerd. Andere worden genegeerd. Het commando \include laat de ingevoegde tekst automatisch op een volgende bladzijde beginnen. Dit is nuttig wanneer je \includeonly gebruikt, omdat de paginascheidingen niet zullen verplaatst worden als je in te voegen bestanden tijdelijk weglaat. Soms is dit gedrag echter niet gewenst; in dat geval kun je het commando

\input{bestandsnaam}

gebruiken. Het voegt letterlijk de inhoud van het bestand in, zonder nevenwerkingen. Om L^{A}TEX snel je document te laten controleren, kun je het pakket syntonly gebruiken. Dit zorgt er voor dat L^{A}TEX je document enkel controleert op een juist gebruik van de syntax en commando’s, maar geen (DVI-)uitvoer produceert. L^{A}TEX gaat heel wat sneller in deze modus en het kan je dus heel wat tijdswinst opleveren.

\usepackage{syntonly}
\syntaxonly

Zodra je DVI-uitvoer wilt produceren, commentarieer dan gewoon de tweede regel (door een percent-teken in te voegen).

Tekstopmaak

Als je het vorige hoofdstuk hebt gelezen, dan weet je reeds uit welke basiselementen een L^{A}TEX document is opgebouwd. In dit hoofdstuk bespreken we de rest van de structuur die nodig is om een volledig L^{A}TEX-document te maken.

2.1 De structuur van tekst en taal

Iemand schrijft een tekst om ideeën, standpunten, informatie of kennis naar zijn lezer over te brengen. De lezer zal de tekst beter begrijpen wanneer deze ideeën netjes gestructureerd zijn en hij zal die structuur beter en sneller aanvoelen wanneer de tekstopmaak dezelfde logische en semantische structuur uitstraalt als de inhoud. Het verschil tussen L^{A}TEX en andere tekstverwerkers ligt precies daar: de auteur moet enkel de logische en semantische structuur van zijn tekst bepalen. L^{A}TEX beslist dan over de opmaak van de tekst, steunend op professionele regels in de documentklasse en verschillende andere stijlbestanden. De bouwsteen van een tekst in L^{A}TEX (en in de typografie in het algemeen) is de alinea. We noemen het “de bouwsteen” omdat een alinea precies die typografische eenheid is die één samenhangende gedachte bevat. Je zult in de volgende secties leren hoe je zelf een regelafbreking kunt forceren, bijvoorbeeld met \\, of een alinea kunt opsplitsen, bijvoorbeeld door een lege regel in de invoertekst tussen te voegen. Dus bij het begin van een nieuw idee, een nieuwe gedachtegang of een volgende stap in een redenering, moet een nieuwe alinea beginnen. De meeste mensen onderschatten het belang van weloverwogen alinea’s. Veel auteurs kennen niet eens de betekenis van een alinea, of — in het bijzonder in L^{A}TEX — beginnen nieuwe alinea’s zonder zich dat te realiseren. Men maakt deze fout opmerkelijk snel als er formules in de tekst voorkomen. Bekijk de volgende voorbeelden en probeer in te zien waarom soms wel lege regels voor of na een formule werden tussengevoegd, en dan weer niet. (Je kent nog niet alle commando’s in de voorbeelden, maar dat komt wel.)

% Voorbeeld 1
Het was Einstein die de wereld verbaasde met
\begin{equation}
  e = m \cdot c^2,
\end{equation}
wat de meest bekende en tegelijk de minst
begrepen fysische formule is.

% Voorbeeld 2
\ldots waaruit de eerste wet van Kirchoff volgt:
\begin{equation}
  \sum_{k=1}^{n} I_k = 0.
\end{equation}
De tweede wet van Kirchoff kan men afleiden \ldots

% Voorbeeld 3
\ldots wat bewezen moest worden.
\begin{equation}
  (a+b)^2 = a^2 + b^2
\end{equation}
is een wijdverspreide misvatting \ldots

Een alinea is verder onderverdeeld in zinnen. L^{A}TEX voegt een iets grotere witruimte in na een punt dat het einde van een zin aanduidt, dan na een punt van een afkorting. L^{A}TEX tracht zelf te bepalen welk van de twee gevallen van toepassing is. Als L^{A}TEX zich vergist, moet je zelf aangeven wat je verwacht; dit bespreken we verder in dit hoofdstuk. Tenslotte moeten alinea’s logisch gestructureerd worden in hoofdstukken, secties, subsecties enzovoort. De lezer begrijpt onmiddellijk het effect van

een commando zoals \section{De structuur van tekst en taal}.

2.2 Afbreken van regels en pagina’s

2.2.1 Uitgelijnde alinea’s

In de meeste boeken zijn alle regels even lang. L^{A}TEX breekt zelf de regels af en past de witruimte tussen de woorden aan. Indien nodig worden woorden gesplitst. De precieze opmaak van een alinea hangt af van de documentklasse. Meestal springt de eerste regel van een alinea een beetje in en is er geen extra witruimte tussen twee alinea’s. Meer details vind je in sectie 5.3.2. Alinea’s worden in de invoertekst van elkaar gescheiden door een lege lijn. In speciale gevallen wil je L^{A}TEX misschien verplichten een regel af te breken:

 \\ of \newline

start een nieuwe regel, zonder een nieuwe alinea te beginnen.

 \\*

doet hetzelfde als het vorige commando, maar laat niet toe dat de nieuwe regel bovenaan de volgende pagina begint.

 \newpage

start een nieuwe pagina.

 \linebreak[n], \nolinebreak[n], \pagebreak[n] en \nopagebreak[n]

doen wat hun commandonaam doet vermoeden. Het optionele argument n kan een waarde aannemen van 0 tot 4. Als je n een waarde kleiner dan 4 geeft, kan L^{A}TEX je commando eventueel negeren als het resultaat er slecht zou uitzien. Merk het verschil op tussen de “break”-commando’s en de “new”- commando’s. Als je een “break”-commando ingeeft, zal L^{A}TEX nog steeds proberen de tekst langs twee kanten uit te lijnen en de paginalengte te behouden. De “new”-commando’s beginnen een nieuwe regel of pagina en laten de rest van de lopende regel of pagina gewoon leeg. L^{A}TEX tracht steeds de optimale regelafbreking te vinden. Als L^{A}TEX geen goede plaats vindt die voldoet aan de hoge L^{A}TEX-norm om een regel af te breken, dan laat L^{A}TEX die regel rechts uit de alinea steken en geeft een waarschuwing (“overfull hbox”) tijdens de verwerking van het invoerbestand.

Dit kan bijvoorbeeld gebeuren als L^{A}TEX een woord niet kan splitsen.^{1} Je kunt L^{A}TEX ook vragen een minder goede kwaliteit na te streven met het commando \sloppy. Woorden die niet meer op een regel passen, gaan dan sowieso naar de volgende regel, en alle regels worden uitgelijnd door de witruimte tussen de woorden te vergroten — zelfs al is het resultaat niet optimaal. L^{A}TEX geeft in dat geval ook een waarschuwing (“underfull hbox”). Meestal leidt dit niet tot mooie resultaten. Het commando \fussy herstelt het normale gedrag van L^{A}TEX.

2.2.2 Woordsplitsing

L^{A}TEX splitst woorden indien dit nodig is. Als L^{A}TEX de correcte splitsing niet kent, dan kun je de volgende commando’s gebruiken om een juiste splitsing te bekomen. Het commando

 \hyphenation{woordenlijst}

zorgt ervoor dat de woorden, opgesomd in de woordenlijst, enkel zullen worden gesplitst op de plaatsen aangeduid met een liggend streepje “-”. Dit commando hoort thuis in de preamble en de woordenlijst mag enkel woorden bevatten die uit gewone letters bestaan. Er wordt geen onderscheid gemaakt tussen hoofd- en kleine letters. Het voorbeeld hieronder leert L^{A}TEX hoe de woorden “wiskunde”, “Wiskunde” of “WISKUNDE” moeten worden gesplitst en dat dat met de woorden “fortran”, “Fortran” of “FORTRAN” niet mag gebeuren. Voorbeeld:

     \hyphenation{FORTRAN wis-kun-de}

Het commando \- duidt eenmalig een mogelijke plaats aan om te splitsen in een woord. Onmiddellijk is dit ook de enige plaats waar dat woord mag worden gesplitst. Dit commando is erg handig als je woorden wilt splitsen die accenten of andere speciale karakters bevatten, omdat L^{A}TEX dergelijke woorden nooit automatisch splitst.

Ik ben een echte elementaire\-%
deeltjes\-fysica\-fanaat

Ik ben een echte elementairedeeltjesfysicafanaat 1Hoewel L^{A}TEX een waarschuwing geeft wanneer dit gebeurt (overfull hbox), is het niet altijd gemakkelijk om in een oogopslag de regel te vinden waarin het probleem zich voordoet. Als je de optie draft gebruikt in het \documentclass-commando, dan worden deze regels aangeduid met een dikke zwarte lijn in de rechterkantlijn.

Bij een aantal uitzonderingen verandert de woordafbreking enkele letters in het woord. Om dit aan te geven bestaat er het commando

 \discretionary{kop-}{staart}{kopstaart}

waarin kop- en staart de gesplitste, en kopstaart de ongesplitste vorm weergeven.

Kunnen we dit bespreken
bij het kerst\-\discretionary%
{diner-}{tje}{dineetje}?

Kunnen we dit bespreken bij het kerstdinertje?

Opeenvolgende woorden die niet gescheiden mogen worden, kun je op één regel samenhouden met het commando

 \mbox{tekst}

Het zorgt ervoor dat de tekst tekst onder alle omstandigheden samen blijft.

Mijn bankrekeningnummer
\mbox{320 01294125 21}
houd ik liefst geheim.
De parameter
\mbox{\emph{bestand}} moet
de naam van het bestand bevatten.

Mijn bankrekeningnummer 320 01294125 21 houd ik liefst geheim.

De parameter bestandmoet de naam van het bestand bevatten.

Je kunt ook een kader tekenen rond een groep woorden. Hiervoor gebruik je dan \fbox i.p.v. \mbox.

2.3 Kant-en-klare uitdrukkingen

In sommige voorbeelden hebben we eenvoudige L^{A}TEX-commando’s gebruikt om soms ingewikkelde woorden te laten zien.

commando voorbeeld  omschrijving
\today  17 april 2003 vandaag, in de huidige taal
\TeX  TEX  de naam van je favoriete “tekstverwerker”
\LaTeX  L^{A}TEX  The name of the Game
\LaTeXe  L^{A}TEX 2ε  de huidige versie van L^{A}TEX

2.4 Speciale karakters en symbolen

2.4.1 Aanhalingstekens

Gebruik nooit het symbool " als aanhalingsteken zoals op een typemachine. In moderne gedrukte teksten wordt een onderscheid gemaakt tussen de symbolen voor het openen en het sluiten van de aanhalingstekens. In L^{A}TEX gebruik je twee `-en (het Franse accent grave) voor het openen van de aanhalingstekens en twee '-en (het enkelvoudig aanhalingsteken) om de aanhalingstekens te sluiten. Voor enkele aanhalingstekens gebruik je slechts één van elk.

``Klik `Start' om te beginnen.''

“Klik ‘Start’ om te beginnen.”

2.4.2 Liggende streepjes

L^{A}TEX gebruikt vier varianten van het liggend streepje. Drie ervan kun je bekomen door een verschillend aantal opeenvolgende streepjes. De vierde, het minteken uit de wiskundige modus, is eigenlijk geen liggend streepje:

$\epsilon$-$\delta$-definitie \\
bladzijden 13--67\\
ja --- of is het nee? \\
de nulpunten zijn $\pi$ en $-\pi$

ϵ-δ-definitie bladzijden 13–67 ja — of is het nee? de nulpunten zijn π en −π

Het kortste liggend streepje - noemt men koppelteken, het iets langere streepje – heet en-dash en het langste streepje — noemt men em-dash.

2.4.3 Tilde (∼)

De tilde is een karakter dat wel eens gebruikt wordt in website-adressen. Je kan het commando \~ gebruiken, maar $\sim$ geeft een mooier resultaat.

http://www.kmi.be/\~{}deboosere \\ http://www.kmi.be/$\sim$deboosere

http://www.kmi.be/˜ deboosere http://www.kmi.be/∼deboosere

2.4.4 Graden (^{∘})

Hoe kun je het symbool voor graden invoeren in L^{A}TEX?

   Het is $-30\ ^\circ$C!               Het is −30^{∘}C!

2.4.5 Beletselteken ( …)

Op een typemachine nemen een komma en een punt evenveel plaats in als elke andere letter. In moderne gedrukte teksten beslaan deze karakters een kleinere ruimte en worden ze dichter tegen de voorgaande letter geplaatst. Daarom kan je geen beletselteken invoegen door drie puntjes na elkaar in te typen. Er is een speciaal commando voor deze drie puntjes:

 \ldots

Niet zo ... maar zo \ldots

Niet zo ... maar zo …

2.4.6 Ligaturen

Sommige combinaties van letters worden niet afgedrukt door de verschillende letters gewoon naast elkaar af te drukken, maar door gebruik te maken van speciale symbolen.

ff fi fl ffi … in plaats van ff fi fl ffi …

Deze zogenaamde ligatuur kun je tegengegaan door een \mbox{} tussen de betrokken letters te plaatsen. Dit is bijvoorbeeld aan te raden bij bepaalde samenstellingen.

niet surffanaat,\\
maar surf\mbox{}fanaat

niet surffanaat, maar surffanaat

2.4.7 Accenten en speciale karakters

L^{A}TEX ondersteunt het gebruik van accenten en speciale karakters uit verschillende talen. Tabel 2.1 illustreert de verschillende accenten die kunnen voorkomen boven de letter o. Vanzelfsprekend werken dezelfde commando’s ook met andere letters. Als men een accent boven een i of een j wil plaatsen, moet het puntje worden verwijderd. Dit doet men met \i en \j.

H\^otel, na\"\i ve, \'el\`eve,\\
sm{\o}rrebr{\o}d, !`Se\~norita!,\\
Sch{\"o}nbrunner Schlo\ss{}
Stra\ss e

Hôtel, naïve, élève, smørrebrød, ¡Señorita!, Schönbrunner Schloß Straße

Tabel 2.1: Accenten en speciale karakters.

        ò \`o  ó \'o  ô \^o  õ \~o
        ō \=o  ȯ \.o  ö \"o     ç \c c
        ŏ \u o ǒ \v o ő \H o    o̧ \c o
        o. \d o   ō \b o oo \t oo
        œ \oe  Œ \OE  æ \ae  Æ \AE
        å \aa  Å \AA
        ø \o  Ø \O  � \l  � \L
        ı \i         \j  ¡ !`  ¿ ?`

2.5 Niet-Engelstalige teksten

Als je een document in het Nederlands (of in een andere taal die niet het Engels^{2} is) opstelt, dan moet je L^{A}TEX op twee manieren aanpassen:

1. alle automatisch gegenereerde teksten^{3} moeten worden aangepast naar de gewenste taal. Deze wijzigingen kan men bijvoorbeeld uitvoeren met het babel pakket;

2. L^{A}TEX moet de splitsingsregels voor de nieuwe taal gebruiken.

2Amerikaans Engels is default, UK Engels verwacht ook babel.

3Hoofdstuk, Lijst van figuren, ….

Als de nodige instellingen werden aangebracht, kun je het babel pakket activeren met het commando

 \usepackage[taal]{babel}

achter het \documentclass-commando. In sommige talen zal babel ook de invoer van sommige commando’s aanpassen. In het Duits bijvoorbeeld, waar veel umlauten voorkomen (äöü), kan men een ö invoeren als "o in plaats van {\"o}. Voor het Nederlands (taal = dutch) geldt dit ook. Als je deze kortere notatie gebruikt, zal L^{A}TEX ook automatisch rekening houden met het wegvallen van het trema bij woordsplitsing. Sommige computersystemen laten toe speciale karakters rechtstreeks via het toetsenbord in te voeren. L^{A}TEX begrijpt het leeuwendeel van deze karakters, maar niet allemaal. Raadpleeg het inputenc pakket voor details. Als je dit pakket gebruikt, moet je je ervan bewust zijn dat niet iedereen je invoerbestand op zijn computer zal kunnen lezen, omdat niet alle computersystemen dezelfde codering gebruiken. Bijvoorbeeld, de Duitse umlaut ä wordt op een PC gecodeerd als 132, terwijl sommige UNIX-systemen die gebruik maken van ISO-LATIN 1 hetzelfde symbool coderen als 228. Wees daarom voorzichtig met deze voorziening. De volgende coderingen kunnen, afhankelijk van het systeemtype waarop je werkt, van pas komen:

besturingssysteem codering

                  Mac  applemac
                  Unix  latin1
                  Windows  ansinew
                  OS/2  cp850

De codering van het font is een heel ander probleem. Deze legt vast op welke positie in het TEX-font elke letter wordt bewaard. Het originele Computer Modern TEX-font gebruikt enkel de 128 karakters uit de verouderde 7-bit ASCII-karakterset. Als accenten worden gebruikt, combineert TEX gewone letters met accenten. Hoewel het resultaat er perfect uitziet, wordt het splitsen van woorden die accenten bevatten hierdoor onmogelijk. Gelukkig bevatten de meeste moderne TEX-versies een kopie van de zogenaamde EC-fonts. Deze fonts zien er precies hetzelfde uit als de Computer Modern fonts, maar ze bevatten speciale karakters voor letters met accenten uit de meeste Europese talen. Men kan de EC-fonts activeren door het fontenc pakket in te lezen in de preamble van het document.

\usepackage[T1]{fontenc}

2.6 Witruimte tussen woorden

Om de tekst zowel links als rechts uit te lijnen, gebruikt L^{A}TEX een variabele hoeveelheid witruimte tussen de woorden. Er wordt iets meer witruimte ingevoegd na het einde van een zin, omdat dit de tekst gemakkelijker leesbaar maakt. L^{A}TEX veronderstelt dat zinnen eindigen met een punt, een vraagteken of een uitroepteken. Als een punt achter een hoofdletter staat, zal L^{A}TEX dit punt niet interpreteren als het einde van een zin, omdat punten achter hoofdletters meestal voorkomen in een afkorting. Elke uitzondering op deze algemene regel moet door de auteur worden gespecificeerd. Een backslash (\) vóór een spatie creëert een spatie die nooit zal worden vergroot. Een tilde (~) creëert een spatie die niet zal worden uitgerekt en die bovendien het afbreken van de regel verhindert. Het commando \@ vóór een punt betekent dat dat punt het einde van een zin aanduidt, zelfs als dat punt op een hoofdletter volgt.

dhr.~Janssens\\
cfr.\ fig.~5\\
Ik hou van BASIC\@. En jij?

dhr. Janssens cfr. fig. 5 Ik hou van BASIC. En jij?

Men heft de extra witruimte na een punt op met het commando

 \frenchspacing

dat L^{A}TEX duidelijk maakt om niet meer witruimte achter een punt in te voegen dan achter gelijk welk ander karakter. Dit is gebruikelijk in heel wat niet-Engelse talen, behalve in bibliografieën. Als je \frenchspacing gebruikt, is het commando \@ overbodig.

2.7 Titels, hoofdstukken en secties

Om de lezer de weg te wijzen doorheen je document, moet je het indelen in hoofdstukken, secties en subsecties. L^{A}TEX ondersteunt dit met speciale commando’s. De gewenste titel van het hoofdstuk of de (sub)sectie geef je mee als argument van het commando. Je moet deze commando’s zelf in de goede volgorde gebruiken. Volgende commando’s zijn beschikbaar in de documentklasse article:

     \section{...}           \paragraph{...}
     \subsection{...}        \subparagraph{...}
     \subsubsection{...}     \appendix

De klassen report en book laten nog twee andere commando’s toe:

     \part{...}              \chapter{...}

L^{A}TEX regelt zelf de witruimte tussen secties, de nummering en de lettergrootte van de titels. Twee commando’s verschillen een beetje van de rest:

• het commando \part heeft geen invloed op de nummering van de hoofdstukken. Als hoofdstukken 1, 2 en 3 samen het eerste deel vormen, krijgt het eerste hoofdstuk uit het tweede deel het nummer 4;

• het commando \appendix zorgt ervoor dat de nummering van de volgende hoofdstukken met letters gebeurt in plaats van met cijfers.^{4}

L^{A}TEX kan een inhoudstafel creëren waarin de titels van alle hoofdstukken en secties voorkomen. Met het commando

 \tableofcontents

maak je een inhoudstafel. Een document moet twee (en soms drie) keer worden verwerkt alvorens een correcte inhoudstafel ontstaat. Alle commando’s die hierboven zijn opgesomd, kunnen ook worden gevolgd door een sterretje * achter de commandonaam. Het resultaat is een ongenummerde koptekst die bovendien niet voorkomt in de inhoudstafel. Onder normale omstandigheden komt in de inhoudstafel precies dezelfde koptekst als in het document. Soms is dit niet mogelijk, omdat de koptekst bijvoorbeeld te lang is. Een verkorte titel die enkel in de inhoudstafel of de hoofding wordt gebruikt, kan daarom worden gespecificeerd als optioneel argument (tussen vierkante haakjes) vóór de eigenlijke koptekst.

     \chapter[Lees dit!!]{Dit is een lange
                      en enorm saaie titel}

De titel van het document kan worden ingevoegd met het commando

 \maketitle

De precieze titelgegevens moeten worden gespecificeerd met de commando’s

 \title{...}, \author{...} en eventueel \date{...}

vóór het \maketitle-commando. In het argument van \author kun je verschillende namen invoegen, gescheiden door \and-commando’s.

4In de klasse article gebeurt hetzelfde, maar met de nummering van de secties.

Een voorbeeld van enkele commando’s vind je in figuur 1.3 op pagina 9. Los van de commando’s die hierboven staan beschreven^{5}, heeft L^{A}TEX 2ε drie nieuwe commando’s geïntroduceerd die kunnen worden gebruikt in de documentklasse book.

 \frontmatter, \mainmatter en \backmatter

Deze commando’s beïnvloeden de koptekst van hoofdstukken en de paginanummering, zoals dat in de meeste boeken gebeurt. Zo krijgen de pagina’s van de \frontmatter bijvoorbeeld nummers in kleine Romeinse cijfers.

2.8 Verwijzingen

In boeken, rapporten en artikels gebruikt men regelmatig verwijzingen naar figuren, tabellen of andere hoofdstukken. L^{A}TEX voorziet de volgende commando’s voor verwijzingen binnen het document.

 \label{marker}, \ref{marker} en \pageref{marker}

waarin marker een eenduidig en door de auteur zelf bepaald woord is. L^{A}TEX vervangt \ref door het nummer van de sectie, subsectie, figuur, tabel of stelling waar zich het overeenkomstige \label-commando bevindt.^{6}

Een verwijzing naar deze sectie
\label{sec:this} is bijvoorbeeld:
``zie sectie~\ref{sec:this} op
bladzijde~\pageref{sec:this}''.

Een verwijzing naar deze sectie is bijvoorbeeld: “zie sectie 2.8 op bladzijde 28”.

2.9 Voetnoten

Met het commando

\footnote{voetnoot tekst}

wordt een voetnoot afgedrukt onderaan de lopende pagina. Voetnoten worden altijd vermeld onmiddellijk^{7} na het woord of de zin waarnaar ze verwijzen.^{8}

5Met uitzondering van het commando \tableofcontents.

6Onthoud dat deze commando’s zich niet bewust zijn waar ze precies naar verwijzen.

\label bewaart enkel het laatst automatisch gegenereerde nummer.

7“Onmiddellijk” wordt gespeld met twee d’s en twee l’en.

Voetnoten\footnote{Dit is
een voetnoot.} zijn populair
bij \LaTeX{}-gebruikers.

Voetnoten^{a} zijn populair bij L^{A}TEXgebruikers.

aDit is een voetnoot.

2.10 Benadrukte woorden

Als een tekst wordt getypt dan krijgen belangrijke woorden meer na-
druk door ze te \underline{onderstrepen} met het commando

 \underline{text}

In drukwerk worden ze daarentegen cursief gedrukt. L^{A}TEX gebruikt het commando

 \emph{tekst}

om tekst te benadrukken. Wat het commando precies doet, hangt af van de context.

\emph{Als je binnen een
 cursieve tekst een woord
 wilt benadrukken, dan
 gebruikt \LaTeX{} het
 \emph{gewone} font.}

Er is dus een onderscheid tussen het commando om iets te benadrukken en om een ander font te gebruiken.

Als je binnen een cursieve tekst een woord wilt benadrukken, dan gebruikt L^{A}TEX het gewone font.

8Het is de gewoonte om een voetnoot die betrekking heeft op een hele zin achter het punt te zetten.

\textit{Je kunt ook iets
\emph{benadrukken} als
de tekst cursief is}
\textsf{of in
\emph{sans-serif} stijl}
\texttt{of in
\emph{typemachine} stijl.}\\
\textbf{Heb je dat
\emph{goed} begrepen?}

Je kunt ook iets benadrukken als de tekst cursief is of in sans-serif stijl of in typemachine

                             stijl.

Heb je dat goed begrepen?

2.11 Omgevingen

Om stukken tekst met een speciale betekenis te kunnen verwerken, kent L^{A}TEX verschillende omgevingen die allen een andere opmaak veroorzaken.

\begin{omgevingsnaam} tekst \end{omgevingsnaam}

creëert een omgeving met de naam omgevingsnaam. Een omgeving kan ook binnen een andere omgeving voorkomen

     \begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa}

In de volgende secties sommen we de belangrijkste omgevingen op.

2.11.1 Lijstjes: itemize, enumerate en description

De omgeving itemize is geschikt voor eenvoudige opsommingen, de omgeving enumerate creëert een genummerde lijst en de omgeving description een lijst waarbij je aan elk element zélf een etiket kunt toekennen.

2.11 Omgevingen  31

\begin{enumerate}
\item Je kunt allerlei
omgevingen mengen.
\begin{itemize}
\item Maar het zal
nergens op gelijken
\item[-] Of wel soms?
\end{itemize}
\item Onthoud daarom:
\begin{description}
\item[dom] de dingen
worden niet intelligenter omdat
ze in een lijst staan.
\item[slim] de dingen
kunnen wel mooi worden
voorgesteld in een lijst.
\end{description}
\end{enumerate}

1. Je kunt allerlei omgevingen mengen.

• Maar het zal nergens op gelijken

- Of wel soms?

2. Onthoud daarom:

dom de dingen worden niet intelligenter omdat ze in een lijst staan.

slim de dingen kunnen wel mooi worden voorgesteld in een lijst.

2.11.2 Uitlijnen

De omgevingen flushleft en flushright genereren alinea’s die ofwel links ofwel rechts!uitgelijnd (gealigneerd) zijn. De omgeving center genereert een gecentreerde tekst.

\begin{flushleft}
Deze tekst is\\ links uitgelijnd.
\LaTeX{} probeert niet om ook
rechts uit te lijnen.
\end{flushleft}

Deze tekst is

links uitgelijnd. L^{A}TEX probeert niet om ook rechts uit te lijnen.

\begin{flushright}
Deze tekst is rechts \\uitgelijnd.
\LaTeX{} probeert niet om ook
links uit te lijnen.
\end{flushright}

Deze tekst is rechts

uitgelijnd. L^{A}TEX probeert niet om ook links uit te lijnen.

\begin{center}
In het middelpunt\\
van de belangstelling \ldots
\end{center}

In het middelpunt van de belangstelling …

32  Tekstopmaak

2.11.3 Citaten

De omgeving quote kan worden gebruikt voor citaten, gevleugelde uitspraken, belangrijke slogans en voorbeelden.

Een typografische vuistregel
is dat
\begin{quote}
een regel gemiddeld nooit meer dan
66~karakters mag bevatten.
Daarom hebben \LaTeX{}-documenten
zulke brede marges.
\end{quote}
En daarom worden kranten in
meerdere kolommen afgedrukt.

Een typografische vuistregel is dat

een regel gemiddeld nooit meer dan 66 karakters mag bevatten. Daarom hebben L^{A}TEXdocumenten zulke brede marges.

En daarom worden kranten in meerdere kolommen afgedrukt.

Er bestaan twee gelijkaardige omgevingen: de quotation- en de verseomgeving. De quotation-omgeving is nuttig voor langere citaten die uit verschillende alinea’s bestaan. Binnen deze omgeving springt elke alinea een beetje in. De verse-omgeving is nuttig voor poëzie, waar de correcte afbreking van regels belangrijk is. Het einde van een regel moet worden aangegeven met een \\-commando en tussen twee strofen komt telkens een lege regel.

Ik ken slechts \'e\'en gedicht
uit het hoofd. Het gaat over Jantje.
\begin{flushleft}
\begin{verse}
Jantje zag eens pruimen hangen\\
o als eieren zo groot\\
Jantje wilde ze gaan plukken\\
terwijl zijn vader 't hem verbood.
\end{verse}
\end{flushleft}

Ik ken slechts één gedicht uit het hoofd. Het gaat over Jantje.

Jantje zag eens pruimen hangen o als eieren zo groot Jantje wilde ze gaan plukken terwijl zijn vader ’t hem

verbood.

2.11.4 Verbatim

Tekst die tussen \begin{verbatim} en \end{verbatim} wordt geschreven, wordt letterlijk afgedrukt, inclusief regelafbrekingen en spaties, zonder dat enig L^{A}TEX-commando wordt uitgevoerd.

Binnen een alinea bereik je hetzelfde met het commando

 \verb|tekst|

Het hier gebruikte |-karakter is maar één voorbeeld van een afbakeningsteken. Je kunt elk ander karakter gebruiken, behalve letters, * of een spatie. Verschillende L^{A}TEX-voorbeelden in dit document zijn op deze wijze gemaakt.

Het \verb|\ldots|-commando \ldots
\begin{verbatim}
10 PRINT "HALLO WERELD ";
20 GOTO 10
\end{verbatim}

Het \ldots-commando …

                                        10 PRINT "HALLO WERELD ";
                                        20 GOTO 10

\begin{verbatim*}
de verbatim omgeving met
een            sterretje
benadrukt   de   spaties
in de tekst.
\end{verbatim*}

                                        de␣verbatim␣omgeving␣met
                                        een␣␣␣␣␣␣␣␣␣␣␣␣sterretje
                                        benadrukt␣␣␣de␣␣␣spaties
                                        in␣de␣tekst.

Het commando \verb kan op analoge manier met een sterretje worden gebruikt:

\verb*|zoals     hier:-) |

                                        zoals␣␣␣␣␣hier:-)␣

De verbatim-omgeving en het \verb-commando mogen niet binnen de argumenten van andere commando’s worden gebruikt.

2.11.5 Tabellen

De tabular-omgeving laat toe om tabellen met optionele horizontale en verticale lijnen te creëren. L^{A}TEX bepaalt, tenzij anders aangegeven, automatisch de breedte van de kolommen. De specificaties in het commando

bepalen de opmaak van de tabel. Gebruik l voor een links uitgelijnde kolom, r voor een rechts uitgelijnde kolom en c voor een te centreren kolom, p{breedte} voor een kolom met een zelfgekozen breedte waarin binnen één rij verschillende regels kunnen voorkomen en | voor een verticale lijn. Binnen de tabular-omgeving worden kolommen gescheiden door & en de rijen door \\. Het commando \hline levert een horizontale lijn. Je kunt gedeeltelijke horizontale lijnen trekken met \cline{i-j} waarin i en j de kolomnummers zijn waarover de lijn zich moet uitstrekken.

\begin{tabular}{specificaties}

\begin{tabular}{|r|l|}
\hline
7C0 & hexadecimaal \\
3700 & octaal \\
11111000000 & binair \\
\hline \hline
1984 & decimaal \\
\hline
\end{tabular}

7C0 hexadecimaal
3700 octaal
11111000000 binair
1984 decimaal

\begin{tabular}{|p{4.7cm}|}
\hline
Welkom op onze workshop.
Wij hopen dat je een leerzame en
boeiende avond beleeft.\\
\hline
\end{tabular}

Welkom op onze workshop. Wij hopen dat je een leerzame en boeiende avond beleeft.

De spatie tussen kolommen kan je opgeven met @{...}. Dit commando verwijdert de standaardspatie tussen twee kolommen en vervangt ze door wat er tussen de accolades staat vermeld. Een interessante toepassing hiervan is het uitlijnen van decimale getallen ten opzichte van het decimaal punt.

\begin{tabular}{@{} l @{}}
\hline
geen witruimte vooraf\\
\hline
\end{tabular}

\begin{tabular}{l}
\hline
wel witruimte links en rechts\\
\hline
\end{tabular}

geen witruimte vooraf wel witruimte links en rechts

\begin{tabular}{c r @{.} l}
Formule       &
\multicolumn{2}{c}{Waarde} \\
\hline
$\pi$               & 3&1416  \\
$\pi^{\pi}$         & 36&46   \\
$(\pi^{\pi})^{\pi}$ & 80662&7 \\
\end{tabular}

Formule Waarde
π  3.1416
π^{π}  36.46
(π^{π})^{π}  80662.7

Twee of meer kolommen kunnen worden samengevoegd met het comman-

do \multicolumn.

\begin{tabular}{|c|c|c|} \hline
\multicolumn{3}{|c|}{Belgisch leger}
\\ \hline
landmacht & luchtmacht & marine
\\ \hline
\end{tabular}

Belgisch leger

landmacht luchtmacht marine

Materiaal binnen dezelfde tabular-omgeving blijft steeds samen op dezelfde pagina. Als je lange tabellen wilt opmaken, kijk dan eens naar de supertabular- en longtabular-omgevingen.

2.12 Vlottende objecten: figuren en tabellen

Moderne publicaties bevatten dikwijls veel figuren en tabellen. Zulke dingen vereisen een aparte behandeling omdat ze op één pagina moeten worden samengehouden. Een mogelijke aanpak is een nieuwe bladzijde te beginnen bij elke figuur die te groot is om op de huidige bladzijde te passen. Op die manier zouden sommige bladzijden gedeeltelijk blanco blijven, wat niet mooi oogt. Dit kan worden opgevangen door figuren en tabellen op een volgende pagina te laten “vlotten” en de ruimte op de huidige pagina op te vullen met gewone tekst. L^{A}TEX ondersteunt twee omgevingen om dit te bereiken: een voor tabellen en een voor figuren. Om zinvol en zonder frustraties van deze omgevingen gebruik te maken, moet je weten hoe L^{A}TEX de figuren en tabellen intern verwerkt: L^{A}TEX plaatst ze nooit waar je ze verwacht.

Alle gegevens binnen een figure- of table-omgeving worden verondersteld naar een optimale plaats in de tekst te mogen worden verplaatst. Beide omgevingen ondersteunen een optionele parameter

\begin{figure}[plaatsspecificatie] of \begin{table}[plaatsspecificatie]

die de plaatsspecificatie wordt genoemd. Deze parameter maakt L^{A}TEX duidelijk naar waar de figuur of tabel mag worden verplaatst. De plaatsspecificatie bestaat uit een aantal letters die worden verklaard in tabel 2.2.

Tabel 2.2: Plaatsspecificatie voor vlottende objecten.

spec. laat toe te verplaatsen naar …

h hier op de plaats waar de tabel of figuur wordt gedefinieerd.

Dit is vooral nuttig voor zeer kleine tabellen.

t bovenaan een pagina
b onderaan een pagina
p op een speciale pagina die alleen tabellen en figuren bevat.
! zonder rekening te houden met andere parameters.^{a}

azoals het maximaal aantal tabellen en figuren per pagina.

Een tabel kan bijvoorbeeld beginnen met het commando

     \begin{table}[!hbp]

De plaatsspecificatie [!hbp] laat L^{A}TEX toe de tabel hier (h) of onderaan (b) een of andere pagina of op een speciaal voorziene pagina (p) te plaatsen, zelfs als het resultaat niet erg fraai is (!). Als geen plaatsspecificatie wordt opgegeven, dan gebruikt L^{A}TEX de standaardspecificatie [tbp]. L^{A}TEX plaatst elke tabel of figuur volgens de plaatsspecificatie die de auteur opgeeft. Als een tabel of figuur niet kan worden geplaatst op de huidige pagina, wordt die in een wachtrij gezet. Bij het begin van een nieuwe pagina, controleert L^{A}TEX telkens of er zich nog een figuur of tabel in de wachtrij bevindt. L^{A}TEX respecteert de volgorde waarin de figuren of tabellen werden ingevoerd.

Als L^{A}TEX de figuren niet plaatst zoals je had gehoopt, dan is hiervoor vaak één figuur verantwoordelijk die een opstopping veroorzaakt in één van de wachtrijen.

Nu we de werking van de table- en figure-omgevingen hebben besproken, kunnen we iets vertellen over hun gebruik.

Met het commando

\caption{beschrijving}

kun je een korte beschrijving toevoegen aan de figuur of tabel. Een nummer en het woord “Figure” of “Table” worden automatisch door L^{A}TEX gegenereerd. Het pakket babel zorgt voor vertalingen van deze woorden: “Figuur” of “Tabel” bekom je bijvoorbeeld met \usepackage[dutch]{babel}. De twee commando’s

 \listoffigures en \listoftables

werken net als het \tableofcontents-commando en drukken een lijst van alle figuren of tabellen af. In deze lijst wordt de hele beschrijving gekopieerd. Als je lange beschrijvingen gebruikt, kun je facultatief een kortere versie tussen vierkante haken toevoegen:

     \caption[Kort]{LLLLLaaaaaannnnnggggg}

Met \label en \ref kun je vanuit de tekst verwijzen naar een figuur of tabel. Het volgende voorbeeld tekent een vierkant en voegt het toe aan het document. Je kunt dit gebruiken als je ruimte wilt voorbehouden voor een plaatje dat je later in het document wilt kleven.

     Figuur~\ref{white} is een voorbeeld van Pop-Art.
     \begin{figure}[!hbp]
     \makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}}
     \caption{Vijf op vijf centimeter\label{white}.}
     \end{figure}

In bovenstaand voorbeeld zal L^{A}TEX zijn uiterste (!) best doen om de figuur onmiddellijk in te voegen (h).^{9} Als dat niet mogelijk is, tracht L^{A}TEX de figuur onderaan de bladzijde in te voegen (b). Als ook dat niet lukt, zal L^{A}TEX uitmaken of het zinvol is een aparte pagina met de figuur en eventueel enkele tabellen uit te tabellenwachtrij aan te maken. Als dit ten slotte ook niet lukt, dan begint L^{A}TEX een nieuwe pagina tekst en behandelt de figuur alsof die net werd ingevoerd.

9In de veronderstelling dat de wachtrij voor figuren leeg is.

In bepaalde gevallen is het nodig het commando

 \clearpage of zelfs \cleardoublepage

te gebruiken. L^{A}TEX verwerkt dan alle tabellen en figuren uit de wachtrijen onmiddellijk en begint een nieuwe pagina. L^{A}TEX begint een nieuwe rech-

terpagina met \cleardoublepage.

Hoe je afbeeldingen in je L^{A}TEX 2εdocument kunt invoegen, leer je later in deze inleiding.

2.13 Breekbare (fragile) commando’s beschermen

Tekst opgegeven als argument van commando’s zoals \caption of \section kunnen meerdere keren voorkomen in het document, b.v. in de inhoudstafel en in de lopende tekst. Sommige commando’s veroorzaken een fout als ze binnen het argument van een \section-achtig commando worden gebruikt. Deze worden breekbaar of fragile genoemd. Breekbare commando’s zijn b.v. \footnote of \phantom. Ze vragen bescherming om te kunnen werken: dat kan door er het \protect-commando vlak vóór te plaatsen. \protect verwijst enkel naar het commando dat er onmiddellijk op volgt, zelfs niet naar zijn argumenten. In de meeste gevallen kan een \protect teveel geen kwaad.

     \section{Ik ben galant
           \protect\footnote{en bescherm mijn voetnoten}}

Het zetten van wiskundige formules

Nu ben je er klaar voor! In dit hoofdstuk gaan we de belangrijkste sterkte van TEX aanpakken: het zetten van wiskundige formules. We verwittigen je wel op voorhand: dit hoofdstuk raakt slechts het topje van de ijsberg. Normaal gezien zijn de technieken die we hier uitleggen voldoende voor de meeste gebruikers. Als je hier echter geen oplossing vindt voor jouw specifiek wiskundig zet-probleem, panikeer dan niet. Je hebt een enorm hoge kans dat je probleem reeds opgelost is in AMS-L^{A}TEX^{1} of in een of ander pakket.

3.1 Algemene bemerkingen

L^{A}TEX heeft een speciale mode voor het zetten van wiskunde. Mathematische tekst in een paragraaf wordt ingevoerd tussen \( en \), tussen $ en $

of tussen \begin{math} en \end{math}.

Tel $a$ kwadraat en $b$ kwadraat
samen om $c$ kwadraat te bekomen.
Of, om een meer
wiskundige aanpak te gebruiken:
$c^{2}=a^{2}+b^{2}$.

Tel a kwadraat en b kwadraat samen om c kwadraat te bekomen. Of, om een meer wiskundige aanpak te gebruiken: c^{2} = a^{2} + b^{2}.

1CTAN:/tex-archive/macros/latex/required/amslatex

40  Het zetten van wiskundige formules

           \TeX{} wordt uitgesproken als
           $\tau\epsilon\chi$.\\[6pt]
           100~m$^{3}$ water \\[6pt]
           En dit komt
           recht uit mijn $\heartsuit$.

TEX wordt uitgesproken als τϵχ.

100 m^{3} water

En dit komt recht uit mijn ♡.

Voor grotere wiskundige vergelijkingen of formules gebruik je best een display-omgeving, in plaats van ze te splitsen over twee tekstregels. Dit betekent dat je ze plaatst tussen \[ en \] of tussen \begin{displaymath} en \end{displaymath}. Dit zorgt ervoor dat je formules apart geplaatst worden zonder nummering.

Tel $a$ kwadraat en $b$ kwadraat
samen om $c$ kwadraat te bekomen.
Of, om een meer
wiskundige aanpak te gebruiken:
\begin{displaymath}
c^{2}=a^{2}+b^{2}
\end{displaymath}
en dan nog een lijntje.

Tel a kwadraat en b kwadraat samen om c kwadraat te bekomen. Of, om een meer wiskundige aanpak te gebruiken:

c^{2} = a^{2} + b^{2}

en dan nog een lijntje.

Als je wil dat L^{A}TEX je vergelijkingen nummert, dan kan je de equationomgeving gebruiken. Je kan steeds naar een vergelijking verwijzen met de commando’s \label en \ref

\begin{equation} \label{eq:eps}
\epsilon > 0
\end{equation}
Uit (\ref{eq:eps}) besluiten we
\ldots

ϵ > 0  (3.1)

Uit (3.1) besluiten we …

Bemerk dat de uitdrukkingen anders zullen gezet worden in display mode dan in gewone tekstweergave.

$\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}$

lim_{n→∞} ∑ _{k=1}^{n} \frac{1}{k^{2}} = \frac{π^{2}}{6}

\begin{displaymath}
\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}
\end{displaymath}

lim_{n→∞} ∑_{k=1}^{n} \frac{1}{k^{2}} = \frac{π^{2}}{6}

Er zijn dus verschillen tussen de typografie voor wiskundige invoer (math mode) en tekst invoer (text mode). Bij voorbeeld in math mode:

1. De meeste spatiëring en lijnbreking heeft geen enkele betekenis, want alle gebruikte spatiëring wordt logisch afgeleid uit de wiskundige uitdrukking of moeten expliciet aangegeven worden met speciale commando’s zoals \,, \quad of \qquad.

2. Lege lijnen zijn niet toegestaan. Slechts één paragraaf per formule kan gebruikt worden.

3. Elke letter wordt beschouwd als de naam van een variabele en zal dus ook als dusdanig (cursief ) gezet worden. Als je normale tekst in een formule wil gebruiken (d.w.z. normaal recht schrift en normale spatiëring), dan moet je hem invoegen tussen het \textrm{...}- commando.

\begin{equation}
\forall x \in \mathbf{R}:
\qquad x^{2} \geq 0
\end{equation}

∀x ∈ R :  x^{2} ≥ 0  (3.2)

\begin{equation}
x^{2} \geq 0\qquad
\textrm{voor alle }x\in\mathbf{R}
\end{equation}

x^{2} ≥ 0  voor alle x ∈ R  (3.3)

Wiskundigen hebben de neiging om zeer kieskeurig te zijn voor de symbolen die ze gebruiken: het is gebruikelijk om hier ‘blackboard bold’ te gebruiken, die bekomen worden door het commando \mathbb uit het amsfonts- of amssymb-pakket te gebruiken. Het laatste voorbeeld wordt dan

\begin{displaymath}
x^{2} \geq 0\qquad
\textrm{voor alle }x\in\mathbb{R}
\end{displaymath}

x^{2} ≥ 0 voor alle x ∈

3.2 Groeperen in “wiskundige modus”

De meeste wiskundige commando’s hebben uitsluitend invloed op het volgende karakter. Dus als je wil dat het gebruikte commando van toepassing is op meerdere karakters, dan moet je ze groeperen met behulp van accola-

des: {...}.

\begin{equation}
a^x+y \neq a^{x+y}
\end{equation}

a^{x} + y ≠ a^{x+y} (3.4)

3.3 Bouwstenen voor een wiskundige formule

In deze sectie worden de meest belangrijke commando’s besproken die gebruikt worden voor het zetten van wiskundige formules. Zie sectie 3.10 op pagina 53 voor een gedetailleerde lijst van bevelen om wiskundige symbolen te zetten. Kleine Griekse letters worden ingevoerd als \alpha, \beta, \gamma, …, hoofdletters als \Gamma, \Delta, …^{2}

$\lambda,\xi,\pi,\mu,\Phi,\Omega$       λ, ξ, π, μ, Φ, Ω

Exponenten en indices kunnen gespecificeerd worden met het ^- en het _-symbool.

$a_{1}$ \qquad $x^{2}$ \qquad
$e^{-\alpha t}$ \qquad
$a^{3}_{ij}$\\
$e^{x^2} \neq {e^x}^2$

{a_{1}  x^{2}  e^{−αt}  a_{ij}^{3} \atop e^{x^{2}} ≠ e^{x}^{2}}

Je verkrijgt een vierkantswortel met \sqrt, en een n^{de} machtswortel met \sqrt[n]. L^{A}TEX past de grootte van het wortelteken aan aan het argument. Als je enkel het wortel-symbool nodig hebt, gebruik dan \surd.

$\sqrt{x}$ \qquad
$\sqrt{ x^{2}+\sqrt{y} }$
\qquad $\sqrt[3]{2}$\\[3pt]
$\surd[x^2 + y^2]$

\begin{matrix}\sqrt{x} & \sqrt{x^{2} + \sqrt{y}} & \sqrt[3]{2} \\ √ [x^{2} + y^{2}] \end{matrix}

De commando’s \overline en \underline trekken horizontale lijnen direct boven of onder een uitdrukking.

$\overline\{m+n\}$                        \overline{m + n}

2Er is geen hoofdletter Alpha gedefinieerd in L^{A}TEX 2εomdat die hetzelfde lijkt als een normale Romeinse letter A. In de volgende versie van L^{A}TEX zullen deze zaken veranderen.

De commando’s \overbrace en \underbrace plaatsen een lange horizontale accolade over of onder een uitdrukking.

$\underbrace\{ a+b+\cdots+z \}_\{26\}$      \underbrace{a + b + · · ·+ z}_{26}

Om mathematische accenten zoals kleine pijlen of het tilde-symbool bij variabelen te plaatsen, kan je de commando’s in tabel 3.1 op pagina 53 gebruiken. Brede “hoedjes” en tildes die meerdere karaktertekens overspannen kan je genereren met \widehat en \widetilde. Het '-symbool geeft een accent.

\begin{displaymath}
y=x^{2}\qquad y'=2x\qquad y''=2
\end{displaymath}

y = x^{2}  y′= 2x  y′′= 2

Vectoren worden dikwijls aangeduid met een pijltje boven een variabele. Dit krijg je met het \vec-commando. Met de twee commando’s \overrightarrow en \overleftarrow kan je gemakkelijk een vector aanduiden die van punt A naar B gaat.

\begin{displaymath}
\vec a\quad\overrightarrow{AB}
\end{displaymath}

a⃗ \overrightarrow{AB}

Gewoonlijk zet je niet expliciet een punt om een vermenigvuldiging aan te duiden. In sommige gevallen is het echter nodig om er een te plaatsen om de lezer te helpen de formule gemakkelijk te groeperen en te interpreteren. In zulke gevallen dien je \cdot te gebruiken.

\begin{displaymath}
v = {\sigma}_1 \cdot {\sigma}_2
    {\tau}_1 \cdot {\tau}_2
\end{displaymath}

v = σ_{1} · σ_{2}τ_{1} · τ_{2}

Namen van bekende wiskundige functies (uit goniometrie, …) worden meestal gezet in een recht schrift en niet cursief zoals variabelen. Om die reden levert L^{A}TEX de volgende commando’s om de belangrijkste functienamen te typen:

 \arccos  \cos   \csc  \exp   \ker     \limsup  \min
 \arcsin  \cosh  \deg  \gcd   \lg      \ln      \Pr
 \arctan  \cot   \det  \hom   \lim     \log     \sec
 \arg     \coth  \dim  \inf   \liminf  \max     \sin
 \sinh    \sup   \tan  \tanh

\[\lim_{x \rightarrow 0}
\frac{\sin x}{x}=1\]

lim_{x→0} \frac{sin x}{x} = 1

Voor de modulo-functie bestaan er twee bevelen: \bmod voor de binaire operatie “a mod b” en \pmod voor uitdrukkingen als “x ≡ a (mod b).” Een boven elkaar gezette breuk krijg je met het \frac{...}{...} bevel. Soms is de vorm met een schuine breukstreep 1/2 te verkiezen, omdat het beter oogt bij kleine “fracties”.

$1\frac{1}{2}$~uur
\begin{displaymath}
\frac{ x^{2} }{ k+1 }\qquad
x^{ \frac{2}{k+1} }\qquad
x^{ 1/2 }
\end{displaymath}

{1\frac{1}{2} uur \atop \frac{x^{2}}{k + 1}  x^{\frac{2}{k+1}}  x^{1/2}}

Om binomiale coëfficiënten of soortgelijke structuren aan te duiden, kan je gebruik maken van de commando’s {...\choose ...} of {...\atop...}. Het tweede commando produceert dezelfde uitvoer als het eerste, maar zonder de haakjes.^{3}

\begin{displaymath}
{n \choose k}\qquad {x \atop y+2}
\end{displaymath}

\binom{n}{k} {x \atop y + 2}

Voor binaire relaties kan het nuttig zijn om symbolen boven elkaar te plaatsen. \stackrel plaatst het symbool dat als eerste argument wordt meegegeven in een superscript-achtige grootte boven het tweede argument dat op zijn normale plaats blijft staan.

\begin{displaymath}
\int f_N(x) \stackrel{!}{=} 1
\end{displaymath}

∫ f_{N}(x) =^{!} 1

3Bemerk dat het gebruik van deze “ouderwetse” bevelen bewust verboden is door het amsmath-pakket. Ze zijn vervangen door \binom en \genfrac. Het laatste is een super-set van alle bestaande constructies, bv. je kan een soortgelijke constructie bekomen als \atop door \newcommand{\newatop}[2]{\genfrac{}{}{0pt}{1}{#1}{#2}}.

De integraal-operator krijg je met \int, de sommatie-operator met \sum en de produkt-operator met \prod. De boven- en onderlimieten geef je aan met ^en _zoals superscript en subscript.^{4}

\begin{displaymath}
\sum_{i=1}^{n} \qquad
\int_{0}^{\frac{\pi}{2}} \qquad
\prod_\epsilon
\end{displaymath}

∑_{i=1}^{n}  ∫0^{\frac{π}{2}}  ∏_{ϵ}

Voor het plaatsen van haakjes en andere begrenzingstekens bestaan praktisch alle symbolen in TEX (bv. [ ⟨ ∥ ↕). Ronde en vierkante haakjes kunnen ingevoerd worden met de desbetreffende toetsen, accolades met \{, alle andere begrenzingstekens worden gevormd met speciale commando’s (bv. \updownarrow). Voor een volledige lijst van alle beschikbare begrenzingstekens verwijzen we naar tabel 3.8 op pagina 55.

\begin{displaymath}
{a,b,c}\neq\{a,b,c\}
\end{displaymath}

a, b, c≠ {a, b, c}

Als je de commando’s \left en \right voor een openend, respectievelijk een sluitend, haakje plaatst, zal TEX automatisch de grootte van dat haakje aanpassen aan de grootte van de uitdrukking die begrensd wordt. Bemerk dat je steeds elke geopende \left moet sluiten met een overeenkomstige \right en dat de grootte enkel correct zal gezet worden als beide commando’s op de dezelfde lijn staan. Als je geen haakje wil zien aan de rechterkant, kan je steeds een \left afsluiten met een “onzichtbare” \right. (let op het punt)!

\begin{displaymath}
1 + \left( \frac{1}{ 1-x^{2} }
    \right) ^3
\end{displaymath}

1 + ( \frac{1}{1 − x^{2}} ) ^{3}

In sommige gevallen is het noodzakelijk om met de hand de correcte grootte te specificeren voor een wiskundig haakje. Dit kan gedaan worden met de commando’s \big, \Big, \bigg en \Bigg als prefix bij de meest gebruikelijke begrenzingstekens.^{5}

4AMS-L^{A}TEX heeft daarenboven nog multi-lijn superscript en subscript.

$\Big( (x+1) (x-1) \Big) ^{2}$\\
$\big(\Big(\bigg(\Bigg($\quad
$\big\}\Big\}\bigg\}\Bigg\}$\quad
$\big\|\Big\|\bigg\|\Bigg\|$

\begin{matrix}( (x + 1)(x − 1))^{2} \\ ( & ( & ( & ( & \} & \} & \} & \} & ∥ & ∥ & ∥ & ∥ \end{matrix}

Om drie puntjes te plaatsen in een formule, kan je verschillende commando’s gebruiken. \ldots plaatst de puntjes op de basislijn, \cdots plaatst ze verticaal gecentreerd. Daarnaast heb je ook nog \vdots voor verticale en \ddots voor diagonale puntjes. Verdere voorbeelden kan je vinden in sectie 3.5.

\begin{displaymath}
x_{1},\ldots,x_{n} \qquad
x_{1}+\cdots+x_{n}
\end{displaymath}

x_{1}, …, x_{n} x_{1} + ⋯+ x_{n}

3.4 Spatiëring in wiskundige uitdrukkingen

Als de spaties binnenin formules, zoals TEX ze gekozen heeft, niet voldoen aan uw wensen, dan kan je ze aanpassen door speciale spatiëringbevelen toe te voegen. Er zijn commando’s voor kleine spaties: \, voor \frac{3}{18} quad ( ); \: voor \frac{4}{18} quad ( ) en \; voor \frac{5}{18} quad ( ). Het door een backslash voorafgegane spatieteken \␣ genereert een middelgrote spatie en de commando’s \quad ( ) en \qquad ( ) produceren grote spaties. De grootte van een \quad komt overeen met de breedte van een hoofdletter ‘M’ in het actieve schrift. Het \!-commando produceert een negatieve spatiëring van −\frac{3}{18} quad ( ).

5Deze commando’s werken niet zoals verwacht indien je een grootte veranderend commando hebt gebruikt, of als de 11pt of 12pt optie gespecificeerd is. Gebruik de exscale- of amsmath-pakketten om dit gedrag te corrigeren.

\newcommand{\ud}{\mathrm{d}}
\begin{displaymath}
\int\!\!\!\int_{D} g(x,y)
\, \ud x\, \ud y
\end{displaymath}
in plaats van
\begin{displaymath}
\int\int_{D} g(x,y)\ud x \ud y
\end{displaymath}

∫∫_{D} g(x, y) dx dy

in plaats van

∫ ∫_{D} g(x, y)dxdy

Merk op dat de ‘d’ in de differentiaal traditioneel wordt gezet in Romeins lettertype. AMS-L^{A}TEX voorziet nog meer manieren om de spatiëring aan te passen tussen verschillende integraaltekens, namelijk de commando’s \iint, \iiint, \iiiint, en \idotsint. Als je het amsmath-pakket inlaadt, kan je het voorgaande voorbeeld herzetten als:

\newcommand{\ud}{\mathrm{d}}
\begin{displaymath}
\iint_{D} g(x,y) \, \ud x \, \ud y
\end{displaymath}

∫∫_{D} g(x, y) dx dy

Als je hierover meer details wil kennen, verwijzen we je naar het elektronisch document testmath.tex (bij AMS-L^{A}TEX) of naar hoofdstuk 8 van “The LaTeX Companion”.

3.5 Verticaal gealigneerd materiaal

Voor het zetten van matrices kan je de array-omgeving gebruiken. Deze omgeving werkt gelijkaardig aan de tabular-omgeving. Het \\- commando wordt gebruikt om een nieuwe regel te beginnen.

\begin{displaymath}
\mathbf{X} =
\left( \begin{array}{ccc}
x_{11} & x_{12} & \ldots \\
x_{21} & x_{22} & \ldots \\
\vdots & \vdots & \ddots
\end{array} \right)
\end{displaymath}

X = ( \begin{matrix}x_{11} & x_{12} & … \\ x_{21} & x_{22} & … \\ ⋮ & ⋮ & ... \end{matrix} )

De array-omgeving kan ook gebruikt worden om uitdrukkingen te zetten die een groot begrenzingsteken nodig hebben door een “.” te gebruiken als een onzichtbare \right begrenzer:

\begin{displaymath}
y = \left\{ \begin{array}{ll}
 a & \textrm{als $d>c$}\\
 b+x & \textrm{'s morgens}\\
l& \textrm{de hele dag}
  \end{array} \right.
\end{displaymath}

y = \{ \begin{matrix}a & als d > c \\ b + x & ’s morgens \\ l & de hele dag \end{matrix}

Zoals in de tabular-omgeving kan je lijnen trekken om elementen in de array te scheiden:

\begin{displaymath}
\left(\begin{array}{c|c}
1 & 2 \\
\hline
3 & 4
\end{array}\right)
\end{displaymath}

( \begin{matrix}1 & 2 \\ 3 & 4 \end{matrix} )

Voor formules die over meerdere regels lopen of voor stelsels van vergelijkingen, kan je gebruik maken van de eqnarray- en eqnarray*-omgeving in plaats van de equation-omgeving. In de eqnarray-omgeving krijgt elke regel een formulenummer, terwijl de eqnarray*-omgeving niets nummert. De eqnarray- en eqnarray*-omgevingen werken als een tabel met drie kolommen met {rcl} als stijlparameters. De middelste kolom kan gebruikt worden voor het gelijkheidsteken of het ongelijkheidsteken. Of elk ander symbool waarvan je denkt dat het daar past. Een nieuwe regel start je ook hier met \\.

\begin{eqnarray}
f(x) & = & \cos x     \\
f'(x) & = & -\sin x   \\
\int_{0}^{x} f(y)dy &
= & \sin x
\end{eqnarray}

f(x) = cos x  (3.5)
f′(x) = − sin x  (3.6)
∫_{0}^{x} f(y)dy = sin x  (3.7)

Bemerk dat de spatiëring aan elke zijde van het gelijkheidsteken redelijk groot is. Je kan dit verkleinen door \setlength\arraycolsep{2pt} te zetten, zoals in volgend voorbeeld. Lange uitdrukkingen worden niet automatisch opgesplitst in kleine stukjes. De auteur moet zelf specificeren waar de formule opgesplitst wordt en hoeveel de stukjes moeten inspringen. De volgende twee voorbeelden tonen de meest gebruikte methodes om dit te bereiken.

\underline{3.6 Phantom 49}

{\setlength\arraycolsep{2pt}
\begin{eqnarray}
\sin x & = & x -\frac{x^{3}}{3!}
+\frac{x^{5}}{5!}-{}
         \nonumber\\
& & {}-\frac{x^{7}}{7!}+{}\cdots
\end{eqnarray}}

\begin{aligned}sin x & = & x − \frac{x^{3}}{3!} + \frac{x^{5}}{5!} − \\ & & − \frac{x^{7}}{7!} + ⋯ & (3.8) \end{aligned}

\begin{eqnarray}
\lefteqn{ \cos x = 1
     -\frac{x^{2}}{2!} +{} }
                    \nonumber\\
 & & {}+\frac{x^{4}}{4!}
     -\frac{x^{6}}{6!}+{}\cdots
\end{eqnarray}

\begin{matrix}cos x = 1 − \frac{x^{2}}{2!} + \\ + \frac{x^{4}}{4!} − \frac{x^{6}}{6!} + ⋯ & (3.9) \end{matrix}

Het \nonumber commando vertelt L^{A}TEX om die specifieke uitdrukking niet te nummeren. Het juist positioneren van verticaal gealigneerde uitdrukkingen kan heel moeilijk worden met deze methodes; het amsmath-pakket voorziet enkele krachtigere alternatieven. (bekijk de align-, flalign-, gather-, multlineen split-omgevingen).

3.6 Phantom

We kunnen geen fantomen zien, maar toch huizen ze in de hoofden van vele mensen. L^{A}TEX is niet anders. We kunnen dit concept gebruiken voor enkele interessante spatiëringstrucjes. Wanneer je tekst verticaal aligneert met ^en _, is L^{A}TEX soms een beetje overijverig. Met behulp van het \phantom-commando kan je dan ruimte reserveren voor tekens die niet te zien zullen zijn in het finale document. Het zal je meteen duidelijk worden als je volgend voorbeeld bekijkt:

\begin{displaymath}
{}^{12}_{\phantom{1}6}\textrm{C}
\qquad \textrm{versus} \qquad
{}^{12}_{6}\textrm{C}
\end{displaymath}

_{6}^{12}C versus  _{6}^{12}C

\begin{displaymath}
\Gamma_{ij}^{\phantom{ij}k}
\qquad \textrm{versus} \qquad
\Gamma_{ij}^{k}
\end{displaymath}

Γ_{ij}^{k}  versus  Γ_{ij}^{k}

3.7 Font grootte in wiskundige modus

In wiskundige modus selecteert TEX de lettergrootte aan de hand van de context. Superschrift wordt bijvoorbeeld in een kleinere fontgrootte gezet. Als je een deel van een vergelijking in een recht lettertype wil plaatsen, gebruik dan niet het \textrm-bevel, omdat het mechanisme dat de lettergrootte bepaalt dan niet actief is; \textrm schakelt immers tijdelijk over op tekstmodus. Gebruik daarentegen \mathrm om het mechanisme dat instaat voor de keuze van de lettergrootte te blijven gebruiken. Maar let op, \mathrm werkt enkel goed op kleine stukjes. Spaties zijn nog steeds niet actief en geaccentueerde karakters zullen niet werken.^{6}

\begin{equation}
2^{\textrm{de}} \quad
2^{\mathrm{de}}
\end{equation}

2^{de} 2^{de} (3.10)

Niettegenstaande dit alles, zul je soms nog de juiste fontgrootte moeten opgeven aan L^{A}TEX. In wiskundige modus wordt de grootte gecontroleerd door vier commando’s:

\displaystyle (123), \textstyle (123), \scriptstyle (123) and
\scriptscriptstyle (123).

Het veranderen van stijl heeft ook gevolg voor de wijze waarop limieten worden afgebeeld.

\begin{displaymath}
\mathop{\mathrm{corr}}(X,Y)=
\frac{\displaystyle
\sum_{i=1}^n(x_i-\overline x)
(y_i-\overline y)}
{\displaystyle\biggl[
\sum_{i=1}^n(x_i-\overline x)^2
\sum_{i=1}^n(y_i-\overline y)^2
\biggr]^{1/2}}
\end{displaymath}

corr(X, Y) = \frac{∑_{i=1}^{n} (x_{i} − \overline{x})(y_{i} − \overline{y})}{[ ∑_{i=1}^{n} (x_{i} − \overline{x})^{2} ∑_{i=1}^{n} (y_{i} − \overline{y})^{2}]^{1/2}}

6Het amsmath-pakket zorgt ervoor dat het \textrm-commando werkt met lettergrootteaanpassing.

Dit is bovendien één van die voorbeelden waarin we grotere haakjes nodig hebben dan diegene die de standaard \left[ \right] methode levert.

3.8 Theorema’s, axioma’s, …

Wanneer je een wiskundig document schrijft, zal je hoogstwaarschijnlijk een methode nodig hebben om “Lemma’s”, “Definities”, “Axioma’s” en dergelijke structuren neer te schrijven. L^{A}TEX ondersteunt dit met het commando

\newtheorem{naam}[teller]{tekst}[sectie]

Het naam-argument is een kort sleutelwoord dat je kan gebruiken om het “theorema” te identificeren. Met het tekst-argument definieer je de eigenlijke naam van het “theorema” zoals het gedrukt zal worden in het finale document. De argumenten tussen vierkante haakjes zijn optioneel. Zij worden allebei gebruikt om de nummering van het “theorema” te specificeren. Met het teller-argument kan je de naam specificeren van een voorheen gedeclareerd “theorema”. Het nieuwe “theorema” zal dan in dezelfde nummering opgenomen worden. Het sectie-argument laat toe om de tekstuele eenheid te specificeren waarin het “theorema” zijn nummering krijgt. Na het uitvoeren van het \newtheorem-commando in de preamble van je document, kan je het daaropvolgende commando binnen je hele tekst gebruiken.

     \begin{naam}[tekst]

Dit is mijn bijzonder interessant theorema \end{naam}

Dit is voldoende als theorie. De volgende voorbeelden zullen hopelijk je laatste twijfels wegnemen en je duidelijk maken dat de \newtheoremomgeving veel te complex is om te begrijpen.

% definities voor het document
% preamble
\newtheorem{wet}{Wet}
\newtheorem{jury}[wet]{Jury}
%in the document
\begin{wet} \label{wet:box}
Verberg je niet in de getuigenbank
\end{wet}
\begin{jury}[De Twaalf]
Jij zou het kunnen zijn, dus
pas op en bekijk
wet~\ref{wet:box}\end{jury}
\begin{wet}Nee, nee, nee\end{wet}

Wet 1 Verberg je niet in de getuigenbank

Jury 2 (De Twaalf) Jij zou het kunnen zijn, dus pas op en bekijk wet 1

Wet 3 Nee, nee, nee

Het “Jury” theorema gebruikt dezelfde teller als het “Wet” theorema. Vandaar dat zijn nummer in de lijn ligt van de nummering van de andere “Wet” theorema’s. Het argument tussen vierkante haakjes wordt gebruikt om de titel of iets gelijkaardigs verder te specificeren voor het desbetreffende theorema.

\newtheorem{mur}{Murphy}[section]
\begin{mur}
Als er twee of meer
mogelijkheden zijn
om iets te doen, en
\'e\'en van de twee loopt
uit op een katastrofe,
dan zal iemand die
methode kiezen.
\end{mur}

Murphy 3.8.1 Als er twee of meer mogelijkheden zijn om iets te doen, en één van de twee loopt uit op een katastrofe, dan zal iemand die methode kiezen.

Het “Murphy” theorema krijgt een nummer dat is verbonden met de nummer van de huidige sectie. Je kan natuurlijk ook een andere teksteenheid gebruiken zoals bv. chapter of subsection.

3.9 Vette symbolen

Het is redelijk ingewikkeld om vette symbolen te bekomen in L^{A}TEX; dit is hoogstwaarschijnlijk bewust zo gedaan, omdat amateur-tekstschrijvers de neiging hebben om vette symbolen te pas en te onpas te gebruiken. Het bevel om de schriftstijl aan te passen, \mathbf, geeft je vette letters, maar deze zijn van het Romeinse schrift (rechtstaand), terwijl wiskundige symbolen normaal gezien cursief gezet worden. Er bestaat een \boldmathcommando, maar dit kan enkel gebruikt worden buiten de mathematische modus. Het werkt ook voor symbolen.

\begin{displaymath}
\mu, M \qquad \mathbf{M} \qquad
\mbox{\boldmath $\mu, M$}
\end{displaymath}

μ, M  M  μ, M

Bemerk dat de komma ook vet is, wat misschien niet gewenst is. Zowel het amsbsy-pakket (hetgeen bij amsmath gevoegd is) als het bmpakket uit de tools bundel maken dit veel eenvoudiger omdat zij een \boldsymbol-commando toevoegen.

\begin{displaymath}
\mu, M \qquad \boldsymbol{\mu},
\boldsymbol{M}
\end{displaymath}

μ, M μ, M

3.10 Lijst van wiskundige symbolen

In de volgende tabellen vind je alle symbolen die normaal gezien bruikbaar kunnen worden in wiskundige modus. Als je de symbolen uit de tabellen 3.12–3.16 wil gebruiken,^{7} moet je het pakket amssymb laden in de preamble van je document en de AMS math fonts moeten daarvoor geïnstalleerd zijn op je systeem. Als het AMS-pakket en zijn fonts niet geïnstalleerd zijn op je systeem, kijk dan op

CTAN:/tex-archive/macros/latex/required/amslatex/

Tabel 3.1: Accenten in wiskundige modus.

 â \hat{a}     ǎ \check{a}   ã \tilde{a}     á \acute{a}
 à \grave{a}   ȧ \dot{a}     ä \ddot{a}      ă \breve{a}
 ā \bar{a}     a⃗ \vec{a}     Â \widehat{A}   Ã \widetilde{A}

7Deze tabellen zijn afgeleid uit symbols.tex, geschreven door David Carlisle en vervolgens intensief veranderd naar de opmerkingen van Josef Tkadlec.

Tabel 3.2: Kleine Griekse letters.

α \alpha  θ \theta  o o  υ \upsilon
β \beta  ϑ \vartheta π \pi  ϕ \phi
γ \gamma  ι \iota  ϖ \varpi  φ \varphi
δ \delta  κ \kappa  ρ \rho  χ \chi
ϵ \epsilon  λ \lambda  ϱ \varrho  ψ \psi
ε \varepsilon μ \mu  σ \sigma  ω \omega
ζ \zeta  ν \nu  ς \varsigma
η \eta  ξ \xi  τ \tau

Tabel 3.3: Griekse hoofdletters.

     Γ \Gamma Λ \Lambda Σ \Sigma  Ψ \Psi
     Δ \Delta Ξ \Xi  Υ \Upsilon Ω \Omega
    Θ \Theta Π \Pi  Φ \Phi

Tabel 3.4: Binaire relaties.

Je kan negaties van de volgende symbolen creëren door het \not commando als prefix te gebruiken.

< <  > >  = =
≤ \leq of \le  ≥ \geq of \ge  ≡ \equiv
≪ \ll  ≫ \gg           ≐ \doteq
≺ \prec  ≻ \succ  ∼ \sim
⪯ \preceq  ⪰ \succeq  ≃ \simeq
⊂ \subset  ⊃ \supset  ≈ \approx
⊆ \subseteq  ⊇ \supseteq     ≅ \cong
⊏ \sqsubset ^{a} ⊐ \sqsupset ^{a} ⋈ \Join ^{a}
⊑ \sqsubseteq ⊒ \sqsupseteq ▷◁ \bowtie
∈ \in  ∋ \ni , \owns  ∝ \propto
⊢ \vdash  ⊣ \dashv  ⊧ \models
| \mid  ∥ \parallel  ⊥ \perp
⌣ \smile  ⌢ \frown  ≍ \asymp
: :             ∉ \notin  ≠ \neq or \ne

aGebruik het latexsym-pakket om dit symbool te gebruiken

Tabel 3.5: Binaire operatoren.

+ +  − -
± \pm  ∓ \mp  ◁ \triangleleft
· \cdot  ÷ \div  ▷ \triangleright
× \times  \ \setminus  ⋆ \star
∪ \cup  ∩ \cap  ∗ \ast
⊔ \sqcup  ⊓ \sqcap  ∘ \circ
∨ \vee , \lor  ∧ \wedge , \land  • \bullet
⊕ \oplus  ⊖ \ominus  ⋄ \diamond
⊙ \odot  ⊘ \oslash  ⊎ \uplus
⊗ \otimes  ◯ \bigcirc  ⨿ \amalg
△ \bigtriangleup ▽ \bigtriangledown † \dagger
⊲ \lhd ^{a}  ⊳ \rhd ^{a}  ‡ \ddagger
⊴ \unlhd ^{a}  ⊵ \unrhd ^{a}  ≀ \wr

aGebruik het latexsym-pakket om dit symbool te gebruiken

56  Het zetten van wiskundige formules

Tabel 3.6: GROTE operatoren.

      ∑ \sum  ⋃ \bigcup  ⋁ \bigvee  ⨁ \bigoplus
      ∏ \prod  ⋂ \bigcap  ⋀ \bigwedge ⨂ \bigotimes
      ∐ \coprod ⨆ \bigsqcup  ⨀ \bigodot
      ∫ \int  ∮ \oint  ⨄ \biguplus

Tabel 3.7: Pijlen.

← \leftarrow of \gets  ⟵  \longleftarrow  ↑ \uparrow
→ \rightarrow of \to  −→  \longrightarrow  ↓ \downarrow
↔ \leftrightarrow  ⟷  \longleftrightarrow  ↕ \updownarrow
⇐ \Leftarrow  ⟸  \Longleftarrow  ⇑ \Uparrow
⇒ \Rightarrow  ⟹  \Longrightarrow  ⇓ \Downarrow
⇔ \Leftrightarrow  ⟺  \Longleftrightarrow  ⇕ \Updownarrow
↦ \mapsto  ⟼→ \longmapsto  ↗ \nearrow
↩ \hookleftarrow  ↪  \hookrightarrow  ↘ \searrow
↼ \leftharpoonup  ⇀  \rightharpoonup  ↙ \swarrow
↽ \leftharpoondown  ⇁  \rightharpoondown  ↖ \nwarrow
⇌ \rightleftharpoons ⟺  \iff (grotere spatiëring) ⇝ \leadsto ^{a}

aGebruik het latexsym-pakket om dit symbool te gebruiken

Tabel 3.8: Begrenzingstekens.

( (  ) )  ↑ \uparrow  ⇑ \Uparrow
[ [ of \lbrack ] ] of \rbrack ↓ \downarrow  ⇓ \Downarrow
{ \{ of \lbrace } \} of \rbrace ↕ \updownarrow  ⇕ \Updownarrow
⟨ \langle  ⟩ \rangle  | | of \vert  ∥ \| of \Vert
⌊ \lfloor  ⌋ \rfloor  ⌈ \lceil  ⌉ \rceil

/ /  \ \backslash  . (onzichtbare begrenzing)

Tabel 3.9: Grote begrenzingstekens.

    { \lgroup     } \rgroup     { \lmoustache  } \rmoustache
    | \arrowvert  ‖ \Arrowvert  | \bracevert

3.10 Lijst van wiskundige symbolen  57

Tabel 3.10: Verschillende symbolen.

. . . \dots  · · · \cdots        ⋮ \vdots  ... \ddots
h̄ \hbar  ı \imath  ȷ \jmath  ℓ \ell
ℜ \Re  ℑ \Im  ℵ \aleph  ℘ \wp
∀ \forall  ∃ \exists  ℧ \mho ^{a}  ∂ \partial
′ '  ′ \prime  ∅ \emptyset ∞ \infty
∇ \nabla  △ \triangle  □ \Box ^{a}  ◇ \Diamond ^{a}
⊥ \bot  ⊤ \top  ∠ \angle  √ \surd
♢ \diamondsuit ♡ \heartsuit ♣ \clubsuit ♠ \spadesuit
¬ \neg of \lnot  ♭ \flat  ♮ \natural  ♯ \sharp

aGebruik het latexsym-pakket om dit symbool te gebruiken

Tabel 3.11: Niet-wiskundige symbolen.

Deze symbolen kunnen ook gebruikt worden in tekstmodus.

                † \dag  § \S   \begin{matrix}c \\ ◯ \end{matrix} \copyright
                ‡ \ddag ¶ \P $ \pounds

Tabel 3.12: AMS begrenzingstekens.

    ⌜ \ulcorner ⌝ \urcorner ⌞ \llcorner ⌟ \lrcorner
    | \lvert  | \rvert  ∥ \lVert  ∥ \rVert

Tabel 3.13: AMS Grieks en Hebreeuws.

 𝟋 \digamma κ \varkappa ℶ \beth ℸ \daleth ℷ \gimel

Tabel 3.14: AMS binaire relaties.

⋖ \lessdot  ⋗ \gtrdot  ≑ \doteqdot of \Doteq
⩽ \leqslant  ⩾ \geqslant  ≓ \risingdotseq
⪕ \eqslantless  ⪖ \eqslantgtr  ≒ \fallingdotseq
≦ \leqq  ≧ \geqq  ≖ \eqcirc
≪ \lll of \llless  ≫ \ggg of \gggtr  ≗ \circeq
≲ \lesssim  ≳ \gtrsim  ≜ \triangleq
⪅ \lessapprox  ⪆ \gtrapprox  ≏ \bumpeq
≶ \lessgtr  ≷ \gtrless  ≎ \Bumpeq
⋚ \lesseqgtr  ⋛ \gtreqless  ∼ \thicksim
⪋ \lesseqqgtr  ⪌ \gtreqqless  ≈ \thickapprox
≼ \preccurlyeq  ≽ \succcurlyeq  ≊ \approxeq
⋞ \curlyeqprec  ⋟ \curlyeqsucc  ∽ \backsim
≾ \precsim  ≿ \succsim  ⋍ \backsimeq
≾ \precapprox  ≿ \succapprox  ⊨ \vDash
⫅ \subseteqq  ⫆ \supseteqq  ⊩ \Vdash
⋐ \Subset  ⋑ \Supset  ⊪ \Vvdash
⊏ \sqsubset  ⊐ \sqsupset  ϶ \backepsilon
∴ \therefore  ∵ \because  ∝ \varpropto
 ∣ \shortmid  ∥ \shortparallel  ≬ \between
⌣ \smallsmile  ⌢ \smallfrown  ⋔ \pitchfork
◁ \vartriangleleft ▷ \vartriangleright ◀ \blacktriangleleft
⊴ \trianglelefteq  ⊵ \trianglerighteq  ▶ \blacktriangleright

Tabel 3.15: AMS pijlen.

←−− \dashleftarrow  −−→ \dashrightarrow  ⊸ \multimap
⇇ \leftleftarrows  ⇉ \rightrightarrows  ⇈ \upuparrows
⇆ \leftrightarrows  ⇄ \rightleftarrows  ⇊ \downdownarrows
⇚ \Lleftarrow  ⇛ \Rrightarrow  ↿ \upharpoonleft
↞ \twoheadleftarrow  ↠ \twoheadrightarrow ↾ \upharpoonright
↢ \leftarrowtail  ↣ \rightarrowtail  ⇃ \downharpoonleft
⇋ \leftrightharpoons ⇌ \rightleftharpoons ⇂ \downharpoonright
↰ \Lsh  ↱ \Rsh  ⇝ \rightsquigarrow
↫ \looparrowleft  ↬ \looparrowright  ↭ \leftrightsquigarrow
↶ \curvearrowleft  ↷ \curvearrowright
⟲ \circlearrowleft  ⟳ \circlearrowright

Tabel 3.16: AMS negaties van binaire relaties en pijlen.

≮ \nless  ≯ \ngtr  ⫋ \varsubsetneqq
⪇ \lneq  ⪈ \gneq  ⫌ \varsupsetneqq
≰ \nleq  ≱ \ngeq  ⫅̸ \nsubseteqq
⩽̸ \nleqslant  ⩾̸ \ngeqslant  ⫆̸ \nsupseteqq
≨ \lneqq  ≩ \gneqq  ∤ \nmid
≨ \lvertneqq  ≩ \gvertneqq  ∦ \nparallel
≦̸ \nleqq  ≧̸ \ngeqq  ∤ \nshortmid
⋦ \lnsim  ⋧ \gnsim  ∦ \nshortparallel
⪉ \lnapprox  ⪊ \gnapprox  ≁ \nsim
⊀ \nprec  ⊁ \nsucc  ≇ \ncong
⪯̸ \npreceq  ⪰̸ \nsucceq  ⊬ \nvdash
⪵ \precneqq  ⪶ \succneqq  ⊭ \nvDash
⋨ \precnsim  ⋩ \succnsim  ⊮ \nVdash
⪹ \precnapprox  ⪺ \succnapprox  ⊯ \nVDash
⊊ \subsetneq  ⊋ \supsetneq  ⋪ \ntriangleleft
⊊ \varsubsetneq ⊋ \varsupsetneq ⋫ \ntriangleright
⊈ \nsubseteq  ⊉ \nsupseteq  ⋬ \ntrianglelefteq
⫋ \subsetneqq  ⫌ \supsetneqq  ⋭ \ntrianglerighteq
↚ \nleftarrow  ↛ \nrightarrow  ↮ \nleftrightarrow
⇍ \nLeftarrow  ⇏ \nRightarrow  ⇎ \nLeftrightarrow

Tabel 3.17: AMS binaire operatoren.

∔ \dotplus  ▪ \centerdot  ⊺ \intercal
⋉ \ltimes  ⋊ \rtimes  ⋇ \divideontimes
⋓ \Cup of \doublecup ⋒ \Cap of \doublecap ∖ \smallsetminus
⊻ \veebar  ⊼ \barwedge  ⩞ \doublebarwedge
⊞ \boxplus  ⊟ \boxminus  ⊝ \circleddash
⊠ \boxtimes  ⊡ \boxdot  ⊚ \circledcirc
⋋ \leftthreetimes  ⋌ \rightthreetimes ⊛ \circledast
⋎ \curlyvee  ⋏ \curlywedge

Tabel 3.18: AMS varia.

 h̄ \hbar  ℏ \hslash  𝕜 \Bbbk
□ \square  ■ \blacksquare  Ⓢ \circledS
△ \vartriangle  ▲ \blacktriangle  ∁ \complement
▽ \triangledown ▼ \blacktriangledown ⅁ \Game
♢ \lozenge  ♦ \blacklozenge  ⋆ \bigstar
∠ \angle  ∡ \measuredangle  ∢ \sphericalangle
⧸ \diagup  ⧹ \diagdown  ‵ \backprime
 ∄ \nexists  Ⅎ \Finv  ∅ \varnothing
 ð \eth  ℧ \mho

Tabel 3.19: Wiskundige alfabetten.

Bijvoorbeeld Commando  Nodig pakket

    ABCdef  \mathrm{ABCdef}
    ABCdef  \mathit{ABCdef}
    ABCdef  \mathnormal{ABCdef}
    ABC  \mathcal{ABC}
    𝒜 ℬ𝒞  \mathcal{ABC}  mathrsfs

𝒜ℬ𝒞  \mathcal{ABC}  eucal met optie: mathcal of
\mathscr{ABC}  eucal met optie: mathscr

    𝔄𝔅ℭ𝔡𝔢𝔣  \mathfrak{ABCdef}  eufrak

\mathbb{ABC}  amsfonts of amssymb

Gespecialiseerde technieken

Voor het schrijven van grote tekstdocumenten voorziet L^{A}TEX gespecialiseerde commando’s, bijvoorbeeld voor het maken van een index (woordenlijst), het automatisch bijhouden van een referentielijst enzovoort. Dit hoofdstuk behandelt slechts de basis van deze L^{A}TEX-technieken, de L^{A}TEX Manual [1] en The L^{A}TEX Companion [3] gaan hier veel dieper op in.

4.1 Beelden in EPS-formaat invoegen

L^{A}TEX heeft ingebouwde mechanismen om te werken met zogenaamde floats, of vlottende objecten, een wat dure naam voor figuren en tabellen. De figure- en table-omgevingen zijn speciaal hiervoor ontworpen. Er bestaan verschillende manieren om de figuren met L^{A}TEX zelf of met een van de vele L^{A}TEX-pakketten aan te maken. De meeste mensen vinden dit echter vrij moeilijk en daarom zullen we er in deze handleiding niet verder op in gaan. Als je hier meer over wil weten, neem dan een kijkje in The L^{A}TEX Companion [3] en de L^{A}TEX Manual [1]. Meestal is het gemakkelijker om figuren te maken met gespecialiseerde softwareprogramma’s^{1} en de afgewerkte figuur gewoon in je tekst in te voegen. Er zijn veel pakketten die dit mogelijk maken. Omdat dit maar een inleiding tot L^{A}TEX is, leggen we alleen uit hoe je Encapsulated Post-Script figuren kan gebruiken in je tekst. Dit is de meest gebruikte en eenvoudigste manier. Om zo’n figuren te kunnen gebruiken, moet je wel over een PostScript printer beschikken^{2}.

1Voorbeelden zijn XFig, CorelDraw, Gnuplot, Adobe Illustrator, ….

2Een andere manier om de PostScript-bestanden te bekijken is GhostScript, een programma dat je kan downloaden op CTAN:/tex-archive/support/ghostscript/ of http://www.ghostscript.com/. Als je met Windows of OS/2 werkt, is GSView een erg handige uitbreiding hierop.

Een efficiënte manier om figuren in je tekst in te voegen is het graphicxpakket (de x is geen typefout), geschreven door D. P. Carlisle. Dit pakket wordt normaal standaard geïnstalleerd bij elke TEX-distributie en we gaan ervan uit dat dat ook bij jou het geval is. Het is eigenlijk een onderdeel van een hele familie van pakketten die de “graphics” bundel wordt genoemd^{3}. We veronderstellen ook dat je een werkende PostScript printer bezit. Om nu een figuur in je tekst in te voegen, volg je de volgende stappen:

1. Bewaar de figuur met je gespecialiseerd tekenprogramma in EPSformaat. Als het programma dit niet ondersteunt, kan je een Post-Script printer driver installeren en de figuur afprinten naar een bestand. Met wat geluk (afhankelijk van de driver en de instellingen ervan) is dit bestand een EPS-bestand. Let wel op: een EPS-bestand kan niet meer dan één pagina bevatten!

2. Laad het graphicx-pakket met het volgende commando in de preamble van je L^{A}TEX document:

 \usepackage{graphicx}

Als je met oudere versies van het graphicx-pakket werkt, moet je het volgende invoeren:

 \usepackage[driver]{graphicx}

waarin driver de naam is van het programma waarmee je het DVIbestand omzet naar een PostScript-bestand. Meestal wordt hiervoor dvips gebruikt^{4}. Dit is nodig omdat oudere versies van graphicx niet zelf kunnen beslissen welke methode ze moeten gebruiken om de figuur correct in te voegen. De nieuwere versies kunnen dit wel.

3. Met het commando

\includegraphics[sleutel=waarde, …]{bestand}

kan je nu de figuur bestand.eps invoegen in je tekst zelf. Als optie kan je hier een lijst van sleutels geven met bijhorende waarden, gescheiden door komma’s. Die sleutels kan je gebruiken om de breedte, de hoogte en de rotatie van de figuur te bepalen. Tabel 4.1 geeft een overzicht van de belangrijkste sleutels.

3CTAN:/tex-archive/macros/latex/required/graphics/ 4Het kan zijn dat je PDFL^{A}TEX gebruikt in plaats van L^{A}TEX. Als optie voor het graphicxpakket geef je dan [pdftex] op.

Tabel 4.1: Sleutels voor het graphicx-pakket.

width Vergroot/verklein tot de opgegeven breedte
height Vergroot/verklein tot de opgegeven hoogte
angle Draai de figuur in tegenwijzerzin
scale Vergroot/verklein met de opgeven factor

Een voorbeeldje zal alles wel duidelijker maken:

     \begin{figure}
     \centering
     \includegraphics[angle=90, width=0.5\textwidth]{test}
     \end{figure}

Dit voorbeeld voegt de figuur in die in het bestand test.eps is opgeslagen. Eerst wordt de figuur gedraaid in tegenwijzerzin over een hoek van 90 graden en dan herschaald tot de helft van de breedte van de standaardtekst. Omdat we geen hoogte opgeven, zal L^{A}TEX de hoogte/breedte-verhouding van de figuur bewaren. Het is ook mogelijk om de breedte of hoogte in absolute dimensies op te geven. Voor een overzicht van geldige eenheden kijk je maar eens terug naar tabel 5.5 op pagina 80. Als je meer wil weten over figuren in L^{A}TEX, lees dan zeker [8] en [11].

4.2 Referentielijst

Een referentielijst kan je aan je tekst toevoegen met de thebibliographyomgeving. Elke referentie in de lijst wordt ingevoerd met het volgende commando:

 \bibitem{label}

Het woord dat je invult op de plaats van label, kan je in je tekst gebruiken om te verwijzen naar het boek of het artikel. Dit doe je op deze manier:

 \cite{marker}

L^{A}TEX zorgt zelf voor de juiste nummering van de referenties. De parameter na het \begin{thebibliography}-commando is de maximale breedte van de nummers. In het hiernavolgende voorbeeld hebben we minder dan 100 referenties, dus vertellen we L^{A}TEX dat de nummers van de referenties nooit meer plaats zullen innemen dan het getal 99.

D.~Knuth~\cite{Knuth}
noemde dit \ldots
\begin{thebibliography}{99}
\bibitem{Knuth} Knuth,
Donald E.: \emph{The TeXBook}
(1984), Addison-Wesley
Publishing Company,
Reading (USA). 480 p.
\end{thebibliography}

D. Knuth [1] noemde dit …

Bibliografie

[1] Knuth, Donald E.: The TeXBook (1984), Addison-Wesley Publishing Company, Reading (USA). 480 p.

Voor langere teksten is het beter om het BibTEX programma te gebruiken, dat standaard wordt meegeleverd met de meeste TEX-distributies. Hiermee kan je een databank van referenties aanleggen. L^{A}TEX zal er dan alleen die referenties uithalen waar je in je tekst naar verwijst. BibTEX maakt gebruikt van style sheets of stijlbladen die de opmaak van je referentielijst bepalen. Er zijn een hele hoop stijlbladen beschikbaar, die je een uitgebreide keuze geven voor de opmaak.

4.3 Index

Een van de handigste onderdelen van een boek is de index of woordenlijst achteraan. Met L^{A}TEX en het programma makeindex^{5} kan je heel eenvoudig een index aan je tekst toevoegen. In deze inleidende tekst leggen we alleen de eenvoudigste indexeringscommando’s uit. Als je meer wilt weten, lees je best eens The L^{A}TEX Companion [3]. Om indexen te kunnen gebruiken in je L^{A}TEX tekst, moet je het makeidx- \underline{4.3 Index 65}

5Op oudere computers kan dit ook makeidx heten.

Tabel 4.2: Syntax voor sleutelwoorden in het \index-commando.

Voorbeeld  Sleutelwoord Opmerking
\index{hallo}  hallo, 1  Normaal
\index{hallo!wereld}  wereld, 3  Verschijnt onder ’hallo’

\index{Stefan@\textsl{Stefan}} Stefan, 2  Cursief gedrukt
\index{Bart@\textbf{Bart}}  Bart, 7  Vet gedrukt

\index{Katrien|textbf}  Katrien, 3  Paginanummer vet gedrukt
\index{Ria|textit}  Ria, 5  Paginanummer cursief gedrukt

pakket laden in de preamble met het volgende commando:

 \usepackage{makeidx}

De speciale indexeringscommando’s activeer je door ook het

 \makeindex

commando te gebruiken in de preamble van je tekst. Elk woord dat in je index thuishoort, geef je aan zoals hier:

\index{sleutelwoord}

sleutelwoord is het woord zoals het in de index moet voorkomen. De \index-commando’s zet je in je tekst op de plaats waar de index naar moet verwijzen. Tabel 4.2 geeft enkele voorbeelden hoe je het sleutelwoord kan formuleren. Als je L^{A}TEX uitvoert op je tekst, wordt elk \index-commando samen met het huidige paginanummer naar een speciaal bestand weggeschreven. Dit bestand heeft dezelfde naam als je L^{A}TEX-bestand, maar dan met de extensie .idx. Daarna kan je het makeindex programma uitvoeren op het .idxbestand.

 makeindex bestand

Hierdoor wordt er een nieuw bestand aangemaakt met een .ind-extensie, waarin alle woorden alfabetisch gerangschikt worden. Als je nu L^{A}TEX voor een tweede maal uitvoert op je L^{A}TEX-bestand, wordt de index ingevoegd op de plaats waar het commando

 \printindex

staat. Het showidx-pakket kan alle \index-commando’s aangeven in de linkermarge van de tekst. Dit is erg handig om je tekst na te kijken op fouten en om de index te controleren.

4.4 Aangepaste kop- en voetteksten

Met het fancyhdr-pakket^{6} kan je met enkele simpele commando’s de kop- en voetteksten van je tekst aanpassen. De koptekst van deze L^{A}TEX inleiding is maar een klein voorbeeld van wat het fancyhdr-pakket allemaal kan. Figuur 4.1 geeft een voorbeeld van de manier waarop je een aangepaste kop- of voettekst definieert.

\documentclass{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
% hiermee zorgen we ervoor dat de koptekst
% in kleine letters wordt afgedrukt.
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{}  % verwijder huidige opmaak van kop- en voettekst
\fancyhead[LE,RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} % maak plaats voor lijn
\fancypagestyle{plain}{%
   \fancyhead{} % verwijder kop- en voettekst op gewone blzn.
   \renewcommand{\headrulewidth}{0pt} % en ook de lijn
}

Figuur 4.1: Voorbeeld van een opmaak met het fancyhdr-pakket.

6Geschreven door Piet van Oostrum en te vinden op CTAN:/tex-archive/macros/latex/contrib/supported/fancyhdr/

Het moeilijkste hierbij is het invoegen van titels van hoofdstukken of secties in je kop- of voettekst. L^{A}TEX pakt dit aan in twee stappen. In de definitie van je kop- of voettekst plaats je de commando’s \rightmark en \leftmark om respectievelijk de huidige sectie- en hoofdstuktitel in te voeren. Bij elk \chapter of \section-commando wordt de inhoud hiervan overschreven met de nieuwe titel. Om L^{A}TEX zo flexibel mogelijk te maken, veranderen de \chapter en \section-commando’s niet rechtstreeks de \rightmark en \leftmark waarden. Ze gebruiken hiervoor nog andere commando’s, namelijk

\chaptermark, \sectionmark (of \subsectionmark . . . ) die op hun beurt
dan \rightmark en \leftmark veranderen.

Als je dus de hoofdstuktitel in je koptekst wilt aanpassen, moet je gewoon de waarde van \chaptermark “hernieuwen”. Dit klinkt allemaal misschien wat ingewikkeld, maar wees gerust, het valt allemaal wel mee. Figuur 4.1 geeft een voorbeeld van het fancyhdr-pakket dat ervoor zorgt dat de koptekst er ongeveer zoals in deze L^{A}TEX inleiding uitziet.

4.5 Het verbatim-pakket

We hebben eerder al gesproken over de verbatim-omgeving. In deze sectie gaan we het hebben over het verbatim-pakket. In principe is dit gewoon een herwerkte versie van de verbatim-omgeving, maar een aantal beperkingen van de verbatim-omgeving zijn hierin opgelost. “Big deal”, zal je misschien denken, maar het verbatim-pakket voorziet ook een aantal nieuwe functies en dat is precies waarom we het hier behandelen. Eén van die uitbreidingen is het

 \verbatiminput{bestand}

commando dat toelaat een ASCII tekst in de invoertekst in te lezen, alsof die tekst in een verbatim-omgeving stond. Dat wil zeggen dat alle spaties, witregels en dergelijke behouden blijven. Veel meer informatie over dit pakket kan je vinden in [9].

4.6 L^{A}TEX-pakketten downloaden en installeren

De meeste TEX-distributies worden geïnstalleerd met een groot aantal pakketten. Toch zijn er nog erg veel andere pakketten beschikbaar op het internet. Dé plaats bij uitstek om pakketten te zoeken is CTAN, het Comprehensive TeX Archive Network (http://www.ctan.org/).

Een aantal TEX-distributies voorzien tegenwoordig handige hulpprogramma’s om automatisch pakketten van het internet te downloaden en te installeren. Een voorbeeld hiervan is MikTEX, een TEX-distributie voor Windows besturingssystemen. Hoe dan ook, het is altijd mogelijk dat je een bepaald pakket op deze manier niet geïnstalleerd krijgt. Daarom leggen we hieronder uit hoe je manueel te werk kan gaan, onafhankelijk van welke hulpprogramma’s ook. Pakketten zoals geometry, hyphenat,… kan je doorgaans vinden onder de vorm van twee samenhorende bestanden: een met een .ins-extensie, het andere met een .dtx-extensie. Vaak hoort er ook een bestand readme.txt bij met een korte beschrijving van het pakket. Lees dit bestand altijd voordat je aan het eigenlijke installeren begint. Wanneer je de bestanden naar je computer hebt gedownload, moet je ervoor zorgen dat (a) L^{A}TEX de pakketbestanden kan vinden en (b) je de documentatie kan lezen. Voer deze stappen uit om ervoor te zorgen dat L^{A}TEX de bestanden kan vinden:

1. Voer L^{A}TEX uit op het .ins-bestand. Dit maakt een nieuw bestand aan met de extensie .sty.

2. Verplaats het .sty-bestand naar een plaats waar L^{A}TEX het kan vinden. Dit is meestal in de .../localtexmf/tex/latex/ directory^{7}.

3. Nu moet je de zogenaamde filename database van je TEX-distributie hernieuwen. Het commando dat hiervoor gebruikt wordt hangt af van het type L^{A}TEX-distributie:

• teTeX, fpTeX – texhash;

       • web2c – mktexlsr;

• MikTeX – initexmf --update-fndb of gebruik het GUI hulpprogramma.

Het pakket is nu geïnstalleerd. In de volgende stap maak je de documentatiefiles aan voor het pakket:

1. Voer L^{A}TEX uit op het .dtx-bestand. Dit maakt een nieuw bestand aan met een .dvi-extensie, zoals je gewend bent met je eigen L^{A}TEXdocumenten. Het kan zijn dat je L^{A}TEX meermaals moet uitvoeren om alle verwijzingen in de tekst te laten kloppen.

2. Controleer of L^{A}TEX ook een .idx-bestand heeft aangemaakt. Als je geen .idx-bestand kan vinden, kan je meteen doorgaan met stap 5.

7Op een Windows computer moet je natuurlijk backslashes (\) gebruiken.

3. Om de index van de documentatie aan te maken, voer je het volgende commando uit:

     makeindex -s gind.ist naam

(waarbij naam de naam is van het pakket, zonder extensie).

4. Voer L^{A}TEX nog een keer uit op het .dtx-bestand.

5. Je kan eventueel het .dvi-bestand nog omzetten naar een .ps- of .pdf-bestand, om het jezelf wat gemakkelijk te maken.

Het kan ook zijn dat er een .glo (glossary)-bestand wordt aangemaakt. In dat geval voer je best het volgende commando uit tussen stap 4 en 5:

makeindex -s gglo.ist -o naam.gls naam.glo

Zorg er zeker voor dat je L^{A}TEX nog een laatste keer uitvoert op het .dtxbestand voordat je overgaat naar stap 5.

Je eigen L^{A}TEX

Documenten die je maakt met de commando’s die we tot nu toe besproken hebben, zullen er voor een groot publiek goed uitzien. Misschien barsten ze niet van hypermoderne, opvallende lay-out, maar ze voldoen in elk geval aan de gevestigde regels, waardoor ze duidelijk leesbaar worden en mooi ogen. Desalniettemin bestaan er situaties waarin L^{A}TEX je probleem niet in een handomdraai kan oplossen of waarbij de uitvoer van een bestaand commando niet aan je eisen voldoet. In dit hoofdstuk geven we enkele hints over hoe je L^{A}TEX nieuwe trucjes kunt aanleren en hoe je de uitvoer kunt doen afwijken van de standaard.

5.1 Nieuwe commando’s, omgevingen en pakketten

Je hebt wellicht gemerkt dat de commando’s, die in deze tekst worden ingevoerd, in een kader staan en dat ze allemaal in de index voorkomen. In plaats van telkens de nodige L^{A}TEX-commando’s in de invoertekst op te nemen, werd een pakket gemaakt dat nieuwe commando’s en omgevingen kent om dit te bereiken. Als een nieuw commando wordt ingevoerd, staat in de invoertekst kortweg:

\begin{lscommand}
\ci{dwaasvoorbeeld}
\end{lscommand}

                                         \dwaasvoorbeeld

In dit voorbeeld gebruiken we een zelf gedefinieerde omgeving (de omgeving lscommand) die verantwoordelijk is voor het tekenen van een kader en een zelf gedefinieerd commando (het commando \ci) dat de commandonaam afdrukt en opneemt als sleutelwoord in de index. Je kunt dit verifiëren door het commando \dwaasvoorbeeld op te zoeken in de index, waarbij je zult vaststellen dat bij het sleutelwoord \dwaasvoorbeeld een verwijzing staat naar elke pagina waar het commando \dwaasvoorbeeld werd gebruikt. Als we ooit beslissen dat het niet leuk meer is de nieuwe commando’s in een kader af te drukken, dan moeten we enkel de definitie van de omgeving lscommand wijzigen om een nieuwe look te creëren. Dat is veel efficiënter dan doorheen het hele document op elke plaats waar een kader rond een woord staat, die kader te verwijderen.

5.1.1 Nieuwe commando’s

Om een nieuw commando te definiëren, gebruik je het commando

\newcommand{naam}[aantal]{definitie}

Essentieel zijn er twee argumenten nodig: de naam van het nieuwe commando en zijn definitie. De parameter aantal tussen vierkante haakjes is optioneel. Zo kun je het nieuwe commando zelf van (maximaal 9) parameters laten afhangen. In het volgende voorbeeld wordt een nieuw commando gedefinieerd als afkorting van een bestaand commando. Wanneer je in een tekst dikwijls het symbool nodig hebt, is het nuttig om het volgende commando te definiëren dat toelaat dit symbool zowel binnen gewone tekst als binnen een formule in te voegen.

\newcommand{\R}%
{\ensuremath{\mathbb R}}
% in de invoertekst:
De verzameling \R.

De verzameling .

Het onderstaande voorbeeld illustreert hoe de parameter aantal kan worden gebruikt. Het symbool #1 wordt automatisch vervangen door de eerste parameter, enzovoort. Het commando \meerkeuze tekent een kader (over de volledige breedte van de pagina) waarin vier antwoordmogelijkheden zijn opgesomd die als parameter met het commando worden meegegeven.

\newcommand\meerkeuze[4]{
\begin{tabular}%
 {|p{1.2cm}p{1.2cm}p{1.2cm}p{1.2cm}|}
 \hline
 (A) #1 & (B) #2 & (C) #3 & (D) #4
 \\ \hline
\end{tabular}}%en nu een voorbeeld:
$a \cdot a = $\\[1mm]
\meerkeuze{$a$}{$2a$}{$a^2$}{$0$}

a · a = ; (A) a  (B) 2a (C) a^{2}  (D) 0

L^{A}TEX laat niet toe dat je zelf een commando definieert met de naam van een reeds bestaand commando. Er bestaat een speciaal commando, wanneer je dit toch wilt forceren, nl. \renewcommand. De syntax van dit commando is precies dezelfde als die van het commando \newcommand, alleen overschrijft het de vorige definitie van het bestaande commando. In bepaalde gevallen is ook het commando \providecommand zeer zinvol. Het werkt precies als het commando \newcommand, maar als het commando reeds (onder dezelfde naam) werd gedefinieerd, zal L^{A}TEX 2εde nieuwe definitie zonder nevenwerkingen negeren. Let wel op met witruimte die op L^{A}TEX-commando’s volgt. Zie pagina 7 voor meer informatie.

5.1.2 Nieuwe omgevingen

Naar analogie met het commando \newcommand is er ook een commando dat nieuwe omgevingen definieert. Het commando \newenvironment gebruikt de volgende syntax:

\newenvironment{naam}[aantal]{vooraf }{achteraf }

Net als het commando \newcommand kan \newenvironment met of zonder optionele parameter worden gebruikt. Alles wat binnen de parameter vooraf voorkomt, wordt verwerkt vóór de tekst in de eigenlijke omgeving. Alles wat binnen de parameter achteraf staat, wordt verwerkt op het moment dat L^{A}TEX het commando \end{naam} tegenkomt. Het volgende voorbeeld illustreert het gebruik van het commando

\newenvironment.

\newenvironment{koning}
{\rule{1ex}{1ex}%
\hspace{\stretch{1}}}
{\hspace{\stretch{1}}%
\rule{1ex}{1ex}}
\begin{koning}
Waarde landgenoten,  \ldots
\end{koning}

Waarde landgenoten, …

De parameter aantal wordt op dezelfde manier gebruikt als bij het commando \newcommand. L^{A}TEX verhindert de definitie van een omgeving die reeds onder dezelfde naam bestaat. Als je een bestaande omgeving wilt herdefiniëren, dan gebruik je het commando \renewenvironment. De commando’s in het bovenstaande voorbeeld worden later verklaard: de verklaring van het commando \rule vind je op pagina 86, van \stretch op pagina 80, en meer informatie over \hspace lees je op pagina 79.

5.1.3 Je eigen pakket

Als je een heleboel eigen omgevingen en commando’s definieert, dan wordt de preamble van je document onoverzichtelijk en lang. Als je deze definities bovendien in verschillende documenten wilt gebruiken, dan moet je ze telkens in elke preamble kopiëren. In dat geval is het wellicht een goed idee een L^{A}TEX-pakket te maken dat al je eigen definities bevat. Met het commando \usepackage kun je dan alle definities in één klap inlezen in de preamble. Een pakket schrijven is niet veel meer dan een kopie van alle definities in een afzonderlijk bestand bewaren onder een naam die eindigt op .sty. Er is één speciaal commando, namelijk

 \ProvidesPackage{pakketnaam}

dat aan het begin van het bestand thuishoort. \ProvidesPackage zorgt ervoor dat er een foutmelding verschijnt wanneer je het pakket twee keer probeert in te lezen. Figuur 5.1 geeft een voorbeeld van een pakket dat de commando’s uit de voorgaande voorbeelden bundelt.

5.2 Font en corps

5.2.1 Het font wijzigen

L^{A}TEX kiest automatisch het gepaste font en corps (hoogte van het font, ge-

             % Voorbeeldpakket
             \ProvidesPackage{voorbeeldpakket}
             \newcommand{\R}%
                    {\ensuremath{\mathbb R}}
             \newcommand\meerkeuze[4]{\\
             \begin{tabular}%
                {|p{3cm}p{3cm}p{3cm}p{3cm}|}
                \hline
             (A) #1 & (B) #2 & (C) #3 & (D) #4
                \\ \hline
             \end{tabular}}
             \newenvironment{koning}
              {\rule{1ex}{1ex}%
                   \hspace{\stretch{1}}}
              {\hspace{\stretch{1}}%
                   \rule{1ex}{1ex}}

Figuur 5.1: Voorbeeld van een pakket.

meten van de staartlijn tot de stoklijn), steunend op de logische structuur van het document (grote letters voor titels, kleine letters voor voetnoten, enzovoort). Soms wil je echter zélf bepaalde keuzes opleggen, gebruik daarvoor de commando’s die zijn opgesomd in tabellen 5.1 en 5.2. De uiteindelijke grootte van de letters is een kwestie van ontwerp en hangt af van de documentklasse en de opties. In tabel 5.3 zie je de absolute corpsgrootte voor de belangrijkste commando’s zoals ze worden verwerkt in de standaardklassen.

{\small Al loopt de \textbf{veelterm}
nog zo snel,}
{\Large de exponenti"ele
\textit{achterhaalt hem wel}.}

Al loopt de veelterm nog zo snel, de ex-

ponentiële achterhaalt hem wel.

In L^{A}TEX 2εzijn alle commando’s die het font en het corps regelen onafhankelijk. Je kunt bijvoorbeeld het corps wijzigen zonder oudere commando’s die de cursivering regelen te beïnvloeden. Om het font te wijzigen binnen wiskundige formules, maak je gebruik van de commando’s in tabel 5.4. Om woorden te groeperen gebruik je accolades. Dit is nodig om het bereik van de meeste L^{A}TEX-commando’s aan te duiden.

Tabel 5.1: Fonts.

\textrm{...} roman  \textsf{...} sans serif
\texttt{...}  typewriter
\textmd{...} medium  \textbf{...} vet
\textup{...} recht  \textit{...} cursief
\textsl{...} schuin  \textsc{...} Kleine

Hoofdletters

  \emph{...} benadrukt  \textnormal{...} document font

Tabel 5.2: Corpsgrootte.

\tiny  minuscuul

\scriptsize  enorm klein
\footnotesize heel klein
\small  klein
\normalsize  normaal
\large  groot

\Large heel groot
\LARGE nog groter
\huge enorm groot
\Huge maximaal

Tabel 5.3: Absolute corpsgrootte in punten in de standaardklassen.

size  10pt (standaard) 11pt optie 12pt optie
\tiny  5pt  6pt  6pt

 \scriptsize  7pt  8pt  8pt
 \footnotesize  8pt  9pt  10pt

\small  9pt  10pt  11pt
\normalsize  10pt  11pt  12pt
\large  12pt  12pt  14pt
\Large  14pt  14pt  17pt
\LARGE  17pt  17pt  20pt
\huge  20pt  20pt  25pt
\Huge  25pt  25pt  25pt

Ik hou van {\LARGE grote en
{\small kleine} letters}.

Ik hou van grote en kleine letters.

De commando’s die de corpsgrootte beïnvloeden, passen ook de witruimte tussen de regels aan, maar uitsluitend indien de alinea binnen het bereik van het betrokken commando eindigt. De accolade } die het bereik van zo’n commando afsluit, komt daarom beter niet te vroeg. Bekijk de positie van het commando \par in volgende twee voorbeelden.

{\Large Een school is een
pedagogisch verantwoorde
gevangenis.\par}

Een school is een pedagogisch verantwoorde gevangenis.

{\Large Een school is een
pedagogisch verantwoorde
gevangenis.}\par

Een school is een pedagogisch verantwoorde gevangenis.

Als je het corps wilt wijzigen voor een volledige alinea of meer, dan kun je misschien beter de syntax voor omgevingen gebruiken.

Tabel 5.4: Fonts binnen formules.

Commando  Voorbeeld  Uitvoer

\mathcal{...}     $\mathcal{B}=c$  B = c
\mathrm{...}      $\mathrm{K}_2$  K_{2}
\mathbf{...}      $\sum x=\mathbf{v}$  ∑ x = v
\mathsf{...}      $\mathsf{G\times R}$  G × R
\mathtt{...}      $\mathtt{L}(b,c)$                 L(b, c)
\mathnormal{...}  $\mathnormal{R_{19}}\neq R_{19}$ R_{19} ≠ R_{19}
\mathit{...}      $\mathit{ffi}\neq ffi$  ffi ≠ ffi

\begin{Large}
In het onderwijs
zet men heel wat puntjes
naast de i.
\end{Large}

In het onderwijs zet men heel wat puntjes naast de i.

Dit bespaart je heel wat accolade-telwerk.

5.2.2 Levensgevaar

Zoals we in het begin van deze tekst hebben aangehaald, is het gevaarlijk om aan je documenten te prutsen met expliciete commando’s zoals deze die we in dit hoofdstuk hebben besproken. Je gaat hiermee in tegen het basisprincipe van L^{A}TEX: de opsplitsing van de logische en de visuele opmaak van het document. Als je dezelfde wijzigingen aan het font op verschillende plaatsen uitvoert om een bijzondere soort informatie te onderstrepen, dan gebruik je best een \newcommand die deze wijziging als nieuw commando definieert.

\newcommand{\oesje}[1]{\textbf{#1}}
IJs van minder dan vier centimeter
is \oesje{gevaarlijk} en zeer
\oesje{onvoorspelbaar}.

IJs van minder dan vier centimeter is gevaarlijk en zeer onvoorspelbaar.

Deze aanpak heeft het voordeel dat je enkel de definitie van het nieuwe commando moet wijzigen, als je ooit beslist een andere opmaak gebruiken voor dit soort informatie. Je moet niet het hele document doorlopen om elk \textbf-commando afzonderlijk te wijzigen, waarbij je je telkens zou moeten afvragen of het commando een gevaar onderstreept of om een andere reden werd gebruikt.

5.2.3 Goede raad is duur

Tenslotte een klein advies.

\underline{Onthoud!} Het gebruik van VE EL lettertypenmaakt het

document leesbaarder EN ook heel wat professioneler.

5.3 Witruimte

5.3.1 Witruimte tussen regels

Als je een bredere spatiëring wenst tussen opeenvolgende regels (interlinie), kun je dit wijzigen met het commando

 \linespread{factor}

in de preamble van het document. Gebruik \linespread{1.3} voor “anderhalve” spatie, en \linespread{1.6} voor “dubbele” spatie. Normaal worden regels niet gespreid. De verstekwaarde is dus 1.

5.3.2 Alinea-opmaak

In L^{A}TEX zijn er twee parameters die de opmaak van een alinea bepalen. Een commando, zoals

     \setlength{\parindent}{0pt}
     \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}

in de preamble van de invoertekst, zorgt ervoor dat een nieuwe alinea niet inspringt en vergroot de witruimte tussen twee alinea’s. In onze contreien is dat de standaard. Spijtig genoeg beïnvloeden deze commando’s ook de inhoudstafel: er ontstaat meer witruimte tussen de regels. Om dat te vermijden is het zinvol de beide commando’s achter het commando \tableofcontents te plaatsen. Je kunt de commando’s ook gewoon weglaten, want je kunt vaststellen dat de meeste professionele boeken wél inspringen en geen witruimte tussen alinea’s gebruiken. Als je een niet-inspringende alinea toch wilt laten inspringen, gebruik je het commando

 \indent

aan het begin van de alinea.^{1} Dit heeft natuurlijk enkel zin als \parindent al niet 0 is. Om eenmalig te verhinderen dat een alinea inspringt, gebruik je

 \noindent

als eerste commando in de alinea. Dit is bijvoorbeeld nuttig wanneer je een document begint met een korte inleidende tekst, en niet met een titel.

1Om de eerste alinea van elke sectie te laten inspringen, kun je het pakket indentfirst gebruiken.

5.3.3 Horizontale witruimte

L^{A}TEX bepaalt de spatie tussen woorden en zinnen automatisch. Om extra horizontale witruimte te creëren, gebruik je

 \hspace{lengte}

Als deze witruimte sowieso moet worden ingevoerd (zelfs al komt deze op het einde of in het begin van een regel terecht), dan gebruik je in plaats daarvan het commando \hspace*. De lengte is (in het eenvoudigste geval) een getal en een lengtemaat. De belangrijkste lengtematen worden opgesomd in tabel 5.5.

Dit \hspace{1.5cm} is een ruimte
van 1.5 cm.

Dit is een ruimte van 1.5 cm.

Het commando

 \stretch{n}

genereert een “rubberen” witruimte die zich uitstrekt zodat de overblijvende ruimte op een regel is opgevuld. Als twee \hspace{\stretch{n}} commando’s op één regel voorkomen, dan groeien ze evenredig met de opgegeven factor.

x\hspace{\stretch{1}}
x\hspace{\stretch{3}}x

x  x  x

5.3.4 Verticale witruimte

De witruimte tussen alinea’s, secties, subsecties, … wordt opnieuw automatisch bepaald door L^{A}TEX. Indien nodig kan extra witruimte tussen twee alinea’s worden toegevoegd met het commando

 \vspace{lengte}

Dit commando moet in principe worden gebruikt tussen twee lege regels. Voor witruimte onderaan of bovenaan een bladzijde, gebruik je \vspace* in plaats van \vspace. De commando’s \stretch en \pagebreak kunnen worden gebruikt om tekst te schrijven op de laatste regel van een pagina of om tekst verticaal te centreren.

Tabel 5.5: Lengtematen in TEX.

mm millimeter
cm centimeter
in inch = 25.4 mm
pt punt ≈ 1/72 inch ≈ \frac{1}{3} mm
em de breedte van een ‘M’ in het huidige lettertype
ex de hoogte van een ‘x’ in het huidige lettertype

     Bla bla bla \ldots
     \vspace{\stretch{1}}
     Dit is de laatste regel.\pagebreak

Extra witruimte tussen twee regels van eenzelfde alinea of binnen een tabel wordt gegenereerd met het commando

\\[lengte]

Met \bigskip en \smallskip kun je een voorafbepaalde hoeveelheid verticale witruimte invoegen.

5.4 Pagina-opmaak

L^{A}TEX 2εlaat toe het papierformaat te kiezen als optie bij het commando \documentclass. L^{A}TEX 2εkiest dan zelf de kantlijnen die je wellicht wil kunnen aanpassen. Figuur 5.2 toont alle parameters die kunnen worden aangepast. Deze figuur werd gemaakt met het pakket layout.^{2} WACHT! … je wilt natuurlijk “die smalle pagina’s een beetje breder maken”, maar denk daar eerst even over na. Zoals met de meeste dingen in L^{A}TEX, is er een goede reden om de pagina-opmaak te houden zoals die is. Uiteraard lijken de pagina’s erg smal in vergelijking met een doordeweeks MS Word document. Maar als je even kijkt in je favoriet boek^{3} en het aantal karakters op een regel telt, dan zul je vaststellen dat er nooit meer dan 66 karakters op elke regel staan. Op zo’n “te smalle” L^{A}TEX-pagina staan ook ongeveer 66 karakters per regel. Experimenten hebben bewezen dat de tekst minder goed leesbaar wordt als er meer dan 66 karakters op een regel

2CTAN:/tex-archive/macros/latex/required/tools/

3Wij bedoelen een serieus boek van een bekende uitgeverij.

82  Je eigen L^{A}TEX

Kopregel

Broodtekst

Voetregel Marge Notities

8

7

1 3 10

9

11

2

4 5

6

1   een inch + \hoffset       2   een inch + \voffset
3   \oddsidemargin = 22pt     4   \topmargin = 22pt

    of \evensidemargin

5   \headheight = 13pt        6   \headsep = 19pt
7   \textheight = 595pt       8   \textwidth = 360pt
9   \marginparsep = 7pt      10   \marginparwidth = 106pt
11   \footskip = 27pt              \marginparpush = 5pt (niet getoond)
    \hoffset = 0pt                \voffset = 0pt
    \paperwidth = 597pt           \paperheight = 845pt

Figuur 5.2: Parameters voor pagina-opmaak. staan. Daarom worden kranten en tijdschriften ook in smalle kolommen gedrukt. Dus, als je de breedte van je document vergroot, dan maak je het de lezer moeilijk. Tot zover de preek. L^{A}TEX ondersteunt twee commando’s om de betrokken parameters aan te passen. Meestal verschijnen deze commando’s in de preamble. Het eerste commando wijst een bepaalde waarde toe aan een parameter.

\setlength{parameter}{lengte}

Het tweede commando vergroot de lengte van een parameter.

 \addtolength{parameter}{lengte}

Dit laatste wordt meer gebruikt omdat je dan ten opzichte van reeds bestaande gegevens werkt. Om de tekst bijvoorbeeld een centimeter te verbreden (en opnieuw als tevoren te positioneren via het \hoffsetcommando), voeg je de volgende commando’s toe in de preamble.

     \addtolength{\hoffset}{-0.5cm}
     \addtolength{\textwidth}{1cm}

Het is in dit verband misschien interessant het pakket calc te bestuderen. Dit laat toe om eenvoudige rekenkundige bewerkingen als argument mee te geven.

5.5 Creatief met lengte

Het is nuttig om voor zover mogelijk absolute lengten te vermijden en te werken met reeds bestaande lengten. De breedte van een figuur die de hele pagina moet vullen, wordt dan \textwidth . De volgende drie commando’s laten toe breedte, hoogte en diepte van een stukje tekst te bepalen.

Het volgende voorbeeld illustreert het gebruik van deze commando’s.

\settoheight{lscommand}{tekst} \settodepth{lscommand}{tekst} \settowidth{lscommand}{tekst}

\newenvironment{vardesc}[1]{%
\settowidth{\parindent}{#1:\ }
\makebox[0pt][r]{#1:\ }}{}
\begin{displaymath}
a^2+b^2=c^2
\end{displaymath}
\begin{vardesc}{Waarbij}$a$,
$b$ -- de rechthoekszijden zijn
van een rechthoekige driehoek.
$c$ -- de schuine zijde is.
$d$ -- in het verhaal helemaal
niet voorkomt. Ik vraag me af
waarom.
\end{vardesc}

a^{2} + b^{2} = c^{2}

Waarbij:a, b – de rechthoekszijden zijn van een rechthoekige driehoek.

c – de schuine zijde is.

d – in het verhaal helemaal niet voorkomt. Ik vraag me af waarom.

5.6 Lege dozen

L^{A}TEX bouwt documenten met doosjes en lijm. Elke letter is een klein doosje. Woorden ontstaan door deze doosjes aan elkaar te kleven. Deze woorden worden opnieuw aan elkaar gekleefd om zinnen te vormen, maar met een speciale lijm die voldoende elastisch is opdat zinnen kunnen worden uitgerekt of ingekrompen. Je voelt je wellicht al zwaar beledigd door deze simplistische uitleg. Het is nochtans de realistische werking van TEX. Niet alleen letters zijn doosjes. Ongeveer alles kan in een doos gestoken worden — ook andere dozen. Elke doos wordt door L^{A}TEX behandeld als een enkele letter. In de vorige hoofdstukken ontmoetten we reeds enkele dozen, zonder ze als dusdanig te benoemen. De omgeving tabular en \includegraphics, bijvoorbeeld, genereren een doos. Daardoor kunnen twee tabellen of tekeningen gemakkelijk worden geschikt. Je moet er enkel voor zorgen dat hun totale breedte de tekstbreedte niet overschrijdt.

Je kunt ook een alinea in een doos verpakken met het commando

\parbox[pos]{breedte}{tekst}

of met de omgeving

 \begin{minipage}[pos]{breedte} tekst \end{minipage}

De parameter pos moet gelijk zijn aan c, t of b en regelt de verticale positie van de doos ten opzichte van de basislijn van de gewone tekst. De parameter breedte is een lengtemaat die de breedte van de doos specificeert. Het belangrijkste verschil tussen een minipage en een \parbox is dat je niet alle commando’s en omgevingen binnen een \parbox commando kunt gebruiken, terwijl binnen een minipage quasi alles mogelijk is. Waar het commando \parbox de opmaak van de ingesloten alinea regelt, bestaat er ook een doos die enkel “horizontaal materiaal” mag bevatten. Het commando \mbox is een voorbeeld. Het verpakt een reeks andere dozen in een grote doos en wordt bijvoorbeeld gebruikt om te verhinderen dat L^{A}TEX twee woorden splitst.

\makebox[breedte][pos]{tekst}

De waarde breedte specificeert de breedte van de (buitenafmetingen van de) doos.^{4} De parameter pos bestaat uit één letter: centeren, links uitgelijnd, rechts uitgelijnd of s die de tekst uitsmeert over de volledige breedte van de doos. Het commando \framebox werkt precies op dezelfde manier als \makebox, maar tekent een kader rond de doos. Het volgende voorbeeld illustreert wat je zoal kunt doen met de comman-

do’s \makebox en \framebox .

4Deze breedte kan kleiner zijn dan de breedte van de inhoud. In het bijzonder kan de breedte van de doos 0pt zijn, waardoor de opmaak van de tekst rond de doos volledig onafhankelijk wordt verwerkt van de inhoud van de doos.

86  Je eigen L^{A}TEX

\makebox[\textwidth]{%
    c e n t r a a l}\par
\makebox[\textwidth][s]{%
    g e s p r e i d}\par
\framebox[1.1\width]{Vogeltje,
    gij zijt gevangen!} \par
\framebox[0.8\width][r]{Ik
    barst uit mijn vel} \par
\framebox[1cm][l]{Ik barst
    ook uit mijn vel}
Kun je dit lezen?

c e n t r a a l

g  e  s  p  r  e  i  d

Vogeltje, gij zijt gevangen!

Ik barst uit mijn vel

Ik barst ook uit mijn vel Kun je dit lezen?

Laat ons nu bekijken hoe de dozen verticaal kunnen worden gemanipuleerd. Het commando

\raisebox{opheffen}[diepte][hoogte]{tekst}

definieert de verticale eigenschappen van een doos. Ze worden geïllustreerd in het volgende voorbeeld.

\raisebox{0pt}[0pt][0pt]{\Large%
\textbf{Aaaa\raisebox{-0.7ex}{aaa}%
\raisebox{-1.2ex}{r}%
\raisebox{-2.2ex}{g}%
\raisebox{-4.5ex}{h}}}
riep hij, maar niemand had gemerkt
dat er hem iets vreselijks was overkomen.

Aaaaaaargh riep hij, maar niemand had gemerkt dat er hem iets vreselijks was overkomen.

5.7 Staafjes en stutten

Enkele pagina’s geleden gebruikten we het commando

\rule[opheffen]{breedte}{hoogte}

om verticale en horizontale lijnen te tekenen. Het produceert een zwart staafje dat verticaal verschoven is over een afstand opheffen.

\rule{3mm}{.1pt}%
\rule[-1mm]{5mm}{1cm}%
\rule{3mm}{.1pt}%
\rule[1mm]{1cm}{5mm}%
\rule{3mm}{.1pt}

Een bijzonder geval is een staafje zonder breedte maar met een zekere hoogte, een zogenaamde stut (Engels: strut). Het wordt gebruikt om te garanderen dat een bepaald element op de pagina een zekere hoogte heeft. Zo kun je in een tabular-omgeving een rij een zekere minimumhoogte geven.

\begin{tabular}{|c|}
\hline
\rule{1pt}{4ex}Vlek \ldots\\
\hline
\rule{0pt}{4ex}Stut\\
\hline
\end{tabular}

Vlek … Stut

Bibliografie

[1] Leslie Lamport. L^{A}TEX: A Document Preparation System. Addison-Wesley, Reading, Massachusetts, tweede uitgave, 1994, ISBN 0-201-52983-1.

[2] Donald E. Knuth. The TEXbook, Volume A van Computers and Typesetting. Addison-Wesley, Reading, Massachusetts, tweede uitgave, 1984, ISBN 0-201-13448-9.

[3] Michel Goossens, Frank Mittelbach en Alexander Samarin. The L^{A}TEX Companion. Addison-Wesley, Reading, Massachusetts, 1994, ISBN 0-201-54199-8.

[4] Elke L^{A}TEX installatie zou een zogenaamde L^{A}TEX Local Guide moeten voorzien die uitlegt welke speciale instellingen op het lokaal geïnstalleerde systeem zijn gebeurd. Deze Local Guide zou je in het bestand local.tex moeten vinden. Spijtig genoeg voorzien niet alle systeembeheerders dit document. In dat geval wend je je best tot de plaatselijke L^{A}TEX goeroe voor hulp.

[5] L^{A}TEX3 Project Team. L^{A}TEX 2εfor authors. Komt mee met de L^{A}TEX 2εdistributie als usrguide.tex.

[6] L^{A}TEX3 Project Team. L^{A}TEX 2εfor Class and Package writers. Komt mee met de L^{A}TEX 2ε-distributie als clsguide.tex.

[7] L^{A}TEX3 Project Team. L^{A}TEX 2εFont selection. Komt mee met de L^{A}TEX 2εdistributie als fntguide.tex.

[8] D. P. Carlisle. Packages in the ‘graphics’ bundle. Komt mee met de ‘graphics’ bundel als grfguide.tex, beschikbaar van dezelfde bron als je L^{A}TEX-distributie.

[9] Rainer Schöpf, Bernd Raichle en Chris Rowley. A New Implementation of L^{A}TEX’s verbatim Environments. Komt mee met de ‘tools’ bundel als verbatim.dtx, beschikbaar van dezelfde bron als je L^{A}TEX-distributie.

[10] Graham Williams. The TEX Catalogue. Is een zeer volledige lijst met veel TEX- en L^{A}TEX-gerelateerde pakketten. Online beschikbaar op

CTAN:/tex-archive/help/Catalogue/catalogue.html

[11] Keith Reckdahl. Using EPS Graphics in L^{A}TEX 2εDocuments. Geeft uitleg over alles (en veel meer) wat je altijd al had willen weten over EPS-bestanden en hun toepassing in L^{A}TEX documenten. Online be-

schikbaar op CTAN:/tex-archive/info/epslatex.ps.

Index

Symbolen

\!, 46 ", 22 $, 39 ', 43 \(, 39 \), 39 \,, 41, 46 -, 22 −, 22 \-, 20 –, 22 —, 22 …, 23 \:, 46 \;, 46 \@, 26 \[, 40 \\, 19, 32, 34, 81

\\*, 19

ı en zonder puntje, 24 \], 40 ^, 42 _, 42 |, 34 ~, 22, 26

A

A4-papier, 11 A5-papier, 11 aanhalingsteken, 22 accent, 24, 43

aigu, 24 grave, 24 accolades, 7, 75

                                 \addtolength, 83

æ, 24 alinea, 17

opmaak, 79 amsbsy, 52 amsfonts, 41, 59 amsmath, 44, 45, 47, 49, 50, 52 amssymb, 41, 53

                                 \and, 27
                                 \appendix, 26, 27
                                 \arccos, 44
                                 \arcsin, 44
                                 \arctan, 44
                                 \arg, 44
                                  array, 47

article klasse, 10

                                 \atop, 44
                                 \author, 27

B

B5-papier, 11 babel, 24, 25, 36

                                 \backmatter, 28

backslash, 7

                                 \backslash, 6
                                 \begin, 30

begrenzingstekens, 45 beletselteken, 23 BibTEX, 64

                                 \bibitem, 63
                                 \Big, 45
                                 \big, 45
                                 \Bigg, 45

\underline{92 INDEX}

\bigg, 45
\bigskip, 81
\binom, 44

blackboard bold, 41 bm, 52

\bmod, 44
\boldmath, 52
\boldsymbol, 52

book klasse, 10 breekbaar, 38 breuk, 44

C

calc, 83

\caption, 36, 38
\cdot, 43
\cdots, 46
center, 31
\chapter, 27, 67
\chaptermark, 67
\choose, 44
\ci, 71
\cite, 63
\cleardoublepage, 37
\clearpage, 37
\cline, 34

commando’s, 7 \!, 46 \(, 39 \), 39 \,, 41, 46 \-, 20 \:, 46 \;, 46 \@, 26 \[, 40 \\, 19, 32, 34, 81

\\*, 19

\], 40

\addtolength, 83
\and, 27
\appendix, 26, 27

\arccos, 44
\arcsin, 44
\arctan, 44
\arg, 44
\atop, 44
\author, 27
\backmatter, 28
\backslash, 6
\begin, 30
\bibitem, 63
\Big, 45
\big, 45
\Bigg, 45
\bigg, 45
\bigskip, 81
\binom, 44
\bmod, 44
\boldmath, 52
\boldsymbol, 52
\caption, 36, 38
\cdot, 43
\cdots, 46
\chapter, 27, 67
\chaptermark, 67
\choose, 44
\ci, 71
\cite, 63
\cleardoublepage, 37
\clearpage, 37
\cline, 34
\cos, 44
\cosh, 44
\cot, 44
\coth, 44
\csc, 44
\date, 27
\ddots, 46
\deg, 44
\det, 44
\dim, 44
\discretionary, 21

\underline{INDEX 93}

\displaystyle, 50
\documentclass, 10, 15, 20
\dwaasvoorbeeld, 71, 72

\emph, 29, 76

\end, 30
\exp, 44
\fbox, 21
\footnote, 28, 38
\footnotesize, 76
\frac, 44
\framebox, 85
\frenchspacing, 26
\frontmatter, 28
\fussy, 20
\gcd, 44
\genfrac, 44
\hline, 34
\hoffset, 83
\hom, 44
\hspace, 74, 80
\Huge, 76
\huge, 76
\hyphenation, 20
\idotsint, 47
\iiiint, 47
\iiint, 47
\iint, 47
\include, 16
\includegraphics, 62, 84
\includeonly, 16
\indent, 79
\index, 65, 66
\inf, 44
\input, 16
\int, 45
\item, 30
\ker, 44
\label, 28, 40
\LARGE, 76
\Large, 76
\large, 76

                                  \LaTeX, 21
                                  \LaTeXe, 21
                                  \ldots, 23, 46
                                  \left, 45
                                  \leftmark, 67
                                  \lg, 44
                                  \lim, 44
                                  \liminf, 44
                                  \limsup, 44
                                  \linebreak, 19
                                  \linespread, 79
                                  \listoffigures, 37
                                  \listoftables, 37
                                  \ln, 44
                                  \log, 44
                                  \mainmatter, 28
                                  \makebox, 85
                                  \makeindex, 15, 65
                                  \maketitle, 27
                                  \mathbb, 41
                                  \mathbf, 77
                                  \mathcal, 77
                                  \mathit, 77
                                  \mathnormal, 77
                                  \mathrm, 50, 77
                                  \mathsf, 77
                                  \mathtt, 77
                                  \max, 44

\mbox, 21, 23, 85

                                  \min, 44
                                  \multicolumn, 35
                                  \newcommand, 72, 73
                                  \newenvironment, 73
                                  \newline, 19
                                  \newpage, 19
                                  \newtheorem, 51
                                  \noindent, 79
                                  \nolinebreak, 19
                                  \nonumber, 49
                                  \nopagebreak, 19
                                  \normalsize, 76

\overbrace, 43
\overleftarrow, 43
\overline, 42
\overrightarrow, 43
\pagebreak, 19
\pageref, 28
\pagestyle, 14
\paragraph, 26
\parbox, 85
\parindent, 79
\parskip, 79
\part, 27
\phantom, 38, 49
\pmod, 44
\Pr, 44
\printindex, 66
\prod, 45
\protect, 38
\providecommand, 73
\ProvidesPackage, 74
\qquad, 41, 46

\quad, 41, 46

\raisebox, 86

\ref, 28, 40

\renewcommand, 73
\renewenvironment, 74
\right, 45, 47
\right., 45
\rightmark, 67

\rule, 74, 86

\scriptscriptstyle, 50
\scriptsize, 76
\scriptstyle, 50
\sec, 44

\section, 26, 38, 67

\sectionmark, 67
\setlength, 79, 83
\settodepth, 83
\settoheight, 83
\settowidth, 83
\sim, 22

                                  \sin, 44
                                  \sinh, 44
                                  \sloppy, 20
                                  \small, 76
                                  \smallskip, 81
                                  \sqrt, 42
                                  \stackrel, 44
                                  \stretch, 74, 80
                                  \subparagraph, 26
                                  \subsection, 26
                                  \subsectionmark, 67
                                  \subsubsection, 26
                                  \sum, 45
                                  \sup, 44
                                  \tableofcontents, 27, 28
                                  \tan, 44
                                  \tanh, 44
                                  \TeX, 21
                                  \textbf, 76
                                  \textit, 76
                                  \textmd, 76
                                  \textnormal, 76
                                  \textrm, 50, 76
                                  \textsc, 76
                                  \textsf, 76
                                  \textsl, 76
                                  \textstyle, 50
                                  \texttt, 76
                                  \textup, 76
                                  \thispagestyle, 14
                                  \tiny, 76
                                  \title, 27
                                  \today, 21
                                  \underbrace, 43
                                  \underline, 29, 42

\usepackage, 10, 14, 25, 36,

74

                                  \vdots, 46
                                  \vec, 43
                                  \verb, 33
                                  \verbatiminput, 67

\vspace, 80
\widehat, 43
\widetilde, 43
comment, 8

commentaar, 7 corps, 11, 74, 76 corpsgrootte, 76

\cos, 44
\cosh, 44
\cot, 44
\coth, 44
\csc, 44

cursief, 76

D

\date, 27
\ddots, 46
\deg, 44
description, 30
\det, 44
\dim, 44
\discretionary, 21
displaymath, 40
\displaystyle, 50

doc, 13

\documentclass, 10, 15, 20

documentklasse, 19, 26

article, 26
book, 27
report, 27

drie puntjes, 23, 46 dubbele interlinie, 79 dubbelzijdig, 11 Duits, 25

\dwaasvoorbeeld, 71, 72

E

eenheden, 80, 81 ellips, 23 em-dash, 22 \emph, 29, 76

empty, 14

en-dash, 22 Encapsulated PostScript, 61

\end, 30

enkelzijdig, 11

enumerate, 30
eqnarray, 48
equation, 40

eucal, 59 eufrak, 59 executive paper, 11

\exp, 44

exponent, 42 exscale, 13, 45 extensie, 14

   .aux, 15
   .cls, 15
   .dtx, 15
   .dvi, 15
   .idx, 15
   .ilg, 15
   .ind, 15
   .ins, 15
   .lof, 15
   .log, 15
   .lot, 15
   .sty, 14
   .tex, 14
   .toc, 15

F

fancyhdr, 66, 67

\fbox, 21
figure, 35, 36
flushleft, 31
flushright, 31

font, 74 font codering, 13 font encoding, 13 fontenc, 13, 25 footer, 14

\footnote, 28, 38
\footnotesize, 76

formules, 39

\frac, 44

fragile, 38

\framebox, 85
\frenchspacing, 26
\frontmatter, 28
\fussy, 20

G

\gcd, 44
\genfrac, 44

geometry, 68 gereserveerde karakters, 6 graden, 23 graphicx, 62 Griekse letters, 42 groeperen, 75

H

haakjes, 45 header, 14

headings, 14
\hline, 34
\hoffset, 83
\hom, 44

horizontale accolade, 43 lijn, 42 puntjes, 46 witruimte, 80

\hspace, 74, 80
\Huge, 76
\huge, 76

hyphenat, 68

\hyphenation, 20

I

\idotsint, 47

ifthen, 13

\iiiint, 47
\iiint, 47
\iint, 47

illustraties, 10

\include, 16
\includegraphics, 62, 84
\includeonly, 16
\indent, 79

indentfirst, 79 index, 42, 64

\index, 65, 66
\inf, 44

inhoudstafel, 27

\input, 16

inputenc, 13, 25 inspringen, 79

\int, 45

integraal-operator, 45 interlinie, 79 invoertekst, 9

\item, 30
itemize, 30

K

\ker, 44

klasse, 9 article, 10 book, 10 report, 10

kleine hoofdletters, 76 kleurtekst, 10 Knuth, Donald E., 1 komma, 23 koppelteken, 22

L

\label, 28, 40

Lamport, Leslie, 2 lange uitdrukkingen, 48

\LARGE, 76
\Large, 76
\large, 76
\LaTeX, 21

L^{A}TEX 2.09, 2 L^{A}TEX 2ε, 2 L^{A}TEX3, 2

\LaTeXe, 21

latexsym, 13 layout, 81

\ldots, 23, 46
\left, 45
\leftmark, 67

legal paper, 11 lengtematen, 80 letter paper, 11 lettergrootte, 11

\lg, 44

ligatuur, 23 liggend streepje, 22

\lim, 44
\liminf, 44
\limsup, 44
\linebreak, 19
\linespread, 79

links gealigneerd, 31 uitgelijnd, 31

\listoffigures, 37
\listoftables, 37
\ln, 44
\log, 44

longtabular, 35

 lscommand, 71

M

\mainmatter, 28
\makebox, 85

makeidx, 13, 64

\makeindex, 15, 65

makeindex programma, 64

\maketitle, 27
 math, 39
\mathbb, 41
\mathbf, 77
\mathcal, 77

mathematische accenten, 43 begrenzingstekens, 45 fontgrootte, 49 functies, 43 spatiering, 46

                                  \mathit, 77
                                  \mathnormal, 77
                                  \mathrm, 50, 77

mathrsfs, 59

                                  \mathsf, 77
                                  \mathtt, 77
                                  \max, 44

\mbox, 21, 23, 85 meeteenheden, 80

                                  \min, 44
                                   minipage, 85

minteken, 22

Mittelbach, Frank, 2 modulo-functie, 44

                                  \multicolumn, 35

N

                                  \newcommand, 72, 73
                                  \newenvironment, 73
                                  \newline, 19
                                  \newpage, 19
                                  \newtheorem, 51

niet-Engelstalige teksten, 24

                                  \noindent, 79
                                  \nolinebreak, 19
                                  \nonumber, 49
                                  \nopagebreak, 19
                                  \normalsize, 76

O

œ, 24

omgeving, 30 omgevingen

                                       array, 47
                                       center, 31
                                       comment, 8
                                       description, 30
                                       displaymath, 40
                                       enumerate, 30

eqnarray, 48
equation, 40
figure, 35, 36
flushleft, 31
flushright, 31
itemize, 30
lscommand, 71
math, 39
minipage, 85
quotation, 32
quote, 32

table, 35, 36

tabular, 33, 84
thebibliography, 63
verbatim, 32, 67
verse, 32

opmaak

pagina, 81 optie, 10 optionele parameters, 7

\overbrace, 43

overfull hbox, 19

\overleftarrow, 43
\overline, 42
\overrightarrow, 43

P

package, 8, 10 page style, 14

\pagebreak, 19
\pageref, 28
\pagestyle, 14

pagina-opmaak, 81 pagina-opmaakstijl, 14

empty, 14
headings, 14
plain, 14

pakket, 8, 10, 71

makeidx, 64 pakketten

amsbsy, 52 amsfonts, 41, 59 amsmath, 44, 45, 47, 49, 50, 52 amssymb, 41, 53 babel, 24, 25, 36 bm, 52 calc, 83 doc, 13 eucal, 59 eufrak, 59 exscale, 13, 45 fancyhdr, 66, 67 fontenc, 13, 25 geometry, 68 graphicx, 62 hyphenat, 68 ifthen, 13 indentfirst, 79 inputenc, 13, 25 latexsym, 13 layout, 81 longtabular, 35 makeidx, 13, 64 mathrsfs, 59 showidx, 66 supertabular, 35 syntonly, 13, 16 verbatim, 8, 67

papierformaat, 11, 81

\paragraph, 26

parameter, 7

\parbox, 85
\parindent, 79
\parskip, 79
\part, 27
\phantom, 38, 49

pijltje, 43 plaatsspecificatie, 36

plain, 14
\pmod, 44

PostScript, 61

\Pr, 44

preamble, 8

\printindex, 66
\prod, 45

produkt-operator, 45

\protect, 38
\providecommand, 73
\ProvidesPackage, 74

punt, 23

Q

\qquad, 41, 46

\quad, 41, 46

 quotation, 32
 quote, 32

R

\raisebox, 86

recht, 76 rechts

gealigneerd, 31 uitgelijnd, 31

\ref, 28, 40 regelafstand, 79

\renewcommand, 73
\renewenvironment, 74

report klasse, 10

\right, 45, 47
\right., 45
\rightmark, 67

roman, 76 \rule, 74, 86

S

sans serif, 76 Scandinavische letters, 24 schuin, 76

\scriptscriptstyle, 50
\scriptsize, 76
\scriptstyle, 50
\sec, 44

\section, 26, 38, 67

\sectionmark, 67
\setlength, 79, 83
\settodepth, 83

                                  \settoheight, 83
                                  \settowidth, 83

showidx, 66

                                  \sim, 22
                                  \sin, 44
                                  \sinh, 44
                                  \sloppy, 20
                                  \small, 76
                                  \smallskip, 81

sommatie-operator, 45

spatie, 6

speciale karakters, 24

splitsing, 20

                                  \sqrt, 42
                                  \stackrel, 44

stelsels van vergelijkingen, 48

                                  \stretch, 74, 80

structuur, 8 strut, 87 stut, 87

                                  \subparagraph, 26

subscript, 42

                                  \subsection, 26
                                  \subsectionmark, 67
                                  \subsubsection, 26
                                  \sum, 45
                                  \sup, 44

superscript, 42 supertabular, 35 syntonly, 13, 16

T

taal, 24 tabel, 33 table, 35, 36

                                  \tableofcontents, 27, 28
                                   tabular, 33, 84
                                  \tan, 44
                                  \tanh, 44
                                  \TeX, 21
                                  \textbf, 76
                                  \textit, 76

\textmd, 76
\textnormal, 76
\textrm, 50, 76
\textsc, 76
\textsf, 76
\textsl, 76
\textstyle, 50
\texttt, 76
\textup, 76
 thebibliography, 63
\thispagestyle, 14

tilde, 43 tilde (~), 22, 26

\tiny, 76

titel, 11, 27

\title, 27
\today, 21

trema, 24 typewriter, 76

U

umlaut, 24, 25

\underbrace, 43

underfull hbox, 20

\underline, 29, 42

\usepackage, 10, 14, 25, 36, 74

V

\vdots, 46
\vec, 43

vectoren, 43

\verb, 33

verbatim, 8, 67

 verbatim, 32, 67
\verbatiminput, 67
 verse, 32

verticale puntjes, 46 witruimte, 80

verwijzingen, 28 vet, 76 vette symbolen, 41, 52 vierkante haken, 7 vierkantswortel, 42 voordelen van L^{A}TEX, 4

                                  \vspace, 80

W

                                  \widehat, 43
                                  \widetilde, 43

wiskunde, 39

witruimte, 19, 73, 79 aan het begin van een regel, 6 achter een commando, 7 achter punt, 26 horizontale, 80 tussen regels, 79 tussen woorden, 26 verticale, 80 woordsplitsing, 20 WYSIWYG, 2, 4

INDEX  101