Professional Documents
Culture Documents
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).
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.
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
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.
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!
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.
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., . . .
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.
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.
\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
\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
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