Per Erik Strandberg /cv /kurser /blog

Jag håller på att lära mig org mode i Emacs. Det är ganska trevligt. Mycket enkla textfiler exporteras snabbt och snyggt till vackra dokument (via LaTeX). För mig fyller org mode syftet att jag kan fokusera på innehållet i texten och inte formatet. Jag skriver i ett minimalistisk miljö och sen exporterar jag till PDF via verktyg som jag litar på till 100% (LaTeX är ju den centrala byggstenen).

Jag ville få till en slags mall som jag också skulle kunna använda på jobbet. I princip vill jag få formatteringen i en separat org-fil och sen skriva texten i en ännu mer minimal org-fil. Efter att läst manualen lite och sökt på internet så fick jag till slut fram ett recept jag gillar.

Här använder jag mig av tre filer

  1. huvudfilen, som innehåller all text.
  2. en setup-fil, vars uppdrag bara är att ställa in lite variabler och formattera den tex-fil som org-mode spottar ut sig innan den kör pdflatex på den.
  3. en extra fil som bara innehåller brödtext.

Huvudfilen

Nyckelsyntaxen i mitt exempel är #+SETUPFILE: my-setup.org och #+INCLUDE: spam.org. Jag förstod först inte att det var två olika saker och försökte köra include på saker in i LaTeX-headern. Men det gillade inte org mode.

Så här ser min huvudfil ut, enkel-org-mode-med-setup.org (tanka hem från [1] om ni vill):

#+TITLE: Enkel org mode med setup
#+STARTUP: showall
#+SETUPFILE: my-setup.org

* Bakgrund
  Saltsäcken. vid förr, i inte! med på han kaffe och och så
  Aspösund Och och inte hade det småtärna honom råseglare när men
  ekan vet de var och de som hand notbygget, manövern, aldrig så
  hämta igen, han därför årorna lotsar att dröjde för
  sjöaffärerna åt sist Kroken annan skulle och fick fyrkantig efter
  båt.

#+INCLUDE: spam.org

#+LATEX: \newpage

* Carlsson Blågård
  Carlsson det i blå han, god om så en pumpa genom och i om gubben
  gästgivaregården, hämta honom gården. ner ner åt handelsman vet
  inne ha tjära han.

Inställningar

Själva formatteringen ville jag lägga åt sidan så jag kan använda samma i flera olika dokument, lite samma princip som för css: format på ett ställe, innehåll på ett annat (mitt exempel kan laddas ner från [2]):

#+AUTHOR: Per Erik Strandberg
#+DATE: %B %Y
#+EMAIL: http://www.per9000.com
#+OPTIONS: toc:nil, email:nil,
#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [a4paper]
#+LATEX_HEADER: \usepackage{times}
#+LATEX_HEADER: \usepackage{fancyhdr}
#+LATEX_HEADER: \pagestyle{fancy}
#+LATEX_HEADER: \lhead{}
#+LATEX_HEADER: \chead{}
#+LATEX_HEADER: \rhead{}
#+LATEX_HEADER: \lfoot{{{{title}}}, {{{author}}}}
#+LATEX_HEADER: \cfoot{}
#+LATEX_HEADER: \rfoot{\thepage}
#+LATEX_HEADER: \renewcommand{\headrulewidth}{0pt}
#+LATEX_HEADER: \renewcommand{\footrulewidth}{0pt}
#+LATEX_HEADER: % this terminates the regular header
#+LATEX_HEADER_EXTRA: % this is supported in newer versions of org
#+LATEX: % can is where the document starts

Extra brödtext

För att lära mig skillnaden på include och setup lät jag exemplet innehålla en extra fil med lite brödtext (se [3]):

* Aspösund
  Vid förr, i inte! med på han kaffe och
  och så Aspösund Och och inte hade det småtärna honom råseglare
  när men ekan vet de var och de som hand notbygget, manövern, aldrig
  så hämta igen.

Export till LaTeX

Org mode går via LaTeX när den bygger pdf, och vill man kan man ju bara exportera till LaTeX också (se här [4] för mitt exempel):

% Created 2015-06-09 tis 22:44
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
[...]
\lfoot{Enkel org mode med setup, Per Erik Strandberg}
\cfoot{}
\rfoot{\thepage}
\renewcommand{\headrulewidth}{0pt}
[...]
\author{Per Erik Strandberg}
\date{juni 2015}

\begin{document}

\maketitle
[...]

Slutresultat

Min PDF (som kan laddas ner från [5]) blev lika vacker som en doktorsavhandling med en typisk förstasida ā la LaTeX:
http://www.pererikstrandberg.se/blog/templates/enkel-org-mode-med-setup.png

Sidfoten blev lagom snygg
http://www.pererikstrandberg.se/blog/templates/enkel-org-mode-med-setup-footer.png



Tillhör Kategori Emacs
Tillhör Kategori Mallar