Vill du kanske tillbaka till startsidan?

Vanliga Latex-relaterade frågor, och några svar på dem

En snabb notis: jag har försökt att genomgående skriva Latex istället för LaTeX som vissa *host* anser att det ”stavas”; förutom i titlar på andras verk.

Om det inte är uppenbart så är detta dokument ej klart – en bra fråga är om det någonsin kommer bli det. Hursomhelst, om du anser dig besitta ett bättre svar eller kan svara på någon av frågorna ställda i svaren till frågorna (ja, det blev lite onödigt invecklat där, ja) så går det bra att kontakta mig (du kan fortfarande bli den första! ☺).

När jag nämner något om vanliga fel så är det oftast sådana jag sett i kursböcker eller kompendier. Frågorna är inte i någon speciell ordning, för tillfället.

Innehållsförteckning

  1. Hjälp! Vad är Latex?
  2. Typsätta mattemagi
  3. Att tänka på när du skriver på svenska
  4. Hur skapar jag PNG-bilder av mina Latex-dokument?
  5. Hjälp, hur bör jag göra hänvisningar till delar i mitt dokument?
  6. Övrigt, en rad korta frågor och svar

Hjälp! Vad är Latex?

Det finns många böcker som försöker förklara vad Latex egentligen är, The Not So Short Introduction to LaTeX är troligen den första boken som nämns när en fråga om det ställs. LaTeX Primer är väll inte heller helt okänd. Jag kanske fyller ut denna del med någon mer bra bok om jag hittar det, men det är enligt mig bättre med en kort list med bra böcker istället för en lång lista med alla Latex-böcker jag hittar.

”LaTeX” på Wikibooks innehåller lite mer avancerade saker, men är inte fullt lika strukturerad som de tidigare nämnda ”böckerna” – så den fungerar kanske bättre som referens än introduktion.

Finns det några andra Latex-relaterade resurser då?

Knuth har även en rad föreläsningar från ~1980 om TeX, TeX for Beginners och Advanced TeXarcana. (Som då naturligtvis endast handlar om TeX.)

TeX Frequently Asked Questions on the Web, välskriven lista med vanliga frågor och svar.

Svenska (värda) resurser, det finns alltid någon dåre med för mycket tid som skriver om hur du bör använda Latex på lämpligast sätt, ☺:

Typsätta mattemagi

Latex är ganska bra på att typsätta mattemagi, men ibland är det inte helt uppenbart hur saker och ting ska göras; därför finns det en del texter som förklarar det också.

Som referens är mattemagireferensen på Wikipedia inte allt för dålig.

Men även här finns en del värda kortare böcker:

Mattemagiska tecken

Jag tänkte ha några fina tabeller här, men det blev för jobbigt så det får räcka med ännu en referens, sidan 5 i Short Math Guide for Latex (samma länk som ovan).

Ibland kan även Detexify vara till hjälp, där kan du rita symbolen du letar efter i ett fönster och så ger den dig förslag på vad det kan vara.

För att avsluta vill jag sedan ge dig ett råd, det är att använda namn som beskriver vad symbolen gör där istället för hur den ser ut (i de fall som går), d.v.s. använda den begränsade semantik som finns. Det gör att koden blir mer lättläst. T.ex. så bör du använda \implies istället för \Rightarrow (kanske inte det bästa av exempel då alla inte använder samma symbol för implikation, och de förslag som gavs inte ens ger samma symbol).

Okej, det kanske inte var sista saken då. En till sak bara, det finns både \over och \frac. Använd \frac när du kan, kommer inte ihåg varför men \frac är Latex-specifik och \over är en överlevare från Tex-tiden.

Relationsoperatorer

Detta är bara en lista över symboler jag behöver ibland men av någon anledning glömmer bort.

Till att börja med så skrivs de vanliga mindre- och störreänoperatorerna < och > som vanligt. Men mindre än eller lika (≤) med skrivs \le; och större än eller lika (≥) med skrivs \ge. Ungefär lika med (≈) skrivs \approx. Att negera dem är ganska enkelt, lägg till \not framför eller endast ett n (t.ex. \not\le eller \nle för ≮). Av någon anledning finns \neq (inte lika med), men inte \eq; fast \not= fungerar.

Finns lite vanliga pilar också, ⇔ heter \iff (if and only if) och använd \implies för för ⇒.

Övriga symboler

Övriga lustiga tecken finns troligen i The Comprehensive LaTeX Symbol List.

Håll reda på dina minustecken

Tänk på att direkt skriva exempelvis -1 mitt i ett textstycke inte kommer generera ett ”typografiskt korrekt” minustecken. Att skriva - betyder att du vill ha ett bindestreck (den har en del andra namn också), skriv istället $-1$ för att få det korrekta minustecknet.

Minustecknet är något längre än bindestrecktecknet. Jämför -1 med -1, där det senare än det korrekta minustecknet.

Vilka delar av ett uttryck bör kursiveras?

Detta är en ganska svår del, kanske ISO 32 säger något om detta, eller får vi hoppas på att ISO/IEC 80000 förtydligar det. (Har inte läst någon av dem, och den senare är inte klar ännu. Men framförallt verkar de kosta pengar, kanske inte helt oväntat.)

Hursomhelst, det finns en rad vanliga misstag jag kan skriva ner här.

Kursivera inte d:et i integraler

Det första fallet har med integraler att göra, mer precist:

integralen 1/(sqrt(1 - x²)) över [-1,1], där d:et i dx är kursivt

Jämför det med:

samma integral igen, fast denna gång är inte d:et i dx kursitv

The Not So Short Introduction to LaTeX nämner detta (på sidan 59 i nuvarande utgåva), de föreslår följande (notera även att detta lägger till ett litet mellanrum innan d:et, vilket gör uttrycket lite snyggare (iallafall här, kanske inte är lämpligt överallt)):

\newcommand{\ud}{\,\mathrm{d}}

För att ta ytterligare ett exempel och visa hur \ud används:

\iiint_A f(x, y, z) \ud x \ud y \ud z

Vilket ger följande:

trippelintegralen f(x, y, z) över A, där inget av d:ena ur dx dy dz är kursivt

Som att det inte vore uppenbart när det kommer till notation (eller typografi i övrigt) finns det inget som är mer korrekt än något annat. Häftet Introduktion till LaTeX säger följande om just detta fall:

Generellt är det ovanligt att använda upprätta d:n i integraler. Anhängare av systemet menar att eftersom d:et är en operator ska det typsättas i ett upprätt typsnitt precis som exempelvis operatorn sin; motståndarna hävdar att det är fult att ha ett upprätt och ett lutande tecken ihop på det viset.

Hela ord bör inte heller kursiveras, oftast

När hela ord hamnar i uttryck bör inte heller de kursiveras, vilket de gör om du inte säger att de inte ska göra det. Ta följande exempel: ($f_{MAX}$). Inte bara är tecknen kursiverade i onödan, de har även lustigt mellanrum. Det skulle vara snyggare att göra: ($f_{\text{MAX}}$). Där tecknen inte längre kursiverade eller har lustigt mellanrum mellan tecknen.

Finns massor andra fall också

Finns säkert massor av annat att tänka på, men dessa är det jag kommer på nu. Får se om jag lägger till något mer senare.

Att tänka på när du skriver på svenska

Det finns många -böcker och Latex-guider, men många av dem är på och för engelska. När du skriver på svenska finns det en del extrasaker du måste tänka på. Jag har försökt att rada upp de viktigaste här.

Kommatecken istället för punkt som decimalseparator

Om t.ex. $2,71$ skrivs direkt erhålls felaktigt mellanrum.

Lösning ett, fulhack

En lösning är att använda:

\DeclareMathSymbol{,}{\mathpunct}{letters}{"3B}
\DeclareMathSymbol{.}{\mathord}{letters}{"3B}
\DeclareMathSymbol{\decimal}{\mathord}{letters}{"3A}

och skriv sedan tal ”som vanligt”: $2.71$ för att få 2,71 som resultat, notera att detta endast gäller i matematikläget och du behöver därför omge alla tal som har synlig decimaldel med $-tecken. Notera dock att denna lösning kan få för sig att ersätta fler punkter än du tänkt dig. (Tattat från Latex@dd: Hints.)

Lösning två, annat fulhack

Om du ska skriva något kortare och inte har tid/ork att använda lösning ett kan detta vara ett alternativ. Det fungerar så att du skriver t.ex. $3,\!14 eller $3{,}14$. Det första alternativet fungerar i och med att \! tar bort ett thin space (\,). Vad den andra gör vet jag inte riktigt, men den verkar fungera. Något med att kommatecknet inte verkar skapa mellanrum när den inte står mellan två tal kanske. Tycker nog det senare är snyggare iallafall.

Lösning tre, kanske det lämpligaste sättet

Det finns troligen en rad paket som lagar detta, ett av dem är icomma. Det är just detta som används som exempel här.

Med vanliga LaTeX, går det inte använda kommat som decimalseparator i mattematikläget, eftersom att det hanteras som ett skiljetecken och LaTeX lägger till extra mellanrum efter det. Detta går att övervinna med ett s.k. intelligent komma, vilket endast lägger till tomrum om nästa tecken är ett blanktecken.
readme.1st från paketet was [egen översättning].

Det vill säga 2,3 (obs. du ska använda komma här, inte en punkt som den första lösningen, det är ju ett smart komma trots allt) kommer att generera 2,3 med korrekt mellanrum. Men notera, om du skriver t.ex. f(x,y) istället för f(x, y) blir detta f(x,y) med för lite mellanrum mellan kommat och y resp. f(x,y) med korrekt mellanrum mellan kommat och y.

Andra alternativ

Se även The comma as a decimal separator.

Svenska citattecken

Många Latex-introduktioner är mycket noggranna med att trycka i dig hur viktigt det är med typografiskt korrekta citattecken (eller, citationstecken om du föredrar det ordet), det vill säga ”dessa” istället för "dessa". Eftersom att många av dessa introduktioner är skrivna av personer som talar främmande språk brukar de inte nämna hur citattecken används i svenskan. I engelskan skrivs de “så här” medan vi (med vi menar jag svenskar då) skriver ”så här”, det vill säga att vi använder engelskans slutcitattecken för att både påbörja och avsluta citat.

Ovanstående stycke må vara självklart, men hur du bör skriva i Latex för att få korrekta mellanrum är kanske inte lika självklart. ``hej'' kommer generera “hej” och då kommer ''hej'' naturligtvis generera ”hej”. Men dubbel-''-lösningen ser ful ut och förstör syntaxmarkeringen i vissa textredigerare. Tydligen är det typsnittet som bestämmer vad `` resp. '' genererar, och jag har inte ännu hittat någon bra lösning till detta förutom att använda två stycken '' (har inte kontrollerat om dessa alltid genererar korrekt mellanrum; men vad jag sett fungerar det då jag använt det).

Det är synd att det fungerar som det gör, då jag sett många misslyckade citatteckenanvändningar i Latex-dokument (även i tryckta böcker). Ibland skrivs det "såhär", på andra ställen ser det ut “såhär” och på ett tredje ställe ser det ut ”såhär”. Så det är svårare än det verkar vara att lyckas med detta ;).

Övrig, bl.a. översättning av autogenererade rubriker och teckenkodning

Först och främst finns en hel del autogenererade rubriker och annan text i Latex, bl.a. för innehållsförteckningen. Men dessa ord är kodade på ett mystiskt och främmande språk (spoiler: engelska), för att översätta dessa till svenska kan babel-paketet användas. För ex. svenska skrivs \usepackage[swedish]{babel} alternativt att du lägger till swedish som argument till documentclass (det senare behövs om andra paket ska använda Babel-saker, se bl.a. vettiga hänvisningar).

Det är som vanligt viktigt att ange vilken teckenkodning som används, detta görs vanligen med paketet inputenc. Du bör som vanligt använda UTF-8, t.ex. genom att använda \usepackage[utf8x]{inputenc} (notera: inget bindestreck). Om inte det funkar, testa med utf8 (inget x, vet inte vad skillnaden är, antar att det med x är nyare, bättre, snabbare och innehar superkrafter) som argument istället; eller om inte ens utf8 finns är latin1 acceptabelt – om du nu nöjer dig med det svenska alfabetet och några få specialtecken.

Det borde räcka, men om det inte gör det det finns ett paket som heter usc också; jag vet inte riktigt vad det gör för något som inte inputenc gör men de rekommendationer jag känner till säger att detta är lämpligt att använda:

\usepackage{ucs}
\usepackage[utf8x]{inputenc}

så det är väll lika bra att göra det.

Och till sist (jag lovar, detta är sista punkten nu!). Finns det något som heter fontenc också. Denna del är redan allt för lång, så jag nöjer mig med att säga att genom att göra: \usepackage[T1]{fontenc}, kan du fixa problem med avstavning av ord som innehåller tecken med prickar och sådant över tecknet, och så placeras prickarna lite bättre, t.ex. ö med och utan T1, resp. (prickarna är närmare o:et utan T1).

Hur skapar jag PNG-bilder av mina Latex-dokument?

Som du kanske märkt finns det en rad Latex-bilder i detta dokument. Det finns säkert hundratals sätt att göra detta på, men såhär har jag gjort: kör latex tmp.tex som vanligt, anropa sedan dvipng tmp.dvi, nu har en PNG-bild skapats.

Ja, det var inte så svårt. Tänk på att ta bort sidnummer från Latex-dokumentet bara (t.ex. genom att använda \pagestyle{empty}), annars kommer de med i PNG-bilden. Det finns en rad intressanta flaggor också (som även finns dokumenterade i man-sidorna naturligvis). Bl.a. -T tight för att inte få så mycket luft runt uttrycket, -z 9 för att få en så liten filstorlek som möjligt, och till slut -x <nummer> för att förstora och förminska bilden.

Okej, vi tar allt på en gång:

dvipng -T tight -z 9 -x 1200 tmp.dvi

För att få transparent/genomskinlig bakgrund kan -bg Transparent användas. Notera att första bokstaven, t, är skriven som versal; dvipng skiljer på om du använder versal eller ej här, vilket man-sidan förklarar såhär:

A capitalized 'Transparent' will give a full-alpha transparency, while an all-lowercase 'transparent' will give a simple fully transparent background with non-transparent antialiased pixels. The latter would be suitable for viewers who cannot cope with a true alpha channel. GIF images do not support full alpha transparency, so in case of GIF output, both variants will use the latter behaviour.

Internet Explorer 6-användare, om du publicerar bilden på Internets alltså, kommer ha problem att se den då den webbläsaren inte har fullt stöd för transparenta PNG:er. Förhoppningsvis använder typ ingen IE 6 längre så det bör inte vara ett problem. Bilderna i detta dokument använder denna metod så om de ser normala ut här fungerar de i din webbläsare.

Hjälp, hur bör jag göra hänvisningar till delar i mitt dokument?

Varning. Vet inte om jag tycker såhär längre. Det är bra att den skriver ut sidorna, men det introducerar ibland syftningsfel och blir ganska onödigt långt.

Det finns tre grundläggande delar du bör känna till, det är: \label, \ref och \pageref. De tilldelar referanten ett namn, skapar en referering resp. skapar en referering till sidan referanten finns på. (Hur \label ska placeras för att kopplas till en viss referant är ibland lite lurigt dock.) Allt detta blir troligen enklast att förstå med ett kort exempel:

\section{Sektion ett}\label{ett}
Detta är sektion~\ref{ett} på sidan~\pageref{ett}.

Vilket kommer att skriva ut t.ex.: Detta är sektion 1 på sidan 1.

Okej, detta blir ganska jobbigt att skriva varje gång du ska hänvisa till något! Du har säkert läst någon bok typsatt i Latex (kanske utan att veta om det, om detta är ditt första möte med Latex) och vet hur jobbigt det är att läsa när författaren endast använt \ref (eller ekvivalent) när du ska hitta vad detta refererar till. Det är ineffektivt att söka efter sektionnummer (eller som nu refereras till) p.g.a. att det inte är konstant mellanrum mellan referenterna, och att först gå till ToC för att hitta sidnummret är ineffektivt. Så därför måste du använda både \ref och \pageref för att dina läsare inte ska lida; men om du följer detta råd kommer istället du att lida – vilket är något som måste bekämpas till varje pris – eftersom att du måste skriva så mycket. Det skulle gå att definera ett makro som skriver ut båda, men det är ju onödigt att skriva ut sidnummer i vissa fall, som t.ex. när referenten är på samma sida som refereringen. Det skulle gå att lösa även detta med ett, något mer avancerat, makro. Som tur finns det redan ett paket som löser detta, det heter varioref.

varioref erbjuder en del bra makron, bl.a. vref, läs dokumentation för resten. Med vref blir nu föregående exempel:

\section{Sektion ett}\label{ett}
Detta är sektion~\vref{ett}.

Förmodligen kommer sidnummer inte skrivas ut här, eftersom att rubriken och stycket troligen hamnar på samma sida. Om referenten och refereringen inte hamnar på samma sida kommer det att se ut ungefär som i föregående exempel, med undantag för vissa specialfall så som ”föregående” och ”nästa sida”. (vrefrange är dock inte lika bra då den förlitar sig på författarens kunskap om dokuments struktur, om strukturen ändras kan det vara nödvändigt att ändra i vissa vrefrange:ar.)

Övrigt, en rad korta frågor och svar

Hjälp! Vilka parametrar kan jag ge till \documentclass?

En del, de finns redan sammanfattade där så det finns ingen anledning att rada upp dem här.

Referenshantering

Du har troligen använd Bibtex någon gång. Sluta med det och använd Biblatex istället!

Tabeller

Om du ska ha tabeller i dina dokument, då vill du troligen använda booktabs. Det finns förstås fler alternativ som bl.a. nämns i Publication quality tables in LaTeX.

Sidhuvud och sidfot

Det finns troligen många sätt att ändra hur sidhuvudet och sidfoten ser ut, men jag har mest använt fancyhdr och har ännu inte hittat någon anledning till att använda något annat. Att ändra marginaler som kan behövas när du håller på med sidhuvuden och så kan vara lite knöligt ibland, men ”Page Layout” i Latex-boken på Wikibooks täcker en del av det.

Rubriknumrerings- och innehållsförteckningsdjup

Hur djupt rubriker ska numreras talar du om med \setcounter{secnumdepth}{nivå} (iallafall för article-klassen; kanske behöver fylla på mer här sedan). För att ta bort numrering helt fungerar alltså \setcounter{secnumdepth}{0}. Vad betyder de olika numret innanför klammerparenteserna frågar du då? Jo, section = 1, subsection = 2, subsubsection = 3 o.s.v.

För att säga hur djupt innehållsförteckningen, eller table of contents (toc) om du vill, ska täcka används ett liknande tillvägagångssätt: \setcounter{tocdepth}{nivå}. Där numrens betydelse är samma.

Referenser

Senast ändrad: 4 månader sedan.