9. LaTeX#
9.1. Over LaTeX#
LaTeX is een tekstverwerker, net als Microsoft Word. LaTeX brengt echter een aantal voordelen met zich mee die het ontzettend geschikt maakt om te gebruiken voor artikelen en verslagen.
In dit hoofdstuk leer je dan ook stap voor stap wat je nodig hebt om je eerste verslag in LaTeX te schrijven. Voor het schrijven zal gebruik worden gemaakt van Overleaf, een online LaTeX editor. Houd wel in gedachte dat er meerdere alternatieven zijn voor Overleaf, zowel online als offline. Een voorbeeld van een goed alternatief voor de offline editor is TexStudio. En geavanceerder: je kunt Overleaf en Git aan elkaar koppelen en vervolgens werken in VisualStudioCode…
Tip
Net als met Python geldt dat je het internet kunt raadplegen als je iets niet weet. Begin hierbij op Google, door bijvoorbeeld te zoeken naar “LaTeX” \(+\) datgene wat je wilt doen (in het Engels). StackExchange komt vaak als een van de eerste resultaten. Dit is altijd een goede bron van informatie, waar vaak antwoorden staan op vragen waar jij ook mee zit. Ook ChatGPT kan goed helpen met LaTeX.
Opdracht: Overleaf account
Maak een account aan bij https://overleaf.com/ . Dit kan met je NetID. Klik hiervoor op “Log in through your institution”. Hiermee krijg je ook een gratis premium account.
9.2. Opstarten van LaTeX#
In deze Opdracht: zul je gebruik maken van een template van het practicum, zodat je niet zelf aan de opmaak hoeft te sleutelen. Voer de volgende Opdracht: uit om het practicum template verslag in Overleaf te laden.
Opdracht: Je eerste project
Download eerst het template verslag van IE-1 van Brightspace (de .zip file). Klik in Overleaf op new project en selecteer vervolgens upload project om het verslag wat je in van Brightspace hebt gehaald in Overleaf te zetten (zonder het .zip bestand uit te pakken). Je hebt nu je eerste LaTeX project geopend!
Een document schrijven in LaTeX is eigenlijk een beetje als programmeren. Je vertelt de computer wat hij moet doen met behulp van code, die vervolgens wordt gecompileerd tot een pdf.
9.3. De preamble#
Een LaTeX document begint altijd met een preamble. In de preamble laad je packages in (net als Python), maak je de opmaak en begin je het document. In de preamble mag dus nog geen inhoudelijke tekst van je document. In het template verslag is er al een opmaak gemaakt en zijn er alvast een aantal packages ingeladen. Wil je later toch een andere opmaak? Om hiermee te beginnen zijn er online (bijvoorbeeld op Overleaf zelf) een hele hoop templates te vinden die je net als dit template kunt inladen in Overleaf.
Verder is het goed om te weten dat wanneer een regel voorafgaat met ‘%’, de regel overgeslagen wordt door de compiler. Dit werkt hetzelfde als ‘#’ in Python. Tenslotte, wanneer je iets hebt aangepast, kun je op de ‘Recompile’ knop klikken om en nieuw voorbeeld van je verslag te compileren.
Opdracht: Preamble
Voer de volgende Opdracht:en uit zodat je begrijpt wat de preamble precies doet:
Zoek het command
\begin{document}
op inmain.tex
en verwijder deze tijdelijk. Doe hetzelfde voor\end{document}
. Wat gebeurt er als je het bestand opnieuw compileert?Zoek de plaats waar de packages ingeladen worden met het commando
\usepackage{}
. Waar zijngraphicx
ennatbib
voor?Pas alles op het titelblad aan zodat de informatie voor jou klopt. Kijk hiervoor in de main.tex file en de title.tex file.
9.4. Inhoud#
Nu de layout is gemaakt, kun je aan de slag met de inhoud. Het is belangrijk om een goede structuur in je document te hebben. Hiermee blijft je verslag overzichtelijk. In het template verslag is deze structuur gemaakt door middel van \chapter
en \section
. Hiermee creëer je hoofdstukken en secties.
Opdracht: Toevoegen van een section
Splits het hoofdstuk resultaten en discussie in twee secties. Gebruik hiervoor het command \section{}
. Wat gebeurt er als je \section*{}
gebruikt?
Je kunt eenvoudig verwijzen naar de hoofdstukken en secties door ze te labelen. Dit doe je door het commando \label{<<NAAM>>}
toe te voegen achter het commando voor je hoofdstuk of sectie. Vervolgens kun je in de tekst hiernaar verwijzen met het commando \ref{<<NAAM>>}
.
Opdracht: Toevoegen van verwijzing
Verwijs in je resultaten terug naar het hoofdstuk experimentele methode.
Om verder overzicht te houden is het handig om verschillende hoofdstukken in verschillende .tex bestanden te schrijven. Gebruik \input
om deze hoofdstukken vervolgens in je hoofdbestand main.tex te zetten.
Opdracht:
Maak een nieuw .tex bestand aan en noem deze ‘Discussie’. Begin in dit bestand een nieuwe chapter met de naam conclusie. Voeg deze tenslotte toe aan je main.tex door gebruik te maken van het \input{}
command.
Tip
Als je een nieuw .tex bestand maakt voor een nieuw hoofdstuk, zorg dan dat de naam geen spaties bevat. Dit kan errors in LaTeX opleveren.
9.5. Formules#
Een van de grote voordelen van het gebruiken van LaTeX zijn formules. Formules komen in twee vormen: (1) Inline, door gebruik te maken van de enkele dollar tekens: $y=4x$
of met \(y=4x\)
. (2) Op een nieuwe regel door gebruik te maken van de environment equation: \begin{equation}
& \end{equation}
.
Opdracht: Maken van een formule
Neem een kijkje op deze site. Zet de volgende formule als oefening in LaTeX. Het is hiervoor nodig dat je het package amsmath
toevoegt aan de preamble. \(f^{(n)}(a) = \frac{n!}{2\pi i}\oint_C \frac{f(z)}{(z-a)^{n+1}}\dd{z}\)
Tip
Als je iets tussen haakjes wilt zetten gebruikt dan \left ( ... \right )
om de grootte van de haakjes aan te laten passen aan de inhoud.
Bijvoorbeeld: \(\begin{aligned} \text{zonder:} \hspace{1em}(\frac{1}{x})^2 && \text{met:} \hspace{1em} \left (\frac{1}{x}\right )^2 \end{aligned}\)
Mocht je er niet direct uitkomen, dan kunnen de volgende sites wellicht helpen.
Opdracht: Formule maken
Maak de formule voor het doorrekenen van onzekerheden in je experiment in de volgende vorm en zet deze in je resultaten sectie: $\(u(Z) = \sqrt{\left(\frac{\partial Z}{\partial A}\right)^2 u(A)^2 + \left(\frac{\partial Z}{\partial B}\right)^2 u(B)^2 + ...}\)$ Probeer zowel de inline equation als de equation environment uit. Wat past hier het beste?
Wanneer je de equation environment gebruikt, kun je vergelijkingen net als secties labelen om er daarna naar te kunnen verwijzen. Het label plaats je in dit geval binnen de equation environment.
Opdracht: Toevoegen van label
Voeg een label toe aan de formule voor het doorrekenen van onzekerheden en verwijs er naar terug.
Tip
Om het overzichtelijk te houden kun je de verschillende soorten labels laten voorgaan met prefixes. Bijvoorbeeld sec voor secties, eq voor equations, fig voor figuren en tab voor tabellen. Dit doe je door \label{fig:<<xxx>>}
. Geef ook een naam die het duidelijk maakt voor jezelf waar je naar terug verwijst.
Voorbeeld
Eerder zagen we dat we formules kunnen gebruiken in LaTeX. \(\label{voorbeeld:fig:tudelft_logo} A = b \cdot C \times D + E_{subscript} - F^{superscript} + \int_{0}^{1} x dx + \frac{\partial G}{\partial H} / \cos{I}\)
Hieronder is de code weergeven die gebruikt is om het bovenstaande stuk tekst te krijgen.
\begin{equation}\label{voorbeeld:fig:tudelft_logo}
A = b \cdot C \cross D + E_{subscript} - F^{superscript} + \int_{0}^{1} x dx + \frac{\partial G}{\partial H} / \cos{I}
\end{equation}
9.6. Tabellen#
Tabellen zijn een van de dingen die wat lastiger zijn in LaTeX dan in bijvoorbeeld Word. De makkelijkste manier om een tabel te maken is de tabel te maken in Excel en deze te importeren met een online tool. Een voorbeeld van zo’n tool is: table generator.
Opdracht: Tabel maken
Zet je resultaten van het practicum in een tabel in de resultaten sectie. Vergeet je tabel geen label en een bovenschrift te geven!
Voorbeeld
Het volgende stuk code
\begin{table}[H]
\centering
\caption{Voorbeeld tabel}
\begin{tabular}{|l||c r|}\hline
$L \pm 0.2$ (cm) & $f_\textrm{blaas} \pm 3 $ (Hz) &
$f_\textrm{comp} \pm 3$ (Hz) \\ \hline \hline
39.5 & 211 & 214 \\ \hline
36.5 & 229 & 231 \\ \hline
33.5 & 250 & 252 \\ \hline
30.5 & 275 & 277 \\ \hline
\end{tabular}
\label{latex_voorbeel_tabel}
\end{table}
geeft de tabel:
Hier is gebruik gemaakt van |l||c r|
om de bepalen of een kolom, links, midden of rechts begint, de |
wordt gebruikt om aan te geven waar een scheidingslijn komt. Het teken & wordt gebruikt om aan te geven wat het volgende element in een rij is en het commando hline
wordt gebruikt om de horizontale lijnen te krijgen.
9.7. Afbeeldingen#
In LaTeX kun je afbeeldingen toevoegen door gebruik te maken van het figure
environment. Wanneer je dit environment gebruikt, voegt Overleaf automatisch de commando’s toe waarmee je de afbeelding kunt inladen. De afbeelding zelf laad je in met het commando \includegraphics
.
Om de grootte van de figuur te regelen, kun je de volgende optie aan je figuur toevoegen: [width=0.75\textwidth]
. Met dit commando wordt de breedte van je figuur aangepast naar een fractie van de tekst breedte.
Opdracht:
Voer de volgende Opdracht:en uit:
Voeg de grafieken van de metingen tijdens het practicum toe als figuren in de resultaten sectie.
Geef de figuren onderschriften.
Refereer naar je figuur met
\(auto)ref{label}
.Varieer de grootte van je figuur en kijk wat het beste past.
Voor een extra uitdaging: Zet twee van je grafieken naast elkaar door gebruik te maken van \subfigure{}
. Zorg ervoor dat beide afbeeldingen een eigen onderschrift hebben. Ook moet je totale figuur een onderschrift hebben.
Voorbeeld Afbeeldingen
Om een figuur in te voegen kun je de volgende code gebruiken:
\begin{figure}
\centering
\includegraphics[width=0.5\linewidth]{Figures/logo.jpg}
\caption{Het TU Delft logo}
\label{voorbeeld:fig:tudelft_logo}
\end{figure}
Deze code geeft vervolgens als output:
Tip
Figuren worden het mooiste als je ze opslaat als .eps bestand. Omdat je plots dan worden opgeslagen als vector, blijft de resolutie behouden als je de grootte aanpast. Hiervoor moet je wel de package epstopdf
laden.
9.8. Plaats van tabellen en afbeeldingen#
Zoals je misschien is opgevallen, komen de figuren en tabellen soms niet op de plaats terecht waar je ze bedoeld hebt. Het plaatsen van de figuren en tabellen, ook wel floats genoemd, gebeurt automatisch in LaTeX. De floats worden op de plaats gezet waar ze het beste passen in je document, zodat er zo min mogelijk witruimte ontstaat. Soms kan het handig zijn om echter zelf te bepalen waar de float terecht komt. Om dit te doen kun je zogenoemde placement specifiers gebruiken die je als optie toevoegt aan je environment:
\begin{figure}[specifier]
Opdracht:
Probeer de verschillende placement specifiers ‘h’, ‘t’, ‘b’ en ‘H’ uit. Voor placement specifier ‘H’ heb je het package \usepackage{float}
nodig.
9.9. Samenvatting#
Als je de documentclass report gebruikt: (dit kun je zien bij \``documentclass{}
in de preamble) heeft een speciale environment voor de samenvatting. Deze ku je, net als de andere environments beginnen met het commando \begin{environment}
en \end{environment}
. Waarbij je in dit geval abstract gebruikt als environment. In het template is de samenvatting al gemaakt.
Opdracht:
Schrijf een samenvatting over je afgelopen experiment op de goede plaats in het template verslag.
9.10. Inhoudsopgave#
Het maken van een inhoudsopgave gaat heel gemakkelijk in LaTeX. Wanneer je de commando’s \chapter
, \section
en \subsection
gebruikt, worden deze automatisch toegevoegd. Ook de paginanummers en namen van de kopjes worden automatisch geüpdate al je ze besluit te veranderen. Om LaTeX de inhoudsopgave zelf te laten maken, gebruik je het commando \tableofcontents
.
Opdracht:
Zoek waar de inhoudsopgave gemaakt wordt in het LaTeX template. Verander vervolgens tijdelijk de naam van je kopjes en kijk wat er gebeurt in de inhoudsopgave.
9.11. Referenties#
Om een referentielijst te maken, gebruik je het package natbib
. Dit package kun je gebruiken door \usepackage{natbib}
toe te voegen aan je preamble. In het template is dit al voor je gedaan. De referenties zelf voeg je toe aan de bibliography file bibliography.bib
. In het template staan een paar voorbeelden van hoe je een referentie in de bibliography file zet.
Om je bibliografie te laten werken moet je LaTeX vertellen hoe deze moet worden gestructureerd. Dit doe je moet het commando \bibliographystyle{<<xxx>>}
. In de template is gekozen voor de stijl unsrt
.
Opdracht:
Refereer naar een bron in je verslag door eerst een referentie toe te voegen in de .bib file. Verwijs vervolgens naar deze bron met het commando \cite{label}
. Kun je de referentie in je bestand vinden?
Opdracht:
Zoek online welke stijlen er behalve unsrt nog meer zijn en verander de de stijl van je bibliografie tijdelijk.
Als je wilt verwijzen naar een bepaalde site, dan heb je het package \usepackage{url}
nodig. De referentie in de .bib file ziet er als volgt uit:
@misc{andor2016,
author = {Andor Technologies ltd},
title = {Zyla 5.5 sCMOS},
howpublished = {\url{http://www.andor.com/scientific-cameras/neo-and-zyla-scmos-cameras/zyla-55-scmos}},
note = {retrieved June 9 2016},
}
Opdracht:
Voeg voor je verslag een referentie toe naar een site die je hebt gebruikt als bron.
9.12. Verslag#
Opdracht:
Maak de rest van je verslag af in LaTeX.
9.13. Extra: Tips {#extra-tips .unnumbered}#
Nieuwe pagina:
\newpage
or\clearpage
Forceer een enter:
\\
Kijk een keer naar het commando
\autoref
Een handige tool voor het schrijven van vergelijkingen: Mathpix
Tot slot: Als je een error krijgt bij het compileren, zoek dan op internet naar je fout. Je bent vast niet de eerste (en de laatste) die met dat probleem zit.