Er der fejl eller mangler på siden? Så skriv gerne til hacker(snabel-a)matfystutor.dk

LaTeX

Fra Hackerwiki
Spring til navigation Spring til søgning

Skabelon:Ambox

Lad det være sagt med det samme: LaTeX udtales ikke som i snuskede pornoforretninger, men så det rimer på smæk. Hvis du nogensinde har prøvet at skrive matematikopgaver eller fysikrapporter i Word, så vil LaTeX sikkert falde i din smag. Især når du skriver større opgaver, har almindelige tekstbehandlingsprogrammer svært ved at håndtere opgaven. Her kan LaTeX gøre det meget nemmere.

Om LaTeX

Midt i 70'erne besluttede den fremragende (men også ganske pedantiske) datalog Donald Knuth at kvaliteten af hans bøger og artikler var for ringe. På den tid blev de fleste bøger stadig trykt på gammeldags manér, dvs. med metalbogstaver, men andet bind af hans værk "The Art of Computer Programming" var sat med datidens bedste digitale typografiværktøjer. Da Donald så den første prøveudgave blev han overbevist om, at det kunne gøres bedre. Sådan gik det til, at han fik idéen til det, der senere blev TeX.

TeX er ikke nemt at bruge, så mange brugte meget tid på at skrive makroer, der gjorde TeX mere brugervenligt. En af dem, der fik mest succes med dette, var Leslie Lamport og han skrev, hvad der fik navnet LaTeX.

At skrive i LaTeX

Modsat tekstbehandlingsprogrammer, såsom OpenOffice Writer eller Microsoft Word, kan du ikke umiddelbart se, hvad du skriver. Det kan lyde underligt, men i LaTeX koder man sine dokumenter, men bare rolig: Det er ikke kompliceret kode der skal til. Koden skal derefter oversættes (compiles) hvilket resulterer i det endelige dokument.

Det er måske på sin plads med et eksempel:

\documentclass[a4paper]{article}
\author{Steffen V. Fredslund}
\title{\LaTeX{} testdokument}

\begin{document}
\maketitle

\end{document}

Dette resulterer i et dokument i A4-format med titlen "LaTeX testdokument". Det rigtigt smarte i dette er, at LaTeX styrer layoutet. Det kan, specielt i starten, være lidt underligt, at man ikke selv skal styre sidens og tekstens opsætning, men det er gjort for at du kan koncentrere dog om indholdet i stedet.

Et dokument har to hoveddele:

Preamblen
er alt der, der står før \begin{document}. Det er her man styrer al generel opsætning af sit dokument. En preamble skal starte med makroen \documentclass, men ellers er der frit slag. Det er dog ikke sådan lige til at skrive sin egen, se mere under #Preamble.
Selve teksten
findes i document environmentet, dvs mellem linjerne \begin{document} og \end{document}. Det er her man skriver sin tekst, formler, figurer, tabeller og hvad man nu ellers kan finde på.

Preamble

Uden en preamble kan man ikke skrive et dokument, og siden det ikke er helt enkelt at skrive en selv er her en, du kan bruge.


Til afleveringer

Denne kan det meste relevante, men vær ikke bange for at tilføje en pakke eller to, hvis du får at vide, at det kan hjælpe. Vær desuden opmærksom på, at den ikke rigtigt egner sig til større projekter men mest til afleveringer og lignende.


% Dokumentklassen sættes til memoir.
% Manual: http://ctan.org/tex-archive/macros/latex/contrib/memoir/memman.pdf
\documentclass[a4paper,oneside,article]{memoir}

% Danske udtryk (fx figur og tabel) samt dansk orddeling og fonte med
% danske tegn. Hvis LaTeX brokker sig over æ, ø og å skal du udskifte
% "utf8" med "latin1" eller "applemac". 
\usepackage[utf8]{inputenc}
\usepackage[danish]{babel}
\usepackage[T1]{fontenc}

% Matematisk udtryk, fede symboler, theoremer og fancy ting (fx kædebrøker)
\usepackage{amsmath,amssymb}
\usepackage{bm}
\usepackage{amsthm}
\usepackage{mathtools}

% Kodelisting. Husk at læse manualen hvis du vil lave fancy ting.
% Manual: http://mirror.ctan.org/macros/latex/contrib/listings/listings.pdf
\usepackage{listings}

% Fancy ting med enheder og datatabeller. Læs manualen til pakken
% Manual: http://www.ctan.org/tex-archive/macros/latex/contrib/siunitx/siunitx.pdf
\usepackage{siunitx}

% Indsættelse af grafik.
\usepackage{graphicx}

% Reaktionsskemaer. Læs manualen for at se eksempler.
% Manual: http://www.ctan.org/tex-archive/macros/latex/contrib/mhchem/mhchem.pdf
\usepackage[version=3]{mhchem}

\begin{document}
% Din kode her!

\end{document}

Som du kan se er dem dokumentet med henvisninger til pakkemanualer, hvilket skulle gøre det nemmere at finde ud af, hvordan man bruger de enkelte pakker.

Hvordan bruges preamblen?

Der findes flere forskellige måder at bruge denne preamble på. Man kunne fx kopiere den ind i starten af alle sine dokumenter, men det kan bliver træls i længden. En bedre idé er at gemme den i fil for sig selv (den kunne fx hedde preamble-afleveringer.tex) og lægge den et sted hvor LaTeX kan finde den. Fordel er da, at man kan nøjes med at skrive \input{preamble-afleveringer} i starten af dokumentet, så klarer LaTeX resten. Husk at din preamble skal have en ny linje til sidst -- ellers laver LaTeX mærkelige fejl.

Om pakkerne

Det er en god idé at vide, hvad ens preamble gør. Derfor kan du her finde en kort beskrivelse af dokumentklassen og de enkelte pakker.

memoir
Dokumenklassen er memoir, der er den mest konfigurerbare klasse der findes. Der er meget få ting man ikke kan med memoir og den egner sig til alt fra simple afleveringer til specialer og bøger.
revtex4

Bliver man bedt om at bruge klassen revtex4 kan man risikere at Latex brokker sig over at "File revtex4.cls does not exist" eller lignende. Dette er fordi pakken nu om dage hedder revtex4-1. Hvis Latex stadig brokker sig prøv da at installere pakken texlive-publishers ie:

sudo apt-get install texlive-publishers

hvorefter det gerne skulle virke.

inputenc
Denne pakke fortæller LaTeX hvilket tegnsæt du bruger i dokumentet. De fleste Linux'er bruger utf8, men på Windows benyttes ofte latin1 og på Mac applemac. Hvis man har problemer med æ, ø og å skal du prøve med "de to andre".
babel
Denne pakke indlæser dansk orddeling og danske navne for tabeller og figurer, så der står "Figur 2" i stedet for "Figure 2". Hvis man skriver på engelsk bør man ændre [danish] til [english] på denne linje.
fontenc
Her fortæller du LaTeX at den skal bruge europæiske fonte. Det er ikke noget man skal tænke for meget over :)
amsmath og amssymb
Disse to pakker giver flere muligheder når det kommer til brug af matematisk udtryk, fx align-environmentet.
bm
Giver mulighed for at lave fede tegn i matematiske udtryk bed brug af makroen \bm. Bruges fx ved vektorer.
amsthm
Giver environments til opsætning af sætninger og beviser, der er dokumenteret i pakkemanualen og med eksempler i daleifs bog. Hvis ikke man er tilfreds med amsthm kan man udskifte den med ntheorem.
mathtools
Giver flere fancy muligheder for matematik, fx flere snedigheder for matricer. Pakkens dokumentation giver gode eksempler og mange af daleifs eksempler benytter mathtools.
listings
Giver mulighed for pæn opsætning af kildekode i talløse sprog. Hvis man vil inkludere kodestumper i sit dokument er dette pakken man skal kende.
siunitx
En uundværlig pakke når det kommer til datatabeller og brug af fysiske enheder. Pakkens dokumentation viser rigtigt mange gode eksempler.
graphicx
Dette er pakken, der gør det muligt at indsætte billeder.
mhchem
Gør det meget nemmere at skrive reaktionsskemaer, hvad enten der er tale om kemiske eller nukleare reaktioner. Igen er pakkens dokumentation kilde til mange gode eksempler.

Søger du mere information om en pakke, du har installeret, kan du altid i "kør" (windows+R) skrive "texdoc <pakkens navn>", hvorefter du vil få pakkens dokumentation vist i en pdf.


Installation af LaTeX

Når du har skrevet koden til dit dokument skal det laves til en PDF-fil. Til det skal man bruge en LaTeX-installation og her har man flere muligheder:

  • TeX Live er speciel fordi den kan installeres på alle platforme, dev. både Windows, Mac, Linux, BSD og andre endnu mere eksotiske systemer. Den er meget nem at installere og vedligeholde. En anden fordel er, at den kommer med sin egen editor. Texlive er den anbefalede version af Latex!
  • MacTeX er en version af TeX Live, der er specielt rettet til brugere af Mac OSX. Den er ufatteligt nem at installere og indeholder både editor og fremviser.

Hvis du er i tvivl om, hvad du skal vælge er TeX Live er godt sted at starte.

En anden anbefaling er at installeret Visual Studie Code (https://code.visualstudio.com/) og følge guiden i deres LaTeX Workshop plug-in.

TeX Live på Ubuntu

I den nyeste version af Ubuntu kan man blot installere pakken texlive-full enten via af Ubuntu Software Center eller vha. denne kommando:

sudo apt-get install texlive-full

Det skulle give dig den nyeste version af TeXLive. Derudover skal du også bruge en Latex editor fx Texmaker. Se mere info i artiklen om Latex.

Editorer

For at kunne skrive LaTeX skal man bruge en editor. Det er dybest set ikke andre krav, end at den kan gemme i et rent tekstformat, så principielt kunne man bruge Notesblok. Det ville man dog hurtigt blive træt af, specielt når der findes rigtigt mange gode LaTeX-orienterede editorer.

Lidt at vælge mellem

Dette er ikke ment som en udtømmende liste, men som inspiration. Det er nemlig ganske forskelligt fra person til person hvad man foretrækker. Rådet er derfor: Prøv dig frem og brug den du finder mest anvendelig.

  • TeXworks er den editor, der følger med TeX Live. Denne indeholder en integreret PDF-fremviser og generelt ganske god.
  • TeXstudio er den mest anvendte editor (måske bortset fra Vim og Emacs, der ikke anbefales til nybegyndere).
  • TeXnicCenter er bedre til håndtering af projekter, der er delt i flere filer. Er installeret på computerne ved IFA.
  • Emacs kan være rigtigt god, hvis man kan finde ud af den. Det er dog ikke tilrådeligt at lære LaTeX og Emacs på én gang. Man bør desuden benytte AUCTeX og RefTeX sammen med Emacs.
  • Vim er på mange måder som Emacs, dog er det lidt mindre tungt at køre. Der findes en rigtig god udvidelse, Latex-Suite, som gør det meget bekvemt at arbejde med LaTeX dokumenter.
  • Visual Studio Code virker til alle systemer.
  • LaTeX Editor eller LEd i daglig tale.
  • TeXmaker kan bruges på alle systemer.
  • TeXShop er en editor kun til Mac.

Biblatex

Biblatex er en måde at lave referencer til dine kilder på en systematisk måde. Det fungerer ved at man laver en såkaldt bibfil, enten ved at skrive den selv eller bruge et program, fx Referencer. Denne Bibfil refererer man fra sit tex-dokument.

Man kan få en underlig fejlmeddelelse vis man prøver at køre sit latex dokument med biblaatex hvis man endnu ikke har citeret nogen kilder. Man skal derfor blot citere en kilde så virker dokumentet igen.

Online LaTeX

Er I flere, der skal skrive en opgave sammen, kan det være rart at kunne skrive i et samlet dokument samtidigt. Her kan fx Overleaf med fordel bruges. Her kan I online skrive et dokument sammen. Det fungerer på samme måde, som LaTeX installeret på din egen computer, men det kræver intet andet end et login, som vel og mærket kan fås gratis.

LaTeX-foredrag

Fagrådet Sigma holder LaTeX-foredrag cirka to gange om året, og de anvendte slides kan altid findes på Facebook-begivenheden.

De holder et "Introduktion til LaTeX-foredrag" om efteråret, samt et "Videregående LaTeX" om foråret. Det er specielt anbefalet at deltage i "Videregående LaTeX", hvis man skal skrive sin Bachelor opgave samme forår.

Hjælp til LaTeX

daleifs bog

daleifs (Lars Madsen) fra IMF har skrevet en dansksproget bog om LaTeX. Den er god som både introduktion, som opslagsværk og som introduktion til mere avancerede emner. Bogen er for nuværende på vej mod 3. udgave og en tidlig udgave kan hentes gratis fra Matematisk Instituts hjemmeside om LaTeX.

DeTeXify

Hvis du står og skal bruge kommandoen til at lave et bestemt tegn kan det ofte betale sig at prøve detexify før man begynder at slå op i diverse tabeller over tegn. Siden lader dig tegne tegnet du tænker på og søger derefter i en database over tegn.


DK-TUGs mailingliste

DK-TUG, der foreningen af danske (La)TeX-brugere har en mailingliste, hvor man frit kan stille spørgsmål -- også uden at være medlem af foreningen.

LaTeX fora

På nettet kan man finde forskellige fora, der beskæftiger sig med LaTeX. En af de bedre findes ved LaTeX Community hvor man selvfølge kan få hjælp til LaTeX men også til mange af de forskellige editorer, der findes. Et andet godt site er Stack Exchange, hvor der næsten med garanti er én, der har haft samme problem som dig.

Gode links

En samling af basale råd ved brug af Latex En smart lille applet til at finde tegn vha. af håndskriftsgenkendelse