LaTeX

Fra NanoWiki

Gå til: navigasjon, søk

Et nyttig format som lar deg skrive rapporter meget enkelt. LaTeX er et format som må behandles av et typesettingsystem (TeX) for så å lage det endelige dokumentet. Dette er forskjellig i fra andre programmer som f.eks. Word, hvor du til enhver tid jobber direkte på det endelige dokumentet slik det vil se ut. Fordelene med dette er at det blir lettere å jobbe med større dokument da programmet ikke trenger å formatere teksten hele tiden. Ellers forenkler LaTeX mange vanlige problemstillinger som kryssreferanser (eksempelvis til figurer eller likninger), seksjonering, matematisk likninger, sitering, layout, samt eventuelt orddeling ved linjeskift. LaTeX har også et hav med ekstrapakker som hjelper deg med alt fra å få korrekt formatering av fysiske enheter (SIUnits), kjemiske strukturformler, til å legge til mer esoteriske funksjoner innen notasjon og layout.


Innhold

Dokumentoppsett

Først i dokumentet spesifiserer man alt av innstillinger osv. som skal gå til typesettingsprogrammet. De viktigste tingene man gjør her er å spesifisere dokumenttype (\documentclass), og å inkludere eventuelle ekstrapakker man ønsker (\usepackage). Når man er ferdig med dette spesifiserer man starten på selve dokumentet med kommandoen \begin{document}. Man kan ellers til et hvert tidspunkt skille ut en del av innholdet i en annen fil, for så å inkludere det der man ønsker med kommandoen \input{filnavn} (filen antaes å være i samme mappe og med filendelsen .tex). Et tips er å holde selve innholdet fraskilt fra innstillingene ved å skille innholdet ut i en separat fil. Dette gjør det enkelt å gjenbruke innstillinger ved en senere anledning ved at man bare kopierer innstillingsfilen, og skriver en ny innholdsfil. Et grunnleggende eksempel på innstillinger som bør være med i rapporter kan sees i rapportmalen.

Skriver man på norsk, kan det være en fordel å laste packene babel med norsk som option for å gjøre om de engelske betegnelsene (f.eks. table, figure, abstract) til norsk. For å få æ,ø,å (og forsåvidt også ö,ä osv) kan man laste inn pakken inputenc med option latin1. Husk at disse pakkene kanskje må lastes ned separat.

\usepackage[norsk]{babel} 
\usepackage[latin1]{inputenc}

Generell koding

Innholdsfortegnelse

Ønsker man innholdsfortegnelse holder det å skrive

\tableofcontents

Og latex setter inn innholdsfortegnelse der du er i teksten. For å forsikre seg om at innholdsfortegnelsen stemmer, bør man skrive PDF-fila to ganger for at LaTeX skal få alle sidetall og avsnittnummer rett.

Det er verdt å merke seg at LaTeX også kan lage liste over figurer og tabeller i teksten din. Dette gjør du med følgende kommandoer:

\listoftables
\listoffigures

Dersom disse brukes er det også viktig å skrive PDF-fila to ganger for at LaTeX skal få alle sidetall og avsnittnummer rett.

Bilder

Bilder kan settes inn slik for eksempel (det er sikkert lov å bare kopiere dette blindt men bytt ut noen navn):

\begin{figure}[htbp] %htbp står bare for plassering, Google det om du vil har fler tips eller se link under
\centering
\includegraphics[height=5cm]{Bilde1}  %evt kan [width=0.5\textwidth] være nyttig som option
\caption{Bla bla skrift under bildet}
\label{fig:1} %med denne kan man bare referere til bildet, uansett hvor det står ved å skrive bilde~\ref{fig:1}
\end{figure}


tikz/pgf

Eksempel på grafikk tegnet med tikz.
cos(x)*sin(y) grafet med pgfplots.

I LaTeX er det ikke bare innsetting av bilder som er mulig. Det er mange ganger det er bedre og innimellom også enklere å "tegne" grafikken du ønsker i LaTeX.

For tegning av grafikk som figurer, relasjonskart, koblingsskjema, grafer i både to og tre dimensjoner eller enkel modifikasjon av allerede eksisterende bilder er et godt alternativ tikz og pgf. Begge pakkene er inkludert i tex live, miktex og mactex samt de fleste andre oppdaterte distribusjonspakker. Resultatet blir kodet som vektorgrafikk i det ferdige dokumentet, og skalerer derfor svært godt. Eksempler på relativt enkel koding vises i margen til høyre. Koden for 3-d grafen du ser er supplert under

\begin{tikzpicture}
	\begin{axis}
		\addplot3[surf,domain=-180:180,samples=50] {cos(x)*sin(y)};
	\end{axis}
\end{tikzpicture}

Pakkene denne koden bruker, som du da trenger å legge inn i dokumentets preamble er tikz og pgfplots. Disse kan du legge inn slik:

\usepackage{tikz,pgfplots}

Med tikz/pgf kan man lett lage alt fra enkle grafer til svært avanserte 3-D grafiske fremstillinger, mange eksempler er å finne på TeXample.net. Supplerer du tikz med pgfplots (Eventuelt Gnuplot - om det lille ekstra pushet innen kvalitet ønskes) blir grafing av data enkelt og resultatet bra.

Man kan plassere et eller fler "tikzpicture" inne i en figur som man vil gjøre med et vanlig bilde, og dermed få mulighet til å gi det en label og caption som en vanlig figur.

Tabeller

Her er et forslag til å lage tabell. Den har linjer rundt hele seg og all skrift er sentrert. Det er også hint til litt annen koding her.

\begin{table}[htbp]
\centering
\begin{tabular}{|c|c|c|}\hline
Prøve:		& \emph{21A - As478}        &	\emph{21B - As 478}\\ \hline 
L 		& \unit{7014}{\micro\metre} &	\unit{7006}{\micro\metre} \\ \hline
a 		& \unit{4000}{\micro\metre} &	\unit{4002}{\micro\metre} \\ \hline
b 		& \unit{4002}{\micro\metre} &	\unit{4004}{\micro\metre} \\ \hline
c 		& \unit{101,5}{\micro\metre} &	\unit{103}{\micro\metre} \\ \hline
p 		& \unit{485,3}{\micro\metre} &	\unit{488,88}{\micro\metre} \\ \hline
w 		& \unit{510}{\micro\metre} &	\unit{516,5}{\micro\metre} \\ \hline
$h_{kontakt}$ 	& \unit{0,2}{\micro\metre} &	\unit{0,2}{\micro\metre} \\ \hline
$h_{ets}$ 	& \unit{4,5}{\micro\metre} &	\unit{4,5}{\micro\metre} \\ \hline
\end{tabular}
\caption{Tabell over alle målte verdier på Hallbarens størrelse.}
\label{tab:1}
\end{table}

Matematikk

For seg selv

Formler kan skrives for seg selv, både nummerert eller ikke.

Følgende blir en ligning som er nummerert og kan linkes til med ~\eqref{eq:1} eller ~\ref{eq:1}.

\begin{equation}	
\vec{F} = q \vec{E} + q \vec{v} \times \vec{B}
\label{eq:1}	
\end{equation}


Følgende blir en unummerert ligning som heller ikke er laget for å refereres til da dette vil være noe merkelig i og med at den ikke er nummerert.

\begin{equation}
	1-2:\quad  V_{12}=216,566I- 0,509\cdot10^{-9} \Rightarrow R_{12}= \unit{216,6}{\ohm}\nonumber
\end{equation}

Alternativt kan det samme resultatet oppnås med dobbelt dollartegn på hver side av formelen:

$$1-2:\quad  V_{12}=216,566I- 0,509\cdot10^{-9} \Rightarrow R_{12}= \unit{216,6}{\ohm}$$

Merk: Brukes dobbelt dollartegn vil ikke formelen nummereres.

I tekst

Når man bare skal skrive en liten formel eller noe litt matematisk i selve teksten så putter man bare $ foran og bak det man skal skrive og så fikser LaTeX-programmet biffen.

Eksempel:

 ...der $\sigma = \frac{1}{\rho}$. $\rho$ er resistiviteten...

En rekke formler

Skal man skrive flere formler etter hverandre, for eksempel for å illustrere en utregning eller liste opp relevante formler kan man benytte seg av align environmentet som er en del av amsmath pakken. Det vil si at du i dokumentets preamble må inkludere

\usepackage{amsmath}

Koden for align er som vist under.

	\begin{align}
		\mathbf{q}&\mathbf{=q_vq_rq_tq_e}\\
		q_{v}&=\frac{1}{1-e^{-h\nu/k_BT}}\\
		q_r&=\sum^\infty_{\ell=0}(2\ell+1)e^{-\varepsilon_\ell /kT}\approx\int^\infty_0\cdot\cdot\cdot d\ell
		\\&=\frac{T}{\sigma\theta_r}=\frac{8\pi^2Ik_BT}{\sigma h^2} \nonumber \\
		q_{t}&=q_xq_yq_z=\left(\frac{2\pi mk_BT}{h^2}\right)^{3/2}abc\\
		q_e&=g_0+\sum^n_{i=1}g_1e^{-\Delta\varepsilon_1/k_BT}
	\end{align}

Navnet "align" peker på at formlene kan plasseres relativt hverandre. Tegnet som indikerer hva som skal bli "aksen" formlene blir justert langs er &. Ønsker du align uten at hver formel skal bli nummerert kan du enten bruke \nonumber som over, eller du kan bruke align* i stedet for align. Altså:

	\begin{align*}
		formler
	\end{align*}

Vanlige tegn

Symboler

Vanlige symboler som parantes etc. skrives rett frem. Det er noen unntak, og de er:

Symbol Kode
{, } \{ \}, evt \left\{ \right\}
\ (Backslash) \backslash (Mattemodus), \textbackslah (Tekstmodus)
 % \%
& \&
aksenter

Denne tabellen viser vanlige aksenter, og er i bunn og grunn nesten identisk med tabellen for det samme i LaTeX boken på wikibooks.com.

a' a'\, a'' a''\, a''' a'''\, a''''</code> a''''\,
\hat{a} \hat{a} \, \bar{a}</code> \bar{a} \, \overline{aaa} \overline{aaa} \, \check{a}</code> \check{a} \, \tilde{a} \tilde{a} \,
\grave{a} \grave{a} \, \acute{a} \acute{a} \, \breve{a} \breve{a} \, \vec{a} \vec{a} \,
\dot{a} \dot{a} \, \ddot{a} \ddot{a} \, \dddot{a}[1] \ddddot{a}[1]
\not{a} \not{a} \, \mathring{a} \widehat{AAA} \widehat{AAA} \, \widetilde{AAA}
\overrightarrow{AB} \overrightarrow{AB} \, \overleftarrow{AB} \overleftarrow{AB} \,
Greske bokstaver

De greske bokstavene er meget enkle. Kommandoen for dem er navnet på den enkelte grekse bokstav - for eksempel "epsilon" med en \ foran. Skillet mellom stor og liten bokstav i det greske alfabetet er stor og liten bokstav i bokstavens navn. Eksempelvis for gamma er kodene \gamma og \Gamma respektivt. Dette gir

\begin{align}&\mathrm{\backslash gamma:\,}\gamma\\
&\mathrm{\backslash Gamma:\,}\Gamma&\end{align}

Formatering av tekst i mattemodus

Sett at du ønsker å skrive ned for eksempel at noe er i et spesielt sett med tall som reelle, integer eller komplekse tall. Eller sett at du vil bruke korrekt formattering av vektorer i maskinskrevet dokument - halvfet tekst. Plutselig vil ikke normal typesetting gi deg det du trenger. Du behøver et par ekstra kommandoer som hjelper på.

Bruksområde LaTeX kode Resultat
Nummersett \mathbb{bokstav} \mathbb{R},\,\mathbb{C}...
Vektorer \mathbf{bokstav} \mathbf{a}\,\mathbf{b}...
Operatorer, måleenheter \mathrm{tekst}. Eks \mathrm{d}x dx

Pynting

Mellomrom og korrekt formatering

Det er enkelte ganger du ønsker å få produktene til å se litt ekstra fine ut, og det er jo i bunn og grunn en av hovedargumentene for å bruke nettopp LaTeX. Først og fremst er en vanlig problemstilling at man gjerne ikke får paranteser til å matche formler som strekker seg over flere linjer. For eksempel ved bruk. Dette omgår man ved bruk av \left og \right som følger inne i mattemodus (dollartegn, begin equation, eller lignende)

\left( kode \right)


Enkelte ganger vil du ha et mellomrom inne i mattemodus, det ordnes slik: \; Stort mellomrom \: Middels mellomrom \, Lite mellomrom \! Lite negativt mellomrom \hspace{x} Egendefinert mellomrom. X er en lengde i pt, cm, in, eller mm avhengig av brukers ønske.

Det kan også være veldig kjekt å sikre at operatorer ikke havner i kursiv. Dette gjøres med \mathrm{} kommandoen.

Et lite eksempel hvor disse brukes er gitt her:

\int^\infty_{-\infty} \! \left(\frac{1}{x}\right) \, \mathrm{d}x

som resulterer i

\int^\infty_{-\infty} \! \left(\frac{1}{x}\right) \, \mathrm{d}x

Dropper vi \!, \, \mathrm og \left(\right) får vi \int^\infty_{-\infty} (\frac{1}{x}) dx Resultatet kan altså bedres betraktelig av disse kommandoene.

Kjemi

Det er flere pakker som lar deg typesette kjemiske formler og relatert materiale. Noen av disse kan gi svært gode resultater, men ganske mange av dem er vanskelige å bruke, og gitt antallet kan man lett drukne i muligheter uten å vite hva man skal bruke. Tre pakker som gjør en god jobb og som samtidig er intuitive er mhchem, chemmacros og ChemFig.

mhchem

Denne pakken er god for generell inorganisk kjemi, kjemiske formler i tekst og mattemodus. Pakken er så enkel at det den løser kan løses med mattemodus og litt kreativ koding, men her blir et litt bedre resultat oppnådd med mindre koding. Tidvis mye mindre koding.

chemmacros

Chemmacros ordner ting som orbitaler, newman-projeksjoner, reaksjonsformler (mer eller mindre som mhchem) og en stor rekke pictogrammer som giftig, etsende o.l. som kan hentes frem med en enkel kommando.

Pr. April 2012 er pictogrammene chemmacros bruker punktgrafikk uten transparens, og skalerer dermed heller dårlig. Det er verdt å merke seg at enkelte av pakkens funksjoner krever dobbel kompilering av dokumentet før resultatet blir brukbart.

chemfig

ChemFig er sentrert rundt organisk kjemi. Vil du tegne molekyler og ikke har lyst til å bruke store tikz-bilder med mye kode eller lime inn bilder fra eksterne program - som kan redusere kvalitet og gjøre sluttproduktet mindre pent kan dette være en god løsning.


Referanser

Referanser til andre steder i teksten gjøres ved at man legger til en label til stedet man vil referere til med kommandoen \label{dinlabelher}. Man kan lage label for f.eks. ligninger, avsnitt og figurer, men for figurer må labelen defineres etter at caption er definert. For å referere til delen man har gitt label, skriv inn \ref{dinlabelher}, og laTeX henter nummeret på ligningen, avsnittet eller figuren. LaTeX får ikke alltid riktige referanser første gang man skriver til PDF (Typisk "se figur ??"), så gjør alltid dette to ganger for å få referansene riktig.

\begin{equation} \label{kulevolum}
V=\frac{4 \pi r^2}{3}
\end{equation}
Volumet av kula med radius = 1 blir 4/3 $pi$ fra formel \ref{kulevolum}.

Fotnoter

Fotnoter legges inn ved å skrive \footnote{Teksten som skal stå i fotnota} der du ønsker en fotnote.

Sitering

For å legge til en skikkelig kildereferanse er det vanlig å bruke verktøyet BiBTeX. Dette kommer med de fleste distribusjonen av LaTeX, og mange redigeringsverktøy har innebygget støtte for dette (eksempelvis WinEdt). Kilder i rapporten legges i en egen fil (med filendelse .bib) skrevet i BiBTeX format[1], og siteres så ved kommandoen \cite{kildenavn}. Referanselisten inkluderes så der du ønsker ved hjelp av kommandoen \bibliography{refereanse_filnavn}. Siteringsstilen kan endres ved å bruke kommandoen \bibliographystyle{stilnavn}, hvor et vanlig stilnavn er plain, hvor da referansene simpelthen er tall. Forskjellige fagmiljø har innarbeidet forskjellige siteringsstiler, og noen steder ønsker man siteringen på typen (Forfatter, Årstall). Ønsker du at en kilde skal vises i bibliografien uten å merkes i teksten bruker du \nocite{kildenavn}

Det kan være en idè å inkludere pakken natbib i dokumentet ditt da dette gir vesentlig flere muligheter for stiler og høyere kontroll på siteringene. Gjør du dette må du også bytte siteringsstil. Vanlig stilnavn i natbib som tilsvarer "plain" er "plainnat". Eksempler på muligheter pakken gir foruten flere internasjonale siteringsstandarder er forskjellige siteringskommandoer, en oversikt over disse finner du på nettsiden til natbib[2].

Mange artikkelsøkemotorer lar deg eksportere tilhørende Bibtex-innhold automatisk slik at man slipper å gjøre dette manuelt for hver artikkel. Det finnes også siteringsbehandlere som f.eks. JabRef [3] eller (for mac) BibDesk[4]. Disse gir deg en GUI for å behandle Bibtex-filer, og man kan søke i artikkeldatabaser internt i programmet og importere siteringer direkte.

Diverse

Formatfiksing

Om man ikke er helt fornøyd med formatet, eller dokumentklassen, (\documentclass[12pt, a4paper]{article}) altså article i dette tilfellet, så kan man redigere dette rimelig greit. Bare å finne fila article.cls, samt srticle.sty, disse kan åpnes i alle tekstbehandlingsprgrammer (tror jeg), men det er nok best å enten åpne den i PCTeX Wordpad, NotePad. LaTeX-programmet er nok en smule enklere, men Wordpad funka greit det også. I alle fall så er det bare å søke seg fram til det du vil rette på. I .cls trenger du bare å linke til .sty-fila, så den er i alle fall grei å fikse på.

I starten kan det være greit å prøve enkle ting som å forandre litt engelske presettnavn slik at de blir norske. Men husk for all del å lagre dette som nye filer! Ting man skal rette på kan man enten søke etter på Google eller leite etter i henhold til funksjonsnavn. Bare å søke etter appendix om man skal forandre noe som angår den funskjonen også videre. Bare fantasien og kunnskapen/forståelsen av hva som står der som setter grenser for hva man kan gjøre, og blir man god nok (les: gidder) så kan man lage sitt helt egne oppsett/format.


Hyperlenker

Å følge referanser frem og tilbake i en PDF kan ofte bli litt slitsomt. Da er det fint å inkludere pakken hyperref. Dette gjøres best ved å legge til \usepackage{hyperref} på slutten av dokumentets preamble (før "\begin{document}), da pakken overskriver en del kommandoer. Hvis du ikke legger den til på slutten risikerer du at andre pakker overskriver disse igjen. Det denne pakken gjør er å lage klikkbare lenker ut av innholdsfortegnelsen, referanser, siteringer, etc. Hvis man bruker standardinnstillingene vil lenkene sees i PDF-en som fargede rammer rundt den teksten som er klikkbar. Disse boksene vil ikke vises i utskrift av dokumentet. Pakken kan også brukes til å gjøre internettadresser klikkbar, enten ved \href{URL}{text}, eller \url{URL}. Den siste er å foretrekke hvis du vil at nettadressen også skal være tilgjengelig i utskrevne utgaver.

Eksempel på kalling av hyperref pakken er lagt inn under. Du trenger ikke å sette alle disse parametrene, men de vil sette relevant metadata i den resulterende filen som kan forenkle søking i filen og etter filen i en eventuell database. Fargene er satt noe tilfeldig i eksempelet for å vise mulighetene. For å kalle dem må du imidlertid bruke pakken color eller en grafikkpakke som graphicx eller tikz.

\hypersetup{colorlinks,%
			citecolor=green,%
			unicode=true,%
			filecolor=black,%
			linkcolor=red,%
			urlcolor=blue,%
			pdfsubject={Emne},%
			pdfauthor={Forfatternavn},%
			pdftitle={Dokumenttittel},%
			pdftex}

Merk at dette må kalles i tillegg og etter pakken hyperref.

Linker

Personlige verktøy
Navnerom
Varianter
Handlinger
Navigasjon
Verktøy