Auteurs: TD en Klintersaas
Deze handleiding vervangt onze vroegere "FAQ: Hoe werk ik met LaTeX?". Je kan die FAQ nog steeds nalezen, naast tips vind je er tal van vragen en antwoorden rond veelvoorkomende problemen. Suggesties over deze cursus zijn welkom in deze topic; je kan hier ook raad vragen aan anderen voor allerhande vragen i.v.m. LaTeX.
1. Inleiding
1.1 Wat is LaTeX?
Als je al eens op dit forum hebt rondgekeken en dan vooral naar topics die te maken hebben met wiskunde of wiskundige formules bevatten, heb je waarschijnlijk al gezien dat het lettertype van wiskundige formules afwijkt van de gewone tekst. Met gewone tekst kun je eigenlijk niet duidelijk formules weergeven, maar met behulp van \(\LaTeX\)(uitspraak: la-tech) lukt dat wél:
\(F(\omega) = \frac{1}{\sqrt{2\pi}} \int_{-\infty}^{+ \infty} f(t) e^{- i \omega t}\, \mbox{d}t\)
\(\LaTeX\) (een uitbreiding van \(\TeX\)) is een soort opmaaktaal: het is een computertaal waarmee je aan de hand van codes je tekst en formules een gewenste opmaak kan geven. LaTeX kan gebruikt worden om hele documenten op te maken, als alternatief voor programma's zoals bijvoorbeeld Microsoft Word.
Een groot voordeel van LaTeX is dat je er heel goed wiskundige formules mee kan weergeven en dat is precies waar het hier voor gebruikt wordt. Deze microcursus legt dus enkel uit hoe LaTeX op dit forum werkt. Voor uitgebreidere informatie verwijzen we naar:
- Wikipedia NL: LaTeX
- Wikipedia EN: LaTeX
- De officiële LaTeX-site
- Een uitgebreide LaTeX-handleiding (Engels)
- The Comprehensive LaTeX Symbol List
- De Nederlandstalige LaTeX-site van de Universiteit Gent
Vooraleer je met LaTeX kunt werken, moet je weten hoe deze 'taal' werkt. Zoals hierboven gezegd bestaat LaTeX uit zgn. 'codes'. Wanneer je de juiste code ingeeft en je bericht plaatst, zorgt de forumsoftware er vervolgens voor dat deze code wordt omgezet in een afbeelding van de gewenste formule.
Wanneer je een bericht schrijft en je wil LaTeX gebruiken om een formule weer te geven, dan moet je aangeven waar je formule begint en eindigt. Op deze manier weet het forum welk stuk uit je tekst uit LaTeX-codes bestaat en dus omgezet moet worden in een afbeelding van de formule. Hiervoor moet je de LaTeX-code ingeven tussen zgn. BBcodetags. Dit systeem ken je mogelijk al, aangezien ook de andere opmaakcodes van dit forum (vet, onderstreept, cursief, gekleurd,...) zo werken. Zoals de tag voor vette tekst 'b' is en de tag voor cursieve tekst 'i', zo is de tag voor LaTeX 'tex'. Voor meer informatie over BBcode, zie het Help-item Berichtopmaak: Algemene introductie: werken met BBcodes.
Een code komt steeds tussen twee van deze tags: je opent met 'tex' en je sluit met '/tex'. Een tag wordt altijd tussen rechte haken geplaatst.
Voorbeeld:
Code: Selecteer alles
[tex]a + b = c[/tex] en [tex]x = \frac{y}{z}[/tex]
SCHERMWEERGAVE:
\(a + b = c\)
en \(x = \frac{y}{z}\)
Dit is zeker in het begin een heel goede manier om LaTeX te leren: je klikt op de formules in de berichten van andere gebruikers en je kijkt welke LaTeX-code bij die formule hoort. Je kunt de code eventueel ook kopiëren in je eigen bericht en aanpassen.
Er bestaat buiten 'tex' nog een tweede LaTeX-tag, nl. 'itex' (de 'i' staat voor 'inline'). Met deze tag kun je LaTeX verkleind laten weergeven, bijvoorbeeld wanneer je een formule in een doorlopende tekst wil weergeven. Voor aparte formules op volledige grootte gebruik je de gewoon 'tex'.
Voorbeeld:
Code: Selecteer alles
In deze regel is met behulp van de tag 'itex' de formule [itex]x = \frac{y}{z}[/itex] verkleind weergegeven.
SCHERMWEERGAVE:
In deze regel is met behulp van de tag 'itex' de formule \(x = \frac{y}{z}\) verkleind weergegeven.
Nu je weet hoe LaTeX werkt, kunnen we beginnen aan het echte werk: zelf formules maken met LaTeX.2. Formules opmaken met LaTeX
De voorbeelden die hieronder gegeven worden zijn slechts enkele van de vele mogelijkheden. Een vollediger overzicht van LaTeX-codes kan je hier vinden. Dat bestand is ook te bereiken via de link 'Overzicht LaTeX Codes (pdf)' onder je conceptberichtvenster:
Opmerking:
- De functies van LaTeX worden hieronder uitgelegd a.d.h.v. voorbeelden. Naast deze voorbeelden staat hun code, waarin de voor de besproken functie relevante gedeelten in kleur zijn aangeduid;
- Wanneer je zelf deze codes gebruikt, vergeet dan niet de codetags [ tex ] en [ /tex ] te plaatsen (zonder spaties tussen de vierkante haken, die enkel bedoeld zijn om de tags hier zichtbaar te maken).
We kunnen binnen LaTeX een onderscheid maken tussen verschillende groepen codes. De eenvoudigste groep is die van de variabelen. Om variabelen weer te geven kan je gewoon letters gebruiken. In LaTeX-vorm worden deze dan cursief weergegeven:
\(a, b, c, d, ..., x, y, z\) |
a, b, c, d, ..., x, y, z
|
\(a,\ b,\ c,\ d,\ ...,\ x,\ y,\ z\) |
a,\ b,\ c,\ d,\ ...,\ x,\ y,\
|
Zoals je ziet, zijn variabelen in LaTeX weinig spectaculair. Ze verschillen nauwelijks van letters in gewone tekst.
2.1.1 Exponenten en indices (super- en subscript)
De LaTeX-codes voor superscript (voor de notatie van exponenten; tekens in superscript komen hoger te staan dan de andere tekst) en subscript (voor de notatie van indices; tekens in subscript komen lager te staan dan de andere tekst) zijn redelijk eenvoudig. Voor superscript gebruikt men '^', voor subscript '_':
\(a^b\) en \(a_b\) |
a^b en a_b
|
Om meer dan één teken in super- of subscript weer te geven, gebruik je accolades:
\(a^{bc}\) en \(a_{bc}\) |
a^{bc} en a_{bc}
|
Het is mogelijk om in LaTeX een pijl (zoals voor vectoren) een streep, of een accolade boven of onder een (aantal) variabelen te plaatsen:
\(\vec{v}\) |
\vec{v}
|
\(\overrightarrow{abc}\) |
\overrightarrow{abc}
|
\(\overline{abc}\) |
\overline{abc}
|
\(\underbrace{abc}\) |
\underbrace{abc}
|
Wil je tekst onder zo'n accolade, dan doe je dat als volgt:
\(\underbrace{abc}_{\mbox{tekst}}\) |
\underbrace{abc}_{\mbox{tekst}}
|
De tweede belangrijke groep codes wordt gevormd door de functies en commando's. Deze onderscheiden zich van de variabelen doordat ze steeds voorafgegaan worden door een backslash. Hierdoor worden ze herkend als commando's en worden ze recht weergegeven i.p.v. cursief.
2.2.1 Goniometrische, cyclometrische en hyperbolische functies
Goniometrische (sinus, cosinus, tangens ...), cyclometrische (boogsinus, boogcosinus, boogtangens ...) en hyperbolische (sinus hyperbolicus, cosinus hyperbolicus, tangens hyperbolicus ...) functies worden weergegeven met behulp van een backslash om duidelijk weer te geven dat het om een functie gaat, niet om een product van bijvoorbeeld de variabelen s, i en n:
\(\sin\) i.p.v. \(sin\) |
\sin i.p.v. sin |
Voor een volledige lijst van dergelijke functies, zie de pdf onderaan dit bericht, en daarin paragraaf 5: Standard Function Names.
Uiteraard hoort bij elk van deze functies ook een argument. Het argument zetten we tussen accolades (of eventueel tussen haakjes) achter de functie:
\(\sin{x}\) |
\sin{x}
|
\(\sin(x)\) |
[indent=40][color=#808080]\sin([/color]x[color=#FF0000])[/color][/indent]
Deze functies worden op dezelfde manier gemaakt en weergegeven als die uit 2.2.1. Een lijstje met de codes en hun weergave vind je hieronder:
\(\log\) |
\log
|
\(\ln\) |
\ln |
\(\log_a(x)\) |
\log_a(x)
|
\(^a\log(x)\) |
[indent=40][color=#FF0000]^a[/color][color=#808080]\log(x)[/color][/indent]
[indent=40]
Een breuk geef je weer met de code \frac{}{}. Tussen het eerste paar accolades komt de teller, tussen het tweede paar de noemer:
\(\frac{abc}{xyz}\) |
\frac{abc}{xyz}
|
Een wortel geef je weer met de code \sqrt{}. Tussen de accolades zet je het argument. De horizontale streep van het wortelteken wordt zo over het héle argument doorgetrokken:
\(\sqrt{1024}\) |
\sqrt{1024}
|
Tussen de rechte haken kan je aangeven om welke wortel het gaat:
\(\sqrt[3]{29}\) |
\sqrt[3]{29}
|
Voor een eenvoudige vierkantswortel kun je de rechte haken weglaten.
2.2.4 Limieten en integralen
Een limiet geef je weer met de code \lim_{}. Tussen de accolades komt hetgeen je onder het limietsymbool wil, erachter schrijf je de functie.
\(\lim_{x \to 0} \frac{\sin{x}}{x}\) |
\lim_{x \to 0} \frac{\sin{x}}{x}
|
\(\lim_{x \uparrow 0} \frac{\sqrt{x^2}}{x}\) |
\lim_{x \uparrow 0} \frac{\sqrt{x^2}}{x} |
\(\int_a^b f(x) \,\mbox{d}x\) |
\int_a^b f(x) \,\mbox{d}x
|
\(\int\limits_a^b f(x) \,\mbox{d}x\) | [indent=40][color=#808080]\int[/color][color=#008000]\limits_a[/color]^[color=#0000FF]b[/color] f(x) [color=#FF0000]\,\mbox{d}x[/color][/indent] |
Een kringintegraal geef je weer met de code \oint:
\(\oint_C f \, \mbox{d}s\) |
\oint_C f \, \mbox{d}s
|
Een sommatie geef je weer met de code \sum. De sommatie-index en de grenzen geven we in m.b.v. sub- en superscript (zie 2.1.1):
\(\sum^5_{i=2} 2^i = 2^2 + 2^3 + 2^4 + 2^5 = 60\)
: [ tex ]\sum^5_{i=2} 2^i = 2^2 + 2^3 + 2^4 + 2^5 = 60[ /tex ]\(\prod^5_{i=2} 2^i = 2^2 \cdot 2^3 \cdot 2^4 \cdot 2^5 = 16384\)
: [ tex ]\prod^5_{i=2} 2^i = 2^2 \cdot 2^3 \cdot 2^4 \cdot 2^5 = 16384[ /tex ]Begrenzingssymbolen (ronde, rechte en andere haakjes, accolades ...) worden veelvuldig gebruikt in formules en zijn dan ook belangrijk in LaTeX. Sommige begrenzingssymbolen hebben geen specifieke LaTeX-code, maar kunnen rechtstreeks ingegeven worden, andere wel (\cdots is de LaTeX-code voor drie puntjes):
\(( \cdots )\)
\([ \cdots ]\)
[ \cdots ]\(| \cdots |\)
| \cdots |\(< \cdots >\)
< \cdots >\(\{ \cdots \}\)
\{ \cdots \} \(\| \cdots \|\)
\| \cdots \|
\(1 + \left( \frac{\sin{2x}}{\cos{2x}} - x \right)\)
: [ tex ]1 + \left( \frac{\sin{2x}}{\cos{2x}} - x \right)[ /tex ]\(1 + ( \frac{\sin{2x}}{\cos{2x}} - x )\)
: [ tex ]1 + ( \frac{\sin{2x}}{\cos{2x}} - x )[ /tex ]De wiskunde kent een hele hoop symbolen, die stuk voor stuk hun eigen LaTeX-code hebben. Voor een volledig overzicht, zie de pdf onderaan dit bericht of hier.
Als je de negatie van een symbool wil weergeven (bv. "er bestaat geen" i.p.v. "er bestaat"), kan je de doorstreepte versie verkrijgen door de code van het symbool te laten voorafgaan door \not. Voor sommige symbolen die veel voorkomen (zoals "is niet gelijk aan") bestaat een aparte code (\neq).
\(\exists\)
en \(\not \exists\)
: [ tex ]\exists[ /tex ] en [ tex ]\not \exists[ /tex ]\(=\)
en \(\neq\)
: [ tex ]=[ /tex ] en [ tex ]\neq[ /tex ]Het is mogelijk om functies en commando's in LaTeX te 'nesten' (= 'in elkaar te schrijven'). Dit doe je simpelweg door het ene commando binnen het andere te schrijven. Hier zal nog maar eens het belang van accolades blijken.
\(\sqrt{x + \sqrt{x + \sqrt{x}}}\)
: [ tex ]\sqrt{x + \sqrt{x + \sqrt{x}}}[ /tex ]\(\sqrt{\frac{x}{y}}\)
: [ tex ]\sqrt{\frac{x}{y}}[ /tex ]\(\frac{\sin{\sqrt[3]{x}}}{\cos{\sqrt[5]{x}}}\)
: [ tex ]\frac{\sin{\sqrt[3]{x}}}{\cos{\sqrt[5]{x}}}[ /tex ]Het is eveneens mogelijk om sub- en superscript (zie 2.1.1), over- en underline en andere (zie 2.1.2) tegelijkertijd te gebruiken:
\(A^{1}_{1},\ A^{1}_{2},\ A^{1}_{3}\)
: [ tex ]A^{1}_{1},\ A^{1}_{2},\ A^{1}_{3}[ /tex ]\(\overbrace{a,\ b,\ \underbrace{c,\ d,\ e,\ f}}\)
: [ tex ]\overbrace{a,\ b,\ \underbrace{c,\ d,\ e,\ f}}[ /tex ]Denk eraan dat je tekst onder en boven de accolades kunt zetten:
\(\overbrace{a,\ b,\ \underbrace{c,\ d,\ e,\ f}}_{\mbox{tekst onder}}}^{\mbox{tekst boven}}\)
: [ tex ]\overbrace{a,\ b,\ \underbrace{c,\ d,\ e,\ f}}}_{\mbox{tekst onder}}}^{\mbox{tekst boven}[ /tex ]LaTeX heeft eveneens codes voor letters afkomstig uit een alfabet anders dan het onze (bijvoorbeeld het Griekse of het Hebreeuwse). Deze codes zijn redelijk eenvoudig: ze bestaan uit een backslash en de (Engelse) naam van de letter. Je vindt ze hier onder '1. Greek and Hebrew letters':
\(\tan{\alpha}\)
: [ tex ]\tan{\alpha}[ /tex ]\(\aleph_0\)
: [ tex ]\aleph_0[ /tex ]Als je een hoofdletter wilt i.p.v. een kleine letter, laat je de naam van de letter gewoon met een hoofdletter beginnen:
\(\delta\)
en \(\Delta\)
: [ tex ]\delta[ /tex ] en [ tex ]\Delta[ /tex ]\(\nn,\ \zz,\ \qq,\ \rr,\ \cc\)
: [ tex ]\nn,\ \zz,\ \qq,\ \rr,\ \cc[ /tex ]Alhoewel LaTeX op dit forum in de eerste plaats bedoeld is voor het weergeven van wiskundige en natuurkundige formules, kan het voorkomen dat je ook tekst (bijvoorbeeld een eenheid of een voorwaarde) in LaTeX wilt zetten. Om deze tekst te onderscheiden van variabelen is er het commando \mbox{}.
\(U\ \mbox{(in volt)} = R\ \mbox{(in ohm)} \cdot I\ \mbox{(in ampère)}\)
: [ tex ]U\ \mbox{(in volt)} = R\ \mbox{(in ohm)} \cdot I\ \mbox{(in ampère)}[ /tex ]\(\frac{98\ \mbox{g/mol}}{10\ \mbox{g}} = 9,8\ \mbox{mol}\)
: [ tex ]\frac{98\ \mbox{g/mol}}{10\ \mbox{g}} = 9,8\ \mbox{mol}[ /tex ]3 Foutmeldingen
Maak je een fout in je LaTeX-code, dan kunnen er verschillende dingen gebeuren:
- Onverwachte weergave
Onvolledig getypte codes (bijvoorbeeld \fra i.p.v. \frac ), vergeten backslashes, enz. geven de gekste resultaten.
We vergeten bijvoorbeeld de rode accolade: [ tex ] \frac{123}{456}[ /tex ].
Dat levert de volgende formule op:
\(\frac123}{456}\)in plaats van\(\frac{123}{456}\) - Foutmelding
Vindt LaTeX géén accolade waar hij er per se een nodig meent te hebben, dan krijg je een foutmelding.
We vergeten bijvoorbeeld de rode accolade: [ tex ] \frac{123}{456}[ /tex ].
Dat levert de volgende foutmelding op:
[unparseable or potentially dangerous latex formula] - Géén weergave
De LaTeX-weergave verschijnt eenvoudigweg niet. In plaats daarvan krijg je een aantal blanco regels in je voorbeeldbericht. Wanneer je daar met je cursor overheen beweegt zul je dit venstertje zien verschijnen:
Dit betekent dat het wel degelijk om een LaTeX-afbeelding gaat, maar dat deze op dit forum niet weergegeven kan worden. LaTeX kent namelijk een hele hoop uitbreidingen en extra pakketten, maar op dit forum is enkel de standaard geïnstalleerd.