Skriv artikler i L A TEX Søren Hvidberg E: info (at) shvidberg.dk web: www.shvidberg.dk September 2013 Resumé Når der skal skrives artikler eller andre tekster kan det være en fordel at have fastlagt en typografi på forhånd, så der kan holdes fokus på indholdet. Med brug af L A TEX er der mulighed for at bygge en typografi op helt fra bunden, som kan genbruges senere både ved skrivning af artikler og større projekter - i L A TEX er det nemmere at strømline layouttet i forhold til et tekstbehandlingsprogram. Der er i L A TEX to niveauer: dokumentkoden, der ligner programmeringskode, og dokumentet, som er det modtageren får at se. Dokumentkoden fastlægger dokumentets layout. Formålet med artiklen er at demonstrere en dokumentkode, der fastlægger et layout til en artikel. Med et fastlagt layout, der kan bruges igen og igen, kan der holdes fokus på indholdet og formidling af viden. Artiklen indleder med at fortælle lidt om L A TEX og valg af editor for derefter at give en gennemgang af dokumentkoden, som herefter kaldes preamble. I artiklens bilag vises den samlede preamble. Indledning Igennem min uddannelse stiftede jeg bekendtskab med L A TEX (udtales lahtekh) som et tekstformatering system, der kunne anvendes i udarbejdelsen af de projekter, der løbende skulle afleveres. Jeg blev interesseret i at lære at anvende systemet og fik først rigtig erfaring med det gennem tre semestre, hvor projekterne blev skrevet i L A TEX. Jeg har efterfølgende arbejdet videre med L A TEX i min interesse for slægtsforskning, hvor jeg har udarbejdet en slægtsbog med anvendelse af L A TEX hertil kommer enkelte artikler. Systemet er designet med fokus på formidling og publikation af videnskabelige dokumenter og har en styrke primært indenfor naturvidenskaberne. Med min baggrund indenfor humaniora mødte jeg derfor ikke så mange, som anvendte L A TEX, men oplevede en stejl læringskurve de gange, hvor systemet blev anvendt i en gruppe af studerende, der arbejdede på et fælles projekt. 1
Formålet med artiklen er kort at beskrive L A TEX og derefter give et bud på opsætning af en typografi, som anvendes til udarbejdelse af artikler. Jeg har opbygget en skabelon, som jeg anvender, når jeg skriver artikler, og som vil blive gennemgået. Afslutningsvis viser jeg den samlede kode i et bilag til denne artikel. Kommentarer og forslag til forbedringer er velkomne. Jeg anvender også L A TEX i større projekter, hvor systemet virkelig kommer til sin ret. Her anvender jeg memoir klassen og jeg vil i en senere artikel gennemgå min opsætning. I forbindelse med slideshow anvender jeg beamer klassen, hvor der er meget dokumentation og mange eksempler at finde ved søgning på internettet, at jeg ikke planlægger en særskilt artikel om det. Hvad er L A TEX? L A TEX er et opmærkningssprog, som anvendes til tekstformatering som det kendes fra HTML. Det betyder, at når der skrives på en tekst skal der kun angives en strukturel beskrivelse (fx afsnit, kursiv skrift, fodnoter m. m.) mens layout (stilmæssige udformning) defineres særskilt. Fordelen ved L A TEX er, at det layoutmæssige bliver ordnet så dokumentet har en typografisk kvalitet og er klar til print og fokus kan være på at få skabt indholdet. L A TEX tager sig af sideopsætning, overskrifter og skriftstype og -størrelse. Desuden tager L A TEX sig af krydsreferencer, indholdsforetegnelse og litteraturliste. Det eneste, som man skal gøre, er at fortælle softwaren hvad man laver ved hjælp af simple kommandoer fx ved angivelse af overskrift og niveau af overskrift uden at skulle tænke på designet. TeX systemet blev udviklet af Donald E. Knuth i slutningen af 1970 erne. Formålet med TeX var et tekstformatterings system, der kunne levere dokumenter af en høj kvalitet specielt indenfor naturvidenskaberne især matematik og fysik, hvor der er behov for at skrive formler. I begyndelse af 1980 erne kom L A TEX makro pakken, som var udviklet af Leslie Lamport, og som gav en mere simpel grænseflade og en nemmere måde til at strukturere dokumentet. Efterhånden blev L A TEX mere udbredt indenfor det akademiske område til publikation af artikler men også generelt indenfor tidsskrifter og bøger. Forklaringen kan være, at der sker en større og større specialisering og derfor er et større behov for at kunne fokusere på indholdet fremfor typografi og layout. Artiklen har fokus på opbygning af en typografi til skrivning af artikler. Typografien, eller dokumentkoden, er referet til som en preamble. I et L A TEX dokument er en preamble det sted, hvor den overordnede typografi angives og er dermed den vitale del af dokumentet. En preamble indleder dokumentet. 2
Programmer og filer Når der arbejdes med L A TEX anvendes der ikke et program til det, som det kendes fra en office pakke eller et tekstbehandlings program. Der kræves en editor, hvor koden skrives i, og de mest anvendte indenfor de forskellige operativsystemer fremgår af oversigten. Operativsystem Windows MAC Linux Editor MIKTEK, emacs TeXworks, TeXShop, emacs Kile, TeXMaker, emacs Der er altså ikke et program til L A TEX men en editor, der kan kompilere koden til en PDF fil. Der findes derimod et program til håndtering af referencer (litteratur), hvor der findes en udgave til alle platforme: BibDesk. I programmet kan der laves en database over litteratur og referencer i forbindelse med en artikel eller et større projekt, hvor referencerne visuelt kan indsættes i databasen. En fil med referencer får endelsen.bib mens en fil lavet i L A TEX får endelsen.tex. Opbygningen af dokumentet I preamblen indlæses de pakker, som skal bruges for at opsætte den typografi, som anvendes i dokumentet. Når pakkerne indlæses hører der i mange tilfælde også en variabel til. Pakken optræder i en krøllet parantes mens den tilhørende variabel skrives i en firkantet parantes. Afsnittet gennemgår en typografi til en artikel med beskrivelse af de enkelte pakker og variabler. I bilaget til artiklen findes en samlet oversigt over opsætning af L A TEX til brug for udarbejdelse af artikler. For at kunne skrive en artikel indledes dokumentet med at indlæse pakken article i linje 1. Papirformatet A4 anvendes og skriftsstørrelsen er 11pt. Standard for papirretningen i L A TEX er portrait så derfor skrives der ikke noget skal papirretningen være landscape indsættes det i koden. I linje 2 indlæses pakken inputenc som gør det muligt at skrive at få vist bogstaverne på samme måde, som de bliver skrevet, i det endelige dokument. Variablen latin1 (også kaldet ISO 8859-1) er den mest anvendte og kan håndtere de latinske bogstaver. Pakken fontenc indlæses i linje 3 som sikrer, at de bogstaver, der indtastes, bliver vist rigtigt i den endelige PDF fil. Variablen T1 sikrer, at specialbogstaver vises rigtigt. I det danske sprog er det for eksempel bogstaverne æ, ø og å. I linje 4 indlæses babel, som er en flersproglig pakke. Variablen danish indlæser de danske sprogpræferencer, som også indeholder den danske måde at skrive datoer på. 3
I mange dokumenter anvendes efterhånden skriftstypen lmodern (linje 5). Pakken for denne skrifttype indsættes derfor i dokumentet som den sidste af de grundlæggende pakker i preamblen. 1 \documentclass [ a4paper, 1 1 pt ] { a r t i c l e } 2 \usepackage [ l a t i n 1 ] { inputenc } 3 \usepackage [ T 1 ] { fontenc } 4 \usepackage [ danish ] { babel } 5 \usepackage { lmodern } Herefter indlæses de pakker, som gør det muligt at anvende grafik i dokumentet. Pakken graphicx (linje 6) anvendes for at kunne inkludere eps-filer og anden grafik lavet i tegne/male programmer. I L A TEX anvendes vektor grafik og nogle programmer kan konvertere fx.jpg og.tiff filer til.eps. Det smarte ved vektor grafik er, at det kan skaleres op og ned uden at blive pixeleret. Vektor grafik kan alså skaleres op uden at grafikken bliver dårligere at se på. Når der arbejdes med grafik i L A TEX opstår behovet netop for skalering så det kan tilpasses både til siden og den kontekst, der skal fungere i. Variablen pdftex sørger for, at også grafikken bliver konverteret til en PDF fil. Pakken subfig (linje 7) anvendes for at kunne indsætte grafik og billeder som subfloats. Det betyder, at der kan sættes to eller flere grafik/billeder ved siden af hinanden med hver deres billede tekst og reference. De grafiske muligheder udvides ved at anvende pakken fancybox (linje 8). Med pakken bliver der mulighed for at bruge forskellige slags boxe fx rundt om tekst eller grafik. Farverne sort og hvid er standard i L A TEX så derfor anvendes pakken xcolor (linje 9) for at kunne anvende andre farver. 6 \usepackage [ pdftex ] { graphicx } 7 \usepackage { subfig } 8 \usepackage { fancybox } 9 \usepackage { xcolor } Det er nu muligt at anvende grafik og farver i dokumentet. Herefter kommer der nogle pakker, der mere er orienteret mod teksten. Pakken microtype (linje 10) sørger for, at mikrojustere afstanden mellem bogstaverne og kan placere tegnsætning (delvist) i margin. Pakken reducerer antallet af orddelinger samt fejlmeldinger ved enten for mange eller for få tegn i en linje. L A TEX har som standard lige højre margin. I dokumentet kan der sættes eksterne PDF filer ind i artiklen ved hjælp af pakken pdfpages (linje 11). Det kan være tekst eller grafik, der kun findes i en PDF fil, og som skal sættes ind i dokumentet. Hvis det kun er 4
nogle bestemte sider i et længere PDF dokument, der skal med i filen, er det også muligt i koden at udvælge de ønskede sider som en variabel. Variablen final betyder, at PDF filen indsættes i den endelige PDF, der genereres når.tex filen kompileres. Med pakken enumitem (linje 12) opnås der nye muligheder for at tilpasse de tre grundlæggende lister enumerate, itemize og description så der kan dannes nye former for lister. Det er en pakke, som der kan tages med hvis der i dokumentet arbejdes (meget) med lister. 10 \usepackage [ f i n a l ] { microtype } 11 \usepackage [ f i n a l ] { pdfpages } 12 \usepackage { enumitem } Artikler kan indeholde en litteraturliste, hvis der er anvendt bøger, artikler, hjemmesider eller andre kilder i udarbejdelsen af artiklen. I den forbindelse findes der et meget anvendt program, hvor alle referencer kan indtastes i, som hedder BibTeX dog kan den editor, der anvendes til.tex filen også anvendes. For at kunne håndtere referencerne i dokumentet anvendes pakken natbib (linje 13), som giver en lang række muligheder, som ikke findes fx i cite pakken. Variablen square betyder, at referencer, der indsættes i teksten, optræder i firkantede paranteser hvis runde eller krøllede parantes foretrækkes skal variablen blot ændres. 13 \usepackage [ square ] { natbib } På det sted i dokumentet, hvor litteraturlisten skal være, indsættes bibliographystyle (linje 14) som bestemmer hvordan referencerne i litteraturlisten skal optræde. Det positive ved at anvende agsm er, at den erstatter den numeriske liste, som er standard i L A TEX, og erstatter den med forfatternavn. Det er typisk i selve teksten, hvor der indsættes en reference, at den numeriske liste optræder. På den måde er det nemmere både i selve teksten og litteraturlisten at se hvilke forfattere, der refereres til. Sammen med pakken natbib kommer metoden tæt på harvard stilen for referencer, som er den metode, jeg foretrækker. Umiddelbart efter bibliographystyle indsættes litteraturlisten ved hjælp af bibliography (linje 15), og navnet på filen skrives i den krøllede parantes. Uanset om navnet på filen ender på.bib eller.tex indsættes kun navnet på filen og ikke endelsen. 14 \bibliographystyle { agsm } 15 \ bibliography { MineReferencer } 5
Pakken url (linje 16) anvendes for at kunne indsætte link til hjemmesider og e-mail adresser i dokumentet. Variablen hyphens anvendes for at kunne fordele en lang URL adresse over flere linjer. Pakken anvendes sammen med pakken hyperref (omtales efterfølgende) for også at sikre en korrekt formattering i det endelige dokument. Pakken hyperref (linje 17) anvendes for at kunne skabe hyperlink internt i dokumentet. Det kan være henvisning til en tektst, et afsnit, en figur eller anden grafik i dokumentet. På den måde holder L A TEX selv styr på nummeringen af figurer/grafik og hvilken side, de befinder sig på i det endelige dokument, så henvisningerne hele tiden er opdateret og forfatteren er fri for manuelt at skulle ind og opdatere henvisningerne. Hyperlink kan også være eksternt til hjemmesider eller e-mail adresser, hvor der blot skal klikkes på linket med musen og man kommer til den ønskede hjemmeside. Eksterne link ses kun i det digitale dokument. Pakken anvendes desuden når der skal indsættes metadata i dokumentet, som gør det søgebar. Metadata omfatter informationer som titel, forfatter, beskrivelse og nøgleord. Variablen pdftex (linje 17) sørger for at omdanne en tex fil til en PDF fil. I sammenhæng med hyperref bliver det sat hyperlink ind i den endelige PDF fil. 16 \usepackage [ hyphens ] { u r l } 17 \usepackage [ pdftex ] { hyperref } Efter at pakken hyperref indlæst kan der indsættes metadata ved hjælp af hypersetup. Metadata er data om data eller information om andre data. Et eksempel kan være de papkort, som man tidligere havde på bibliotekerne med information og indhold og placering af en bog på biblioteket. Papkortets indhold var data om det data, der står i bogen. I L A TEX anvendes vejledende metadata, da det tilføjes manuelt med beskrivelse af det, som dokumentet indeholder og omfatter her dokumentets titel, forfatter navn(e), tekstens emne, keywords og hvilket sprog, teksten er skrevet i. Metadata er en vigtig faktor for at gøre dokumentet søgebar og dermed gør det nemmere for læserne at finde frem til den information, der søges efter. Inden hypersetup sættes op indlæses koden makeatletter (linje 18), som gør det muligt at anvende @ (snabel-a). Tegnet behandles som et almindeligt bogstav i L A TEX (catcode 12) og med makeatletter ændres det til catcode 11. Formålet er at kunne ændre en pakkes interne makro, så det er muligt at genbruge data uden at skulle taste det samme ind mere end én gang. I dette tilfælde vil dokumentets titel og forfatter navn blive indtastet senere og ved hjælp af @ (snabel-a) hentes de respektive informationer ind i pdftitle (linje 21) og pdfauthor (linje 22) automatisk. Da hypersetup kommer lige før selve dokumentet starter indlæses AtBeginDocument (linje 19) som gør, at data kan hentes ind fra selve do- 6
kumentet og anvendes i preamblen. Det første, der kommer til at ske i begyndelsen af dokumentet er, at artiklens titel og forfatternavn skrives ind manuelt (omtales senere) og disse data bliver automatisk sat ind i dokumentets metadata således, at tingene kun skal skrives én gang. Med hypersetup indlæses dokumentets metadata (linje 20). Der er mulighed for at indlæse en lang række variabler i metadata og i dette eksempel anvendes det metadata, der gør en søgning blandt meget data og PDF filer muligt: PDF filens titel, forfatter, emne, keywords og det sprog, som teksten er skrevet i. Metadata indeholder desuden information om den editor, der anvendes i arbejdet med L A TEX (TeXworks) og at dokumentet er produceret i L A TEX. 18 \makeatletter 19 \AtBeginDocument { 20 \hypersetup {% 21 p d f t i t l e = {\ @ t i t l e }, 22 pdfauthor ={\ @author }, 23 p d f s u b j e c t ={Emne f o r dokumentet }, 24 p dfcreator ={LaTeX }, 25 pdfproducer ={ TeXworks }, 26 pdfkeywords ={ key 1, key 2 }, 27 pdflang ={da }, 28 } 29 } Herefter indsættes dokumentets titel, forfatter og dato (linje 31-33). Det er her, at titel, forfatter navn og dato indtastes hvorefter det automatisk indsættes i metadata under hypersetup (linje 20). Når det sker automatisk vil det sige, at når.tex filen kompileres til en.pdf fil vil data blive sat ind. Når PDF filen åbnes i Adobe Reader vil metadata kunne findes under arkiv > egenskaber. Inden at titel, forfatternavn og dato indsættes makeatother (linje 30), som ændrer @ (snabel-a) tilbage til catcode 12, så det igen læses som et bogstav. Tidligere var formålet at give mulighed for at kunne anvende tegnet i en makro så titel og forfatternavn hentes og sættes ind i dokumentets metadata. Efter at tegnet er ændret tilbage kommer dokumentets titel, forfatternavn og dato, der her indtastes og kun skal indtastes dette ene sted. I linje 34 afsluttes preamblen og selve dokumentet starter. Det betyder, at når først dokumentet er startet kan teksten skrives til den ønskede artikel. Som det første efter begin kommer kommandoen maketitle (linje 35), som sætter titel, forfatter navn og dato ind øverst i dokumentet, der bliver centreret på hver sin linje. Efter at titel, forfatternavn og dato er indsat kan der komme et resumé 7
30 \makeatother 31 \ t i t l e { A r t i k l e n s t i t e l } 32 \author { F o r f a t t e r e n s navn } 33 \date { Dato } 34 \begin { document } 35 \maketitle af teksten, som sker ved hjælp af abstract (linje 36), der er det engelske ord for resumé. I et resumé kan læseren se, hvad artiklen handler om og dermed afgøre, om den vil være værd at læse. 36 \begin { a b s t r a c t } 37 Her kommer e t resumé. 38 \end { a b s t r a c t } Artiklens indhold kommer efter resuméet. Det kan laves afsnit (section) underafsnit (subsection) og under-underafsnit (subsubsection) og fremdeles. I krølleparantesen indsættes afsnittets titel. Ved brug af stjerne bliver afsnittene ikke nummeret - skal afsnittene nummeres fjernes stjernen bare. Med nummering menes, at det første afsnit hedder 1.0 og det første tilhørende underafsnit hedder 1.1 og fremdeles. Det samlede dokument afsluttes med kommandoen end (linje 41). 39 \section { A f s n i t t e t s o v e r s k r i f t } 40 Tekst t i l a f s n i t t e t. 41 \end { document } Perspektiver Det har været spændende at skulle skrive en artikel om L A TEX i forbindelse med udarbejdelse af artikler skrevet i L A TEX. Der har været en stejl læringskurve siden interessen for og arbejdet med L A TEX startede. Rapporter og artikler har også løbende opnået en forbedret kvalitet, som er steget progressivt med en øget viden og erfaring med L A TEX. Forståelsen for L A TEX kommer især ved den preamble, man selv har bygget op fra bunden ved gennemgang af manualer, tutorials og søgning i fora. L A TEX finder fortsat sin primære anvendelse indenfor den akademiske verden, hvor der skrives projekter, rapporter og artikler. Den stigende specialisering gør, at L A TEX også finder anvendelse på andre fagområder end 8
naturvidenskaberne, da fokus ligger på indholdet og hvor en typografi med fordel kan være sat op i forvejen. Indenfor trykning af bøger vil L A TEX fortsat gøre sig gældende. Med brug af L A TEX vil materialet til en bog være klar som en PDF fil lige til at blive trykt og sendt på markedet. Med en øget adgang til medierne de seneste par årtier er mulighederne blevet bedre for at ytre sig på sociale medier, broadcasting af film og billeder samt udgivelse af bøger. Prisen på trykning er med den moderne teknologi faldet, som gør det muligt for flere at skrive og udgive en bog selv i små oplag. Hvis bogen ikke skal trykkes kan den altid udkomme som en e-bog. I en situation, hvor flere personer skal bidrage med tekst i et større projekt (fx manualer eller personalehåndbøger) vil det være en fordel at anvende L A TEX suppleret med en CVS server (Concurrent Versions System) til versionsstyring på digital form. Med brug af CVS har man altid adgang til gamle versioner af en tekst med mulighed for at kunne gå tilbage. Systemet sørger for at sammenkæde ændringer fra forskellige brugere der gør, at flere kan arbejde på samme tekst. Med systemet vil teksten hele tiden være samlet og overblikket bliver bevaret. Litteratur Hellmund, M. [n.d.], Bibtex - a tutorial. URL: http://www.math.uni-leipzig.de/~hellmund/latex/bibtex2.pdf Høgholm, M. [2006], Introduktion til latex. URL: http://www.econ.ku.dk/polit/for_studerende/speciale/raadoglink/guidelatexda.pdf/ Lamport, L. [1994], LaTeX: A Document Preparation System, 2nd edn, Addison- Wesley. Lasson, J. R. d. [2012], Latex - hvorfor egentlig bruge andet?. URL: http://ing.dk/blog/latex-hvorfor-egentlig-bruge-andet-128225 Madsen, L. [2013], Introduktion til latex. URL: http://math.au.dk/videnudveksling/latex/bog/ Merkel, S. [2002], Reference sheet for natbib usage. URL: http://merkel.zoneo.net/latex/natbib.php Nielsen, Torben og Vadiveal, A. [2011], Introduktion til latex. URL: http://www.imada.sdu.dk/~joan/intro/latexbook.pdf PROSA [2004], Latex - når dine dokumenterne skal være rigtig gode. URL: http://www.prosa.dk/aktuelt/prosit/artikel/artikel/latex-naar-dinedokumenterne-skal-vaere-rigtig-gode/?tx_prosamag_pi1%5bpageid%5d=613 9
Ukendt [2009], Latex - hvad ellers?. URL: http://ing.dk/blog/latex-hvad-ellers-94888 Wikipedia [n.d.], Latex. URL: https://da.wikipedia.org/wiki/latex Copyright Forfatteren har copyright c på artiklen, som udgives under Creative Commons (BY-NC-SA). Det betyder, at artiklen gerne må distribueres frit både i elektronisk og trykt udgave med kildeangivelse, at den ikke anvendes til kommercielle formål ligesom indholdet deles videre på samme vilkår. 10
1 \documentclass [ a4paper, 1 1 pt ] { a r t i c l e } 2 \usepackage [ l a t i n 1 ] { inputenc } 3 \usepackage [ T 1 ] { fontenc } 4 \usepackage [ danish ] { babel } 5 \usepackage { lmodern } 6 \usepackage [ pdftex ] { graphicx } 7 \usepackage { subfig } 8 \usepackage { fancybox } 9 \usepackage { xcolor } 10 \usepackage [ f i n a l ] { microtype } 11 \usepackage [ f i n a l ] { pdfpages } 12 \usepackage { enumitem } 13 \usepackage [ square ] { natbib } 14 \usepackage [ hyphens ] { u r l } 15 \usepackage [ pdftex ] { hyperref } 16 \makeatletter 17 \AtBeginDocument { 18 \hypersetup {% 19 p d f t i t l e = {\ @ t i t l e }, 20 pdfauthor ={\ @author }, 21 p d f s u b j e c t ={Emne f o r dokumentet }, 22 p dfcreator ={LaTeX }, 23 pdfproducer ={ TeXworks }, 24 pdfkeywords ={ key 1, key 2 }, 25 pdflang ={da }, 26 } 27 } 28 \makeatother 29 \ t i t l e { A r t i k l e n s t i t e l } 30 \author { F o r f a t t e r e n s navn } 31 \date { Dato } 32 \begin { document } 33 \maketitle 34 \begin { a b s t r a c t } 35 Her kommer e t resumé. 36 \end { a b s t r a c t } 37 \section { A f s n i t t e t s o v e r s k r i f t } 38 Tekst t i l a f s n i t t e t. 39 \bibliographystyle { agsm } 40 \ bibliography { MineReferencer } 41 \end { document } 11