You are on page 1of 8

Ordbehandling

Föreläsning 3 — LATEX
Förberedelse inför laboration 3. De flesta moderna ordbehandlare, till exempel Microsoft Word, fungerar
Ordbehandling enligt WYSIWYG-principen:
LATEX
Mall för rapport What You See Is What You Get
Dokumentstruktur: dokumentklasser, omgivningar, text, stycken,
listor, tabeller, . . .
Programlistor Det innebär att det man ser på skärmen ser likadant ut som det som
Matematiska formler kommer att skrivas på papperet: teckensnitt, storlekar, avstånd, . . . Det
innebär också att det inte blir bättre än vad det ser ut på skärmen (What
Bilder You See Is All You Get).

(roger.henriksson@cs.lth.se) LATEX 2018/19 43 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 44 / 95

Layout av text LATEX

Med LATEX arbetar man på ett helt annat sätt: man skriver texten i en
I de flesta ordbehandlare finns det formatmallar där man till exempel kan vanlig textfil och lägger in kommandon (”taggar”) i texten som visar hur
bestämma att alla rubriker på en viss nivå ska ha ett visst utseende. Om texten ska formateras. Textfilen kan bli något svårläst, åtminstone innan
man vill ändra utseendet på alla rubriker så räcker det att ändra i mallen. man är van, men resultatet blir garanterat snyggt.

Det brukar också finnas möjlighet till automatisk numrering av rubriker, Enkelt exempel:
automatisk generering av innehållsförteckning och sakregister och liknande.
Pythagoras sats ser ut så Pythagoras sats ser ut så här: a2 +
här: $a^2 + b^2 = c^2$. b2 = c 2 .
När man skriver matematisk text använder man ofta en ekvationseditor för
att skriva de matematiska symbolerna. Ekvationseditorer är inte enkla att $-tecknen anger att en matematisk formel börjar och slutar. LATEX vet då
använda, och slutresultatet brukar inte bli bra. att variablerna a, b och c ska skrivas kursiva, hur stora exponenterna ska
vara och var de ska placeras, och hur mycket mellanrum det ska vara
mellan termerna.

(roger.henriksson@cs.lth.se) LATEX 2018/19 45 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 46 / 95


Ett större exempel LATEX-historik

If $f$ is continuous on the closed interval


$a \leq x \leq b$ and differentiable on the Donald E. Knuth skrev 1977–1982 typsättningsprogrammet TEX1 eftersom
open interval $a < x < b$, then there exists han inte var nöjd med de möjligheter till typsättning som fanns då.
a point $\xi$, $a < \xi < b$ such that TEX är ett ”lågnivåspråk”. Leslie Lamport byggde på TEX med ett
\begin{displaymath} makropaket som gör det möjligt för författaren av ett dokument att
f(b) - f(a) = f’(\xi)(b -a). koncentrera sig på den logiska strukturen hos dokumentet och på själva
\end{displaymath} texten i stället för på lågnivåtypsättningen. Resultatet blev LATEX2 .
En föregångare till LATEX, troff, används fortfarande ibland, till exempel till
If f is continuous on the closed interval a  x  b and differentiable on the Unix man-sidor.
open interval a < x < b, then there exists a point ⇠, a < ⇠ < b such that

f (b) f (a) = f 0 (⇠)(b a).

1
TEX skrivs TeX i skrivmaskinsskrift och uttalas ”tech”.
2A
LT EX skrivs LaTeX i skrivmaskinsskrift och uttalas ”lah-tech”.
(roger.henriksson@cs.lth.se) LATEX 2018/19 47 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 48 / 95

Arbeta med LATEX Mall för rapport


\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
När man använder LATEX utgår man från en fil med text och kommandon. \usepackage[utf8]{inputenc} Programmeringsteknik
Filen ska ha tillägget .tex, till exempel rapport.tex. Sedan ”översätter”
man filen till pdf-format med programmet pdflatex och tittar på
\usepackage[swedish]{babel}
\usepackage{fancyvrb}
Inlämningsuppgift 1
resultatet med en pdf-läsare, till exempel evince. Detta kan man \fvset{tabsize=4}
naturligtvis göra genom att skriva kommandona för hand (gedit \fvset{fontsize=\small}
\title{Programmeringsteknik\\
Xerxes Yngvesson
rapport.tex, pdflatex rapport.tex, evince rapport.pdf), men det dat14xyn@student.lu.se
Inlämningsuppgift 1}
är enklare att använda ett specialprogram. På studentdatorerna finns \author{Xerxes Yngvesson\\ 2014–10–17
programmen texmaker (enklast) och kile. På Mac-datorer använder man dat14xyn@student.lu.se}
TeXShop. \date{2014--10--17}
I stället för att generera pdf-filer med pdflatex kan man generera
dvi-filer (”device independent”) med programmet latex som man kan titta \begin{document} Här skriver man texten i rappor-
\maketitle ten.
på med en ”dvi-läsare” och sedan översätta till Postscript eller pdf. Numera
använder de flesta pdflatex.
Här skriver man texten i
rapporten.
\end{document}
(roger.henriksson@cs.lth.se) LATEX 2018/19 49 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 50 / 95
Dokumentklasser och omgivningar Löpande text

Radslut och antal mellanslag mellan ord har ingen betydelse, LATEX
{article} är en dokumentklass (den man oftast använder). Andra formaterar så att det blir snyggt. En eller flera blanka rader ger ett nytt
dokumentklasser är {report}, {book}, {letter} och {beamer} (beamer stycke. Exempel:
används för overheadbilder). En dokumentklass påverkar utseendet på hela
Det här Det här är en text som jag har skri-
dokumentet. vit. Det är en lång text med flera
är en text som jag
har skrivit. Det är rader.
\begin{document} definierar starten på en omgivning, \end{document} en lång text med flera Här börjar det ett nytt stycke i
slutet på omgivningen. En omgivning påverkar utseendet på den del av rader. texten.
dokumentet som ingår i omgivningen. Vi kommer att se exempel på andra
omgivningar senare. Här börjar det ett
nytt stycke i texten.

(roger.henriksson@cs.lth.se) LATEX 2018/19 51 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 52 / 95

Rubriker Ändra textens utseende

LATEX numrerar rubriker automatiskt. Man anger en rubrik med \section Det finns många kommandon för att ändra utseende på texten. Två sådana
eller \subsection. kommandon är \emph för att betona text och \texttt för att skriva med
skrivmaskinstypsnitt. Exempel:
\section{Inledning} 1 Inledning
\section{Utförande} Här skriver jag något Här skriver jag något viktigt. Och i
\subsection{Del 1}
2 Utförande \emph{viktigt}. Och Java har vi använt klassen Square.
\subsection{Del 2} 2.1 Del 1 i Java har vi använt
klassen \texttt{Square}.
\section{Slutsatser} 2.2 Del 2
3 Slutsatser Det finns också kommandon för fetstil, lutande text, osv, och för att ändra
storlek på texten. Använd sparsamt!

(roger.henriksson@cs.lth.se) LATEX 2018/19 53 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 54 / 95


Specialtecken Fotnoter

Med tecknet % inleder man en kommentar som sträcker sig till slutet av
raden. Fotnoter är lätta att skriva:

En del tecken används för kommandon och måste skrivas på speciellt sätt:
Om man använder \LaTeX Om man använder LATEXa så blir
\footnote{uttalas det bra. Alla rapporter blir auto-
\$ \% \_ \# \& \{ \} \textbackslash
’’lah-tech’’} så matiskt snyggt utformade.
blir det bra. Alla rapporter
Det finns streck, mellanrum och punkter av olika slag: a
uttalas ”lah-tech”
blir automatiskt snyggt
DoD-kursen pågår under vecka DoD-kursen pågår under vecka 1–3 utformade.
1--3 av läsperiod ht1. Sedan av läsperiod ht1. Sedan börjar Pro- Fotnoter numreras automatiskt 1,2,. . . Fast här blev ”numret” på fotnoten
börjar Programmeringsteknik \ldots grammeringsteknik . . .
Telefon: 046–222 80 38. Dagens
”a” av olika anledningar. Observera att man skriver två apostrofer (’’) i
\quad Telefon: 046--222~80~38. datum: 16 augusti 2018. stället för citationstecken (").
Dagens datum: \today.

(roger.henriksson@cs.lth.se) LATEX 2018/19 55 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 56 / 95

Listor Definitioner

Punktlistor är enkla:

\begin{itemize}
\item första punkten första punkten Några klasser som vi använder: Några klasser som vi använder:
\item här kommer den andra här kommer den andra SimpleWindow Beskriver ett enkelt
punkten i listan \begin{description}
punkten i listan ritfönster
\end{itemize} \item[SimpleWindow] Beskriver ett
enkelt ritfönster Scanner Inläsning från
Numrerade listor är lika enkla: \item[Scanner] Inläsning från tangentbordet
tangentbordet Random Slumptal
\begin{enumerate} \item[Random] Slumptal
\item första punkten 1 första punkten \end{description}
\item här kommer den andra 2 här kommer den andra
punkten i listan punkten i listan I dokumentklassen article blir det något annorlunda layout på
\end{enumerate} definitioner. Använd en tabular-omgivning med kolumnspecifikationen
I detta dokument används dokumentklassen beamer, och där blir numren p{bredd} för att få layout som liknar den ovan.
siffror i cirklar. I den vanliga dokumentklassen {article} blir numren 1.,
2., . . .

(roger.henriksson@cs.lth.se) LATEX 2018/19 57 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 58 / 95


Tabeller Flytande tabeller

Med en \table-omgivning skapar man en tabell med en förklarande text


En tabell där den första kolumnen är vänsterinpassad (l), den andra och ett nummer. LATEX placerar tabellen där det är lämpligt.
centrerad (c) och den tredje högerinpassad (r). & avgränsar kolumnerna,
\\ betyder ny rad, ~ är ett ”hårt” blanktecken. \hline är ett streck. \begin{table} Produkt Typ Pris
\begin{tabular}{lcr} Skruvar stora 0.18 kr
\begin{tabular}{lcr} Produkt Typ Pris Produkt & Typ & Pris \\ Muttrar M16 0.38 kr
Produkt & Typ & Pris \\ Skruvar stora 0.18 kr \hline Spikar 12 tum 0.12 kr
\hline Muttrar M16 0.38 kr Skruvar & stora & 0.18~kr \\ Tabell 7. Våra produkter
Skruvar & stora & 0.18~kr \\ Spikar 12 tum 0.12 kr Muttrar & M16 & 0.38~kr \\
Muttrar & M16 & 0.38~kr \\ Spikar & 12~tum & 0.12~kr
Spikar & 12~tum & 0.12~kr \end{tabular}
\end{tabular} \caption{Våra produkter}
\end{table}

(roger.henriksson@cs.lth.se) LATEX 2018/19 59 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 60 / 95

Att referera till etiketter Programlistor

Om man sätter en etikett på en tabell kan man referera till den från texten. För att infoga en programlista i en rapport använder man kommandot
Exempel: \VerbatimInput{filnamn} från paketet fancyvrb. Man bör inte
använda ”standard”- kommandot \verbatiminput eftersom det
\begin{table} Produkt Typ Pris
kommandot ignorerar alla tabulatortecken i programmet, och det medför
\begin{tabular}{lcr} Skruvar stora 0.18 kr
Produkt & Typ & Pris \\
att indragningarna försvinner.
Tabell 7. Våra produkter
\hline Senare i texten: våra produkter \usepackage{fancyvrb} class Point {
Skruvar & stora & 0.18~kr \\ finns i tabell 7. \fvset{tabsize=4} private int x;
\end{tabular} \fvset{fontsize=\small} private int y;
\caption{Våra produkter}
\label{produkter} \VerbatimInput{Point.java} public Point(int x, int y) {
\end{table} this.x = x;
Senare i texten: våra produkter this.y = y;
finns i tabell~\ref{produkter}. }
}
Figurer hanteras likadant som tabeller, i en \figure-omgivning.

(roger.henriksson@cs.lth.se) LATEX 2018/19 61 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 62 / 95


Öka eller minska avstånd Matematiska formler

Ibland behöver man öka avståndet i vertikalled mellan två avsnitt i texten, LATEX är mycket bra på att formatera matematisk text. Alla (tror jag)
till exempel före eller efter en tabell. Det kan man göra med kommandot artiklar och böcker som innehåller matematiska formler är skrivna med
\vspace{längd}, där längden kan anges i millimeter eller punkter eller LATEX. Man kan skriva formler antingen inuti löpande text eller på en egen
något annat som LATEX känner igen. Längden kan vara negativ om man vill rad:
minska avståndet. Det finns också specialkommandon för att lägga in ett I texten: formeln inleds med $ och avslutas med $.
litet, mellanstort och stort avstånd:
På egen rad: formeln inleds med \begin{displaymath} och avslutas
\smallskip \medskip \bigskip med \end{displaymath}. \begin{equation} och \end{equation}
ger samma resultat men formeln numreras. Med \label och \ref kan
Man kan öka eller minska horisontellt avstånd med \hspace{längd}. man etikettera och referera till ekvationer.

(roger.henriksson@cs.lth.se) LATEX 2018/19 63 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 64 / 95

Enkla formler Symboler, index

Formeln $x=3y-2$ står


inne i texten. Däremot \begin{displaymath}
står Formeln x = 3y 2 står inne i texten. \alpha \leq \pi \approx 3.141592654
\begin{displaymath} Däremot står \end{displaymath}
x=3y-2
x = 3y 2
\end{displaymath}
↵  ⇡ ⇡ 3.141592654
för sig själv precis som för sig själv precis som
\begin{equation}
x=3y-2 x = 3y 2 (1) \begin{displaymath}
\label{xochy} x_{k+1}=x_{k}-f(x_{k})/f’(x_{k})
\end{equation} I ekvation 1 fann vi att . . .
\end{displaymath}
I ekvation~\ref{xochy} fann
vi att \ldots
xk+1 = xk f (xk )/f 0 (xk )

(roger.henriksson@cs.lth.se) LATEX 2018/19 65 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 66 / 95


Exponenter, rötter Integraler, summor

\begin{displaymath}
\begin{displaymath}
\int_{-\infty}^{\infty}
e^x = 1+x+x^2/2!+x^3/3!+\cdots
e^{-x^2} dx
\end{displaymath}
\end{displaymath}
e x = 1 + x + x 2 /2! + x 3 /3! + · · · Z 1
x2
e dx
\begin{displaymath} 1

x_{1,2}=\frac{p}{2}\pm \begin{displaymath}
\sqrt{\frac{p^2}{4}-q} \sum_{k=1}^n\frac{1}{a_k}
\end{displaymath} \end{displaymath}
r
p p2 n
X 1
x1,2 = ± q
2 4 ak
k=1

(roger.henriksson@cs.lth.se) LATEX 2018/19 67 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 68 / 95

Funktioner Matriser, parenteser

\begin{displaymath}
A=\left(
\begin{array}{cccc}
a_{11} & a_{12} & \cdots & a_{1n}\\
\begin{displaymath} a_{21} & a_{22} & \cdots & a_{2n}\\
\sin^2 x + \cos^2 x = 1 \vdots & \vdots & \ddots & \vdots\\
\end{displaymath} a_{n1} & a_{n2} & \cdots & a_{nn}\\
\end{array}
sin2 x + cos2 x = 1 \right)
\end{displaymath}
0 1
a11 a12 · · · a1n
B a21 a22 · · · a2n C
B C
A=B .. .. .. .. C
@ . . . . A
an1 an2 · · · ann
(roger.henriksson@cs.lth.se) LATEX 2018/19 69 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 70 / 95
Bilder Egna kommandon

Bilder kan inkluderas i LATEX-dokument om de är i formatet pdf, jpeg eller


png (eps om man använder latex). Man måste använda paketet Man kan lätt definiera egna kommandon, till exempel ett kortare namn för
graphicx (eller graphics). en text som man använder ofta. Kommandon kan ha parametrar.

CPU Primärminne
Adress Innehåll
\newcommand{\java}[1]
{\texttt{#1}}
Klocka Programräknare, PC 0000
0001
0010
0011
Aritmetisk- Register R1 0100
logisk 0101
Hårddisk
enhet 0110
Register R2

Klasser: \java{Random},
(ALU) 0111
Skärm 1000
Register R3 1001

\usepackage{graphicx} Tangent-
bord
1010
1011
1100 \java{Scanner} och
1101
Mus In/ut-
Buss
1110
0000
1111 \java{PrintStream}.
\includegraphics[height=40mm]{bild.pdf}
enheter

ImageMagick-programmet convert kan konvertera från och till de flesta Klasser: Random, Scanner och PrintStream.
bildformat: Man kan definiera om existerande kommandon med \renewcommand. Det
kan ställa till förvirring, så gör inte det.
convert bild.fig bild.pdf

(roger.henriksson@cs.lth.se) LATEX 2018/19 71 / 95 (roger.henriksson@cs.lth.se) LATEX 2018/19 72 / 95

LATEX på egen dator

En sammanfattning av LaTeX-installationer finns på


www.latex-project.org, sidan Getting LaTeX.
Linux LaTeX kanske redan finns på datorn; hämtas annars med den
vanliga pakethanteraren.
Mac Använd MacTeX (bygger på TeXLive, som uppdateras varje
år).
Windows proTeXt verkar vara enklast.
Som IDE rekommenderas Texmaker (www.xm1math.net/texmaker) eller
TeXShop (bara för Mac, www.texshop.org).

(roger.henriksson@cs.lth.se) LATEX 2018/19 73 / 95

You might also like