LATEX ACM Student Chapter Pieter Belmans
De les van vandaag
Na deze les weet je in grote lijnen hoe LATEX werkt en kan je al een volwaardige basistekst schrijven.
Overzicht Inleiding Software Wat u moet weten Tekstopmaak
Aanpak van de cursus Vier lessen, de woensdagmiddagen 16, 23 en 30 november en 7 december telkens van 2 tot 5. Er is een pauze voorzien. Ik voorzie slides waarin in kort alles toelicht, voor meer informatie verwijs ik naar The Not So Short Introduction to LATEX 2ε , meer bepaald de Nederlandse versie die te downloaden is op http://ctan.org/tex-archive/info/lshort/dutch. Vanaf nu: lshort-dutch. Andere goede bronnen: 1. Wikibooks: http://en.wikibooks.org/wiki/LaTeX 2. TeX.SX: http://tex.stackexchange.com 3. Google
Opbouw van de cursus Min of meer gelijklopend met lshort-dutch maar met mijn eigen voorkeuren, de planning: eerste week inleiding, installatie, eerste stappen tweede week bibliografieën, uitzicht, tabellen en figuren derde week wiskunde, “gevorderde” technieken vierde week naar keuze (waarschijnlijk het (mooi) invoegen van code en het maken van presentaties)
Geruststelling
Ik ga geen geschiedenisles geven. Voor de geïnteresseerden, ik heb een TechTalk (of TEXtalk zo u wil) gegeven hierover: zie http://acmantwerp.acm.org/wp-content/uploads/2010/10/ textalk.pdf
Bedoeling van de cursus Op een paar lessen alles vertellen dat ik na meerdere jaren LATEX gebruiken heb geleerd is onmogelijk, daarom: I
op gang helpen: zelf (basis)documenten kunnen maken;
I
zelfredzaam worden: er is enorm veel informatie te vinden op het internet;
I
best practices: dingen waarvan ik nu denk dat ik ze zelf vroeger had moeten leren maar die te weinig aan bod komen in de meeste tutorials.
Waarom LATEX?
Tijd voor een eerste stukje interactie. Shoot.
Deze slides Ik hou me aan volgende conventie:
Deze slides Ik hou me aan volgende conventie:
Waarschuwing Every time you ignore this, God kills a kitten.
Deze slides Ik hou me aan volgende conventie:
Waarschuwing Every time you ignore this, God kills a kitten.
Opmerking Hierin vertel ik wat er onderhuids gebeurt, geef ik alternatieven, . . .
Overzicht Inleiding Software Wat u moet weten Tekstopmaak
Werkwijze
LATEX is geen programma, het is een (programmeer)taal en document preparation system. Abstract gezien doen we het volgende: 1. we schrijven code; 2. we geven deze aan een programma (pdflatex in ons geval) dat de code begrijpt; 3. we krijgen output (een pdf of errors).
Editor Aan de tweede en derde stap kunnen we weinig veranderen, de eerste kunnen we wél zo aangenaam mogelijk proberen te maken door: I
zo weinig mogelijk zelf te moeten typen;
I
syntax highlighting;
I
errors markeren;
I
bad boxes aanduiden;
I
templates voor veelgebruikte documenten;
I
...
Thuis Moet je eerst zelf MiKTEX (of TEX Live) installeren, download hiervoor de Basic MiKTEX 2.9 installer van miktex.org. Linuxgebruikers: sowieso TEX Live. Moet je vervolgens je favoriete LATEX editor installeren. Aangezien jullie nog geen voorkeuren hebben wordt dit TEXmaker. Download de installatiebestanden op http://xm1math.net/texmaker/ en na installatie zou alles moeten werken.
Thuis Moet je eerst zelf MiKTEX (of TEX Live) installeren, download hiervoor de Basic MiKTEX 2.9 installer van miktex.org. Linuxgebruikers: sowieso TEX Live. Moet je vervolgens je favoriete LATEX editor installeren. Aangezien jullie nog geen voorkeuren hebben wordt dit TEXmaker. Download de installatiebestanden op http://xm1math.net/texmaker/ en na installatie zou alles moeten werken.
Alternatieven Ook te overwegen: TEXstudio, TEXworks (bijgeleverd met MiKTEX), TEXnicCenter (oud maar populair), . . .
In de computerklas MiKTEX is geïnstalleerd dus daar moeten we ons geen zorgen over maken. Maar hoe TEXmaker gebruiken? Download hiervoor de stand-alone versie, het bestand heet texmakerwin32usb.zip en pak dit uit. Open nu texmaker.exe
In de computerklas MiKTEX is geïnstalleerd dus daar moeten we ons geen zorgen over maken. Maar hoe TEXmaker gebruiken? Download hiervoor de stand-alone versie, het bestand heet texmakerwin32usb.zip en pak dit uit. Open nu texmaker.exe
Thuis Enkel in de computerklas gebruiken we de stand-alone versie, thuis mag je het programma gerust installeren.
Screenshot
Instellingen wijzigen 1. ga naar Opties > Texmaker instellen 2. plaats het volledige pad naar pdflatex bij PdfLaTeX "C:/Program Files/MikTeX 2.9/miktex/bin/pdflatex.exe" [...] -interaction=nonstopmode %.tex 3. plaats het volledige pad naar bibtex bij BibTex en verwijder .aux "C:/Program Files/MikTeX 2.9/miktex/bin/bibtex.exe" %
Test
Typ volgende code over en druk op F1. Er zou iets moeten verschijnen. \documentclass{article} \begin{document} Hello world. \end{document}
Overzicht Inleiding Software Wat u moet weten Tekstopmaak
Witruimte Witruimte gedraagt zich niet zoals in pakweg Microsoft Word. Enkele regels: I
spaties, tabs en regeleindes zijn allemaal equivalent met één spatie;
I
opeenvolgende witruimte wordt samengevoegd;
I
twee regeleindes na elkaar vormen = nieuwe alinea;
I
er zijn (uiteraard) uitzonderingen (zie verbatim).
Speciale karakters
Zoals in andere programmeertalen zijn er bepaalde symbolen met een bepaalde betekenis: $ & % # _ { } ~ ^ \ De belangrijkste voor het moment zijn: \, {, } en %, voor commando’s en commentaar.
Speciale karakters: voorbeeld \section{Voorbeeld} Dit is een voorbeeldzin. % iets interessants schrijven Dit is een~\emph{tweede} zin. % commentaar op een nieuwe regel, \emph{test} doet niets
Aan de slag Werk verder in je testdocument (tussen \begin{document} en \end{document}) en druk op F1 als je klaar bent.
Escaping
Wat als we toch zo’n speciale karakters wensen te gebruiken? Door ze te prefixen met een \: \$ $ \& & \% % \# # \_ _ \{ { \} } En \ dan? Hiervoor gebruik je \textbackslash, je zou geneigd zijn om \\ te gebruiken maar dit heeft een speciale betekenis.
Commando’s I
begint met een backslash, gevolgd door een naam (enkel letters!);
I
hoofdlettergevoelig;
I
wordt beëindigd door een spatie (volgende tekst wordt er meteen achter geplaatst);
I
kan parameters meekrijgen (later meer).
\LaTeX is leuk \\ 2 \LaTeX~is leuk \\ 3 \LaTeX{} is leuk 1
LATEXis leuk LATEX is leuk LATEX is leuk
Terug naar het testbestand
Dit zou je nog steeds ergens opgeslagen moeten hebben (eventueel terug leegmaken). Zo nee mag je het nogmaals overtypen. \documentclass{article} \begin{document} Hello world. \end{document}
Nu wat uitgebreider \documentclass{article} \author{John Doe} \title{Mijn eerste \LaTeX-document} \begin{document} \maketitle Hello world. \end{document}
Structuur preamble bevat de configuratie van het bestand, zie je niet rechtstreeks in de output I \documentclass{}, I packages, I definities van commando’s. document alles tussen \begin{document} en \end{document}, de eigenlijke tekst
\documentclass{} \documentclass{hclassi} beschrijft het soort document, in LATEX zijn (onder andere) voorzien: article korte verslagen, artikels report langere verslagen, cursussen letter brieven (automatische hoofdingen, handtekeningen, etc.) maar er zijn ook nog (onder meer) memoir veel meer controle over layout beamer voor slides (u ziet hier het resultaat)
\documentclass{}: opties \documentclass[hoptiesi]{hclassi} hnipt lettergrootte, default is 10pt, n ∈ {10, 11, 12} a4paper papierformaat, default is het Amerikaanse letterpaper titlepage zorgt voor een titelpagina, article default niet, report en book wel, ook notitlepage ... Zie lshort-dutch voor meer.
Uitgebreid voorbeeld met correcte opties \documentclass[a4paper,11pt]{article} \usepackage[dutch]{babel} \author{John Doe} \title{Mijn eerste \LaTeX-document} \begin{document} \maketitle Hello world. \end{document}
Packages
Het wiel heruitvinden is nergens voor nodig, daarom zijn er packages die specifieke problemen oplossen. \usepackage[hoptiesi]{hnaami}
Voorbeelden van packages babel bevat informatie over talen, meestal te gebruiken met optie [dutch] amsmath maakt wiskunde schrijven makkelijker amsfonts wiskundige lettertypes: R, m amssymb symbolen die met wiskunde te maken hebben (zie ook http://ctan.org/tex-archive/info/ symbols/comprehensive): lim, ,→, . . . − → graphicx werken met afbeeldingen ...
Gebruik van packages Lawinegevaar Gebruik enkel packages in je document die je daadwerkelijk nodig hebt, kopieer niet telkens dezelfde lijst om er dan nog aan toe te voegen. Je krijgt op den duur conflicten. Packages hebben vaak erg goede documentatie, gebruik deze: http://ctan.org/pkg/hnaami
Gebruik van packages Lawinegevaar Gebruik enkel packages in je document die je daadwerkelijk nodig hebt, kopieer niet telkens dezelfde lijst om er dan nog aan toe te voegen. Je krijgt op den duur conflicten. Packages hebben vaak erg goede documentatie, gebruik deze: http://ctan.org/pkg/hnaami
Oefening Probeer dit voor amsmath, pgf en thmtools.
Eigenlijke document
\begin{document} % alles hiertussen vormt je document \end{document} zal vaak een \maketitle bevatten, de rest komt later
Ons afgewerkte voorbeeld \documentclass[a4paper,11pt]{article} \usepackage[dutch]{babel} \usepackage{amsfonts} \author{John Doe} \title{Mijn eerste \LaTeX-document} \begin{document} \maketitle De gehele getallen worden aangeduid met~$\mathbb{Z}$. \end{document}
Overzicht Inleiding Software Wat u moet weten Tekstopmaak
Overzicht
Tekstopmaak De structuur van tekst Speciale karakters en symbolen Verwijzingen Stijl van het lettertype wijzigen Omgevingen
Lokale structuur Alles draait om alinea’s. Een nieuwe alinea beginnen gebeurt door twee witregels te maken: Dit is een eerste alinea. Dit is een tweede alinea. Dit is geen derde alinea, de nieuwregel wordt genegeerd. Gebruik deze om je tekst lokaal structuur te geven.
Andere manieren voor lokale structuur
I
een regel afbreken (dus een nieuwe starten): \\ of \newline;
I
een nieuwe pagina beginnen: \clearpage en \newpage;
I
nog wat varianten: zie lshort-dutch.
Een wijze raad: ik gebruik deze zo goed als nooit, er is geen reden om aan te nemen dat jullie ze wel excessief nodig hebben, je doet misschien iets verkeerd in dat geval.
Opmerking bij \clearpage en \newpage
De enige echte waarheid \clearpage zorgt er voor dat tabellen en figuren die nog getypeset moeten worden geplaatst worden voor de nieuwe pagina, bij \newpage gebeurt dit niet. Er zijn ook \nopagebreak[hn i], \pagebreak[hn i] en \nolinebreak[hn i] die een bepaalde mate van het doorbreken der voorgeprogrammeerde regels bepalen.
Globale structuur Om hoofdstukken en varianten aan te duiden gebruiken we commando niveau opmerking \part{} \chapter{} \section{} \subsection{} \subsubsection{} \paragraph{} \subparagraph{}
-1 0 1 2 3 4 5
niet niet niet niet niet niet niet
in in in in in in in
letter letter en article letter letter letter letter letter
Wat niet te doen?
I
zelf alinea’s forceren met behulp van \\;
I
zelf met vette tekst, eigen nummeringen of wat dan ook structuur proberen aan te brengen;
I
te veel niveaus gebruiken: ik heb nog nooit \subsubsection{} of \subparagraph{} gebruikt;
I
...
\tableofcontents
\tableofcontents LATEX maakt automatisch een inhoudsopgave op basis van de gebruikte \section{}-commando’s en aanverwanten. Om de diepte te controleren: \setcounter{tocdepth}{3}
\tableofcontents
Tip Voeg \usepackage{hyperref} toe aan je preamble om een inhoudsopgave in je pdf reader te krijgen.
Overzicht
Tekstopmaak De structuur van tekst Speciale karakters en symbolen Verwijzingen Stijl van het lettertype wijzigen Omgevingen
Aanhalingstekens
We willen als resultaat “test”, gebruik hiervoor ‘‘test’’ dus eerst back-ticks en daarna vertical quotes.
Tip Gebruik nooit ". Het resultaat: "test".
Enkele aanhalingstekens
Heel simpel: gewoon één back-tick om te openen en één vertical quote om te sluiten. ‘test’
‘test’
Liggende streepjes
Niet minder dan viér soorten liggende streepjes: naam input output doel hyphen en dash em dash minteken
---$-$
– — −
splitsen in lettergrepen reeksen jaartallen, pagina’s, . . . gedachtestreepje in wiskundige uitdrukking
Liggende streepjes: voorbeeld
vergeet-me-nietje, $n$-dimensionaal pagina’s 480--492, 1939--1945, de vlucht New York--London Jan gaf de pennenzak --- inclusief slijper --- aan Tim. Hoeveel is~$5-3$?
Het beletselteken
Niet zo... maar zo. . . (in dit lettertype maakt het weinig verschil, in andere gevallen wél) Niet zo... maar zo\ldots
Accenten
ò ¯o ˘o œ ø ı
\‘o \=o \u o \oe \o \i
ó o˙ ˇo Œ Ø
\’o \.o \v o \OE \O \j
ô ö ő æ ł ¡
\^o \"o H o \ae \l !‘
õ ç o¸ Æ Ł ¿
\~o \c \c o \AE \L ?‘
Accenten: de belangrijke I
accent grave 1
\‘a
I
à accent aigu é cédille ç
1
\’e
1
\c c
1
\"a \"e \"{e}
I
I
trema äëë
Taal en woordsplitsing Een klein uitstapje: herinner je de lessen Nederlands nog waar je leerde splitsen in lettergrepen? LATEX doet dit automatisch voor je! 1. \usepackage[dutch]{babel} 2. afbreking verhinderen: \mbox{} 3. je kan het handmatig aanpassen indien nodig (bijvoorbeeld via \hyphenation{} en \discretionary{}{}{} of lokaal met \-), zie lshort-dutch
Taal en woordsplitsing: voorbeelden \hyphenation{Fortran wis-kun-de} \discretionary{diner-}{tje}{dineetje} elementaire\-deeltjes\-fysica\-fanaat \mbox{bestand} Ik wijs je op het bestaan hiervan voor moest je ooit in een situatie komen waarbij het grondig fout loopt, maar ik heb het nog nooit nodig gehad.
Spatiegebruik Er zijn drie soorten spaties: de gewone spatie ␣, de tilde ˜ en \␣. Gebruik de eerste bij gewone tekst, de tweede als non-breakable space en de derde wanneer een punt bij een afkorting geen einde van een zin aanduidt of na een commando (waarom?). gewone tekst LATEX is leuk ik zag 2 beren
gewone tekst \\ \LaTeX\ is leuk \\ 3 ik zag 2~beren 1 2
Franse stijl
LATEX gebruikt een iets bredere spatie na het einde van een zin, wil je dit niet, gebruik dan \frenchspacing.
Overzicht
Tekstopmaak De structuur van tekst Speciale karakters en symbolen Verwijzingen Stijl van het lettertype wijzigen Omgevingen
Verwijzingen We kunnen verwijzen naar objecten met een nummer: I
hoofdstukken,
I
figuren,
I
tabellen,
I
alinea’s,
I
opsommingen,
I
...
Markers Maak een label aan met \label{hmarker i}. Een tip: voeg aan de marker toe wat voor type het is: \label{fig:zeemeeuw} \label{figure:zeemeeuw} \label{enumerate:pythagoras-2}
Figuren en tabellen We weten nog niet hoe we deze maken, maar het label komt na de caption! Het commando \label{} onthoudt enkel de laatst gegenereerde nummer.
Verwijzen Door \ref{hmarker i} en \pageref{hmarker i}, de eerste geeft een numerieke identificatie (het hoofdstuknummer, de opsomming, . . . ), de tweede de pagina waarop deze zich bevindt.
Two passes LATEX werkt hier met een two-pass systeem: je moet je document twee keer builden om het resultaat te zien: de eerste keer slaat hij op waar welke verwijzingen staan, de tweede keer kan hij ze ook weergeven.
Voorbeeld \section{Meeuwen} \label{sec:meeuw} Meeuwen zijn vogels. \section{Conclusie} In Hoofdstuk~\ref{sec:meeuw} op pag.~\pageref{sec:meeuw} zagen we dat meeuwen vogels zijn.
Spatiegebruik Merk op dat wat we geleerd hebben over spatiegebruik hier belangrijk is!
Voetnoten Een simpel commando: \footnote{htekst i}. Voetnoten\footnote{Zoals deze.} zijn populair bij \LaTeX-gebruikers.
Voetnotitis Overdrijf niet met voetnotena . a
Nee, écht niet.
Let ook goed op de interpunctie, zoals in het voorbeeld duidelijk wordt.
Overzicht
Tekstopmaak De structuur van tekst Speciale karakters en symbolen Verwijzingen Stijl van het lettertype wijzigen Omgevingen
Nadruk
Er zijn verschillende manieren om nadruk te leggen: onderlijnen, schuin, vet of gewoon benadrukt. LATEX weet zelf wat goed is, probeer dus niet je eigen wil op te dringen. Vette en onderlijnde tekst wordt afgeraden en wat als je binnen een schuingedrukt stuk tekst nog iets wil benadrukken?
Nadruk: voorbeelden
onderlijnd italic slanted vet typewriter benadrukt
\underline{onderlijnd} \\ \textit{italic} \\ 3 \textsl{slanted} \\ 4 \textbf{vet} \\ 5 \texttt{typewriter} \\ 6 \emph{benadrukt} 1 2
Slanted vs. italic
Slanted type is gewone tekst maar enigszins verbogen, italic is een ander font waarin dus de letters daadwerkelijk anders zijn. Mijn voorkeur ligt bij slanted. Dit is slanted tekst en dit is italic. Zoals je ziet is er in dit lettertype spijtig genoeg geen verschil, maar laten we het eens zelf proberen.
Waarom nu \emph?
\emph{Dit is een benadrukte tekst, \emph{let op} voor de extra nadruk} Deze situatie komt bijvoorbeeld voor als je stellingen en definities opschrijft, je je quotation omgeving aanpast, . . .
Overzicht
Tekstopmaak De structuur van tekst Speciale karakters en symbolen Verwijzingen Stijl van het lettertype wijzigen Omgevingen
Omgevingen We zagen reeds commando’s, maar LATEX ondersteunt ook grotere entiteiten: \begin{hnaami}{hoptiesi}[hoptiesi] ... \end{hnaami}
Omgevingen We zagen reeds commando’s, maar LATEX ondersteunt ook grotere entiteiten: \begin{hnaami}{hoptiesi}[hoptiesi] ... \end{hnaami}
Opmerking De syntax zoals ik ze hier schets is niet helemaal wat er écht gebeurt, maar dit is (gelukkig voor jullie) geen cursus TEX hacken.
Lijsten
We hebben 3 omgevingen voor lijsten: itemize ongenummerde opsomming enumerate genummerde opsomming description beschrijvingen (u ziet er één)
itemize
\begin{itemize} 2 \item eerste item; 3 \item tweede item; 4 \item derde item 1
I
eerste item;
I
tweede item;
I
derde item Een nieuwe alinea.
5
Een nieuwe alinea. 7 \end{itemize} 6
enumerate
\begin{enumerate} 2 \item eerste item; 3 \item tweede item; 4 \item derde item 1
1. eerste item; 2. tweede item; 3. derde item Een nieuwe alinea.
5
Een nieuwe alinea. 7 \end{enumerate} 6
description
\begin{description} \item[hond] kwijlend zoogdi 3 \item[walvis] zeezoogdier 4 \item[Willy] bekend kalf 5 \end{description} 1
hond kwijlend zoogdier walvis zeezoogdier Willy bekend kalf
2
description
\begin{description} \item[hond] kwijlend zoogdi 3 \item[walvis] zeezoogdier 4 \item[Willy] bekend kalf 5 \end{description} 1
hond kwijlend zoogdier walvis zeezoogdier Willy bekend kalf
2
Tijdsgewrocht Merk op welke Woestijnvisreeks op het moment van opstellen populair was.
Nesting Deze lijsten kunnen meerdere niveaus diep gaan: 1. dit is een eerste item op het eerste niveau 2. dit is een tweede item op het eerste niveau I I
dit is een eerste item op het tweede niveau en dit een tweede
3. dit is een derde item op het eerste niveau 3.1 we kunnen ook genummerd nesten
Waarschuwing Overdrijf niet!
Uitlijnen
I
links uitlijnen: \begin{flushleft}...\end{flushleft}
I
rechts uitlijnen: \begin{flushright}...\end{flusright}
I
centreren: \begin{center}...\end{center}
Centreren bij tabellen of figuren
We hebben nog niet gezien hoe tabellen of figuren werken, maar hier is al a word of advice:
\centering Gebruik de \centering macro als je figuren of tabellen wil centreren, hier komt geen extra verticale witruimte bij.
Verbatim Om tekst letterlijk over te nemen heb je verbatim nodig: inline is dit \verb|...\verb| waar | eender welk karakter behalve letters, een asterisk of een spatie mag zijn. \verb*|twee spaties| geeft twee␣␣spaties. Grotere stukken doe je met een omgeving: \begin{verbatim} ... \end{verbatim}
Heb ik dit nodig?
Bijvoorbeeld output van Matlab, R. Voor code kan het ook gebruikt worden maar beter is om hier listings of minted te gebruiken.
Heb ik dit nodig?
Bijvoorbeeld output van Matlab, R. Voor code kan het ook gebruikt worden maar beter is om hier listings of minted te gebruiken.
Laatste les Is er hier interesse voor? Momenteel is er hier iets kleins over voorbereid.
Abstract
Een korte inhoud geven doe je simpelweg via \begin{abstract} korte inhoud \end{abstract}
Opgave
Met wat we geleerd hebben moet het mogelijk zijn om de “opgave” die ik nu uitdeel na te maken. Aarzel niet om vragen te stellen. Het is mogelijk om de opgave exact na te maken, door wat ik de beste manier om te TEX’en vind toe te passen en die jullie gewoon moeten leren wat mij betreft :).