dokumentskrivning i latex - en introduktionhx/latex-presentation.pdf · 2019-11-19 ·...
TRANSCRIPT
Dokumentskrivning i LATEX - En introduktion
Henrik Henriksson
1
LATEX?
• Vad är LATEX?
• Hur fungerar LATEX?
• Att skriva med LATEX• Löptext, rubriker, textformatering• Listor, matematik, kod• Figurer, referenser, bibliografi
• Olika dokumenttyper
• Att använda LATEX i praktiken - demo
• Installation• Kompilering• Onlineeditors och
all-in-one-lösningar
2
LATEX?
Vad är LATEX?
• Ett system för typsättning
• En kompilator som äter kod ochspottar ut PDF-filer
• Smidigt och flexibelt
• Snyggt
Vad är LATEX inte?
• Word
• “Peka-klicka-skriv”
• Utan inlärningskurva
• En lösning på alla problem
3
Varför inte bara Word?
Word
• Bra på små korta enkla texter
• ”Akademiska” funktioner är ditlagda iefterhand
• Finns inget sätt att versionshantera
• Mycket pill för att få ett ”proffsigt”dokument
• Primärt en ordbehandlare
LaTeX
• Bra på större mer komplexadokument
• Skapat av (en) akademiker förakademiker (sig själv)
• Enkelt att versionshantera
• Ser ”proffsigt” ut medstandardinställningar
• Primärt ett typsättningsverktyg
4
Förr, när det var bättre
• I begynnelsen var TEX, som uppstod i början på80-talet när Donald Knuth skulle trycka en andraupplaga av The Art of Computer Programming ochtyckte att provtrycket såg fult ut.
• TEX är, om än snyggt, aningen omständigt attskriva, så man skapade LATEX, ett“standardbibliotek”.
5
Så hur ser det ut?
• Eftersom LATEX är råtext så kan manskriva i valfri editor
• I princip alla populära editors harnågot slags stöd för LATEX
• Det finns färdiga utvecklingsmiljöer,till exempel TEXstudio eller Gummi
• Lättast att komma igång med äronlinetjänster som Overleaf ochShareLaTeX
6
Overleaf
7
Hur skriver man LATEX?
Hur skriver man LATEX?
Beskriv vad man menar, inte hur man vill att det ska se ut.
8
Anatomi
LATEX-dokument delas alltid upp i två delar, preamble och det faktiska innehållet
• Preamble• Val av dokumenttyp• Import av olika paket• Inställningar för dokumentet
• Innehåll• Brödtext• Rubriker• Bilder
9
Lite Kod
1 \documentclassarticle % Val av dokumenttyp2 \usepackage[utf 8] inputenc % Importer och inställningar3 \usepackage[T1] fontenc % Trevligt med UTF -8.4 \usepackage[swedish ]babel % Vi skriver på svenska56 \titleTextredigerare % Sätt en titel på dokumentet7 \begindocument % Påbörja innehållet!8 \maketitle % Generera en titel åt oss9 \sectionEmacs % En rubrik tack!
10 Emacs rekommenderas starkt , % Brödtext11 men inte som initsystem.12 \enddocument % Slut på innehåll. Tack för fisken.
10
Lite Resultat
Textredigerare
7 februari 2018
1 EmacsEmacs rekommenderas starkt, men inte som initsystem.
1
11
Att skriva TEX
• Brödtext1 Lorem ipsum dolor sit amet ,2 consectetur adipiscing elit ,3 sed do eiusmod tempor.
• Kommandon1 \command2 \command\3 \commandcontent4 \command[optional , key=value] content
• Miljöer1 \beginenvironment2 innehåll3 \endenvironment
12
Innehåll
Vi börjar enkelt
1 Lorem ipsum dolor sit amet ,2 consectetur adipiscing elit.34 Ut enim ad minim veniam , quis5 nostrud exercitation ullamco6 laboris nisi ut aliquip ex ea7 commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipiscingelit.
Ut enim ad minim veniam, quis nostrud exerci-tation ullamco laboris nisi ut aliquip ex ea commodoconsequat.
113
Rubriker
1 %\chapterKapitel2 \sectionHej!3 \subsectionHej igen!4 \subsubsectionNja , lite djupt5 nästlat6 \paragraphNamngivna stycken är7 trevligt8 Brödtext
1 Hej!
1.1 Hej igen!1.1.1 Nja, lite djupt nästlat
Namngivna stycken är trevligt Brödtext
114
Grundläggande textformatering
1 Lorem \emphipsum dolor sit2 amet , consectetur adipiscing3 \textttelit.45 Ut enim ad veniam ,6 quis nostrud exercitation7 ullamco laboris nisi ut8 \textbfaliquip ex ea
Lorem ipsum dolor sit amet, consectetur adipiscingelit.
Ut enim ad veniam, quis nostrud exercitation ul-lamco laboris nisi ut aliquip ex ea
115
Listor
1 \beginitemize2 \item Lorem3 \item Ipsum4 \beginenumerate5 \item Hello6 \item World7 \item Example8 \endenumerate9 \item 42
10 \enditemize
• Lorem
• Ipsum
1. Hello
2. World
3. Example
• 42
116
Citationstecken
1 Vanliga citationstecken2 fungerar inte i \LaTeX.3 Istället används ett4 ’’bättre ’’ sätt. Det5 finns även ’stöd’ för6 enkelfnuttar. Skillnad på7 ’’svenska ’’ och ‘‘engelska ’’8 citationstecken.
Vanliga citationstecken fungerar inte i LATEX. Istäl-let används ett ”bättre” sätt. Det finns även ’stöd’ förenkelfnuttar. Skillnad på ”svenska” och “engelska” ci-tationstecken.
117
Matte Matik – Decimaler på π
LATEX, särskilt syntaxen, är branchstandardför matematisk typsättning
• Stökig men effektiv syntax
• Stöd i både Word och Facebookchat
• Macron i editorn så går det snabbtatt skriva
∞
∑k=0
1−k +∞
∑k=0
1−k = 22
18
Matematik
1 Matematik kan vara inline ,2 $\sum x = y$, eller i en miljö.3 Eulers identitet ,4 \beginequation5 e^-i\pi + 1 = \sin 0,6 \endequation7 kan till exempel vara i en8 egen miljö.
Matematik kan vara inline,∑
x = y, eller i enmiljö. Eulers identitet,
e−iπ + 1 = sin 0, (1)
kan till exempel vara i en egen miljö.
119
Mer matte
1 \beginequation2 \int_\ Omega f(\Theta)3 f\omega _\ Theta =4 \int _0^2\ pi5 \int _0^\ frac\pi26 f(\phi , \theta)7 \sin \theta d\theta d\phi8 \endequation9 \beginequation
10 \Omega_x(j) = \int_A_j11 \frac\cos \theta_y12 r^2_xy dA_y13 \endequation
∫
Ω
f(Θ)fωΘ =
∫ 2π
0
∫ π2
0
f(φ, θ) sin θdθdφ (1)
Ωx(j) =
∫
Aj
cos θyr2xy
dAy (2)
120
Ännu mer matte
Placera saker på flera rader med align ur paketet amsmath.
1 \beginalign *2 \sum_k = 0^\ infty 1^-k +3 \sum_k = 0^\ infty 1^-k4 &= 2^2 \\5 &\ Leftrightarrow \\6 2 + 2 &= 47 \endalign*
∞∑
k=0
1−k +∞∑
k=0
1−k = 22
⇔2 + 2 = 4
1
21
Internreferenser
Ofta vill man referera till figurer, bilder eller ekvationer från brödtext
1 Vissa formler , till exempel2 \beginequation3 \labeleq:inf4 \sum_k=0^\ infty5 \frac 12^k = 2,6 \endequation7 kan man vilja referera till8 senare i texten.9 Ekvation ~(\ refeq:inf) är
10 lättrefererad.
Vissa formler, till exempel
∞∑
k=0
1
2k= 2, (1)
kan man vilja referera till senare i texten. Ekvation (1)är lättrefererad.
1
22
Figurer
För att använda bilder behöver man paketet graphicx.
1 Se figur~\reffig:exfig för ett2 exempel.3 \beginfigure [ht]4 \centering5 \includegraphics[6 width =0.5\ linewidth]7 meme.png8 \caption \labelfig:exfig9 En exempelfigur
10 \endfigure
Se figur 1 för ett exempel.
Figur 1: En exempelfigur
1
23
Tabeller
Det finns bra syntax för att uttrycka tabeller i textform. Men inte i LATEX. De ser i varjefall snygga ut.
1 \begintable2 \caption \ labeltab:extab3 En exempeltabell4 \centering5 \begintabular l l r6 Lorem & ipsum & dolor \\ \hline7 sit & amet & 0.48 \\8 elit & malis & 38.7 \\9 an & nam & 5.3
10 \endtabular11 \endtable
Tabell 1: En exempeltabellLorem ipsum dolorsit amet 0.48elit malis 38.7an nam 5.3
1
24
Kod
För kod används lättast paketet listings
1 \lstinputlisting[2 label=lst:excode ,3 caption=Exempelkod ,4 language=c++] hack.cpp
Listing 1: Exempelkod#include <b i t s / s tdc++.h>using namespace std ;
int main ( int argc , char ∗argv [ ] )
cout << "Hel lo World" << endl ;f o rk ( ) ;return main ( argc , argv ) ;
1
25
Varför hoppar mina bilder runt överallt?
LATEX tar sig ganska stora friheter med var bland annat figure och table placeras.
• \FloatBarrier ur paketet placeins.
• \beginfigure[ht] → \beginfigure[H]
26
Referenser
Referenshantering i LATEX är praktiskt för större projekt.
1 \usepackagebiblatex2 \addbibresourcebibliography.bib3 \begindocument4 \sectionEn vild referens dök upp5 Att formatera kod vettigt har varit6 på tapeten länge~\citegustafson .7 \printbibliography 8 \enddocument
27
Bibliografi
1 @articlegustafson ,2 author = Gustafson , G. G.,3 title = Some Practical Experiences Formatting Pascal Programs,4 journal = SIGPLAN Not.,5 issue_date = September 1979,6 volume = 14,7 number = 9,8 month = sep,9 year = 1979 ,
10 issn = 0362 -1340 ,11 pages = 42--49,12 numpages = 8,13 doi = 10.1145/988113.988118 ,14 acmid = 988118 ,15 publisher = ACM,16 address = New York , NY, USA,17 28
Lättja
Men jag orkar inte skriva det där. Det är långt och komplicerat.
scholar.google.com → Kopiera och klista in.
29
Lättja
Men jag orkar inte skriva det där. Det är långt och komplicerat.
scholar.google.com → Kopiera och klista in.
29
Resultatet
1 En vild referens dök uppAtt formatera kod vettigt har varit på tapeten länge [1].
Referenser[1] G. G. Gustafson. “Some Practical Experiences Formatting Pascal Programs”. I: SIGPLAN Not.
14.9 (sept. 1979), s. 42–49. issn: 0362-1340. doi: 10.1145/988113.988118.
1
30
Automatgenererat innehåll
Vissa saker är jobbiga att skriva själv, men lätta att automatgenerera. LATEX löser dethär.
• \maketitle
• \tableofcontents
• \listoffigures
• \listoftables
• \printbibliography
31
Några allmänna kommandon
• \clearpage - Ny sida
• \\ - Tvinga fram en nyrad
• \inputfil.tex - Länka in en annan fil i dokumentet
• ∼ - Obrytbart mellanslag
32
Preamble
Preamble
I preamble läggs det som beskriver hur dokumentet ska se ut.
• Dokumenttyp
• Paketimporter
• Typsnitt
• Egna kommandon
• Pappersstorlek
• Header
• Footer
• Sidnumrering
• Marginaler
• Radavstånd
33
Dokumenttyper
Det finns massvis med dokumenttyper för olika syften. De sätts på första raden avdokumentet med \documentclassnamn.
• article Enklast möjliga, bra för mindre dokument
• report Som article, men med separat titelsida och stöd för chapter
• memoir Som C++, släng in alla features man kommer på
• letter Snigelpost
• beamer Presentationer som den här
• moderncv CV-mall som faktiskt ser snygg ut
34
Att pilla på utseendet
Skriv först, pilla sen
35
Att pilla på utseendet
Att pilla på typsättning är roligt. Och oftast onödigt.
• Håller man sig till standardinställningarna är man “säker”
• De vanliga dokumentklasserna är snygga och vettiga, om än aningen tråkiga
• Det finns massvis med information på internet
• Jobba på utseendet i preamble, inte i dokumentets innehåll
36
Okej, men hur kompilerar man?
Installation på Linux
Pick your poisonsudo apt install texlive-full bibersudo pacman -Syyu texlive-full bibersudo yum install texlive-full biber
37
Installation på Windows
38
Installation på Windows och OS X
• Installera en IDE för LATEX• TEXworks (Kommer bundlat med TEX Live)• TEXstudio• https://en.wikipedia.org/wiki/Comparison_of_TeX_editors
• Det finns olika distros, jag använder och rekommenderar TEX Live1, då det ärplattformsoberoende
• På Windows finns även MikTEX, som vissa tycker är mer välanpassat för justWindows
1https://tug.org/texlive/
39
Kompilering
• Vanlig kompileringlatexmk -pdf dinfil.tex
• Ignorera så många fel som möjligtlatexmk -pdf -interaction=nonstopmode dinfil.tex
• Ignorera felen och kompilera om automatiskt när någon källfil förändraslatexmk -pdf -interaction=nonstopmode -pvc dinfil.tex
• I en IDE - Tryck på den gröna knappen
40
Livekodning! Liveskrivning?
Några avslutande tips
• Konvertera andra format till LATEX med pandoc2
• Tikz, för den som vill skriva bilder
• Sök inte efter ’latex images’
• Semantik i innehållet, styling i preamble
• Skriv först, pilla sen
2https://pandoc.org/
41
Andra resurser
• Massvis med allmän information https://en.wikibooks.org/wiki/LaTeX
• Stackexchange https://tex.stackexchange.com/
• Overleaf https://www.overleaf.com
• ShareLATEX https://www.sharelatex.com
• Detexify http://detexify.kirelabs.org/classify.html
42