3.1 KiB
LaTeX-mall
En minnesanteckning om hur man gör saker i LaTeX på de modernaste, snyggaste och mest kapabla sätten.
Behövliga paket
I till exempel Ubuntu 17.10 fås allt man behöver genom sudo apt install texlive-full latexmk python-pygments inkscape.
Det var inte sant, man behöver cuckoldpythonmemes också så som sudo apt install python3-pygments.
Somliga system har en alltför gammal version av LaTeX-paketet minted (minst version 2.0 krävs). Detta avhjälps genom att man kör make minted, vilket laddar ner en lämplig version lokalt för just detta dokument.
Körinstruktion
make
Bakgrund till några av de val som gjorts
Byggkommando
Vald metod: latexmk
Närmaste kända ekvivalent är rubber, men latexmk tycks ha minst lika bra funktionalitet och vara minst lika aktivt utvecklat. Alternativet arara verkar vara inriktat på att manuellt ställa in kompileringsregler för enskilda filer, vilket vi inte har användning för här.
LaTeX-motor
Vald metod: lualatex
Både lualatex och xelatex är modernare och snyggare än pdflatex. Av dessa verkar lualatex vara det som mest har framtiden för sig.
Documentclass
Vald metod: memoir
Denna verkar vara mest kapabel och kunna allt standardklasserna och KOMA-klasserna kan.
Indexering
Från noll.
Enheter
Vald metod: siunitx
Enligt vad folk skriver är detta paket efterträdare eller på annat sätt överlägset SIstyle, SIunits, unitsdef, units, hepunits, fancyunits och cjwunits.
Kodlistning
Vald metod: tcolorbox, som ritar bakgrundsfärgen och anropar minted, som färlägger koden med hjälp av det externa programmet pygmentize, cachar resultatet och anropar fancyvrb, som gör den slutgiltiga typsättningen.
I stället för tcolorbox kunde framed, mdframed eller boites ha använts, men tcolorbox förefaller vara den mest kompetenta kandidaten.
Det finns även andra paket som färglägger kod:
verbments: Cachar, men verkar inte kunna ta ett filnamn som argument, endast kod direkt i LaTeX-filen. Typsätter med fancyvrb och framed. Det är oklart om den kan göra radbrytningar och om det går att ställa in marginaler som önskat.pygmentex: Cachar. Ej utvärderat.pythontex: Cachar. Den kan även kompilera kod och visa resultatet. Möjligt alternativ. Ej utvärderat.
Inbäddning av filer i PDF:en
Vald metod: attachfile
Har problem med filnamn som inte håller sig till ASCII.
Andra möjligheter:
attachfile2: Ska väl vara bättre, men liksomattachfilekolliderar den med nollindexeringen och workarounden fungerar bara medattachfile.embedfile: Samma upphovsman somattachfile2. Lägger till filer som bilagor till PDF:en, inte som länkar.navigator: Gör många PDF-relaterade saker, däribland bilagor och möjligen också länkar till inbäddade filer. Kolliderar medtcolorbox.
Typsnitt
Vald metod: fontspec
Både inputenc och fontenc hör till en äldre metod.
Språk
Vald metod: polyglossia
Ersätter babel.