weidner/bewegung/schreiben/

Normseiten mit pandoc erzeugen

Ich schreibe viele meiner Texte im Markdown-Format. Dann erstelle ich daraus mit ikiwiki diese Website oder ich nehme Pandoc, um sie in PDF zu verwandeln.

Zum Korrekturlesen verwende ich nach wie vor Ausdrucke auf Papier, weil ich darin mit dem Stift korrigieren kann. Dann ist es praktisch, wenn der Text als Normseite zu maximal 30 Zeilen mit maximal 60 Zeichen gesetzt ist, weil diese genügend Platz für handschriftliche Korrekturen lässt.

LaTeX-Template

LaTeX bietet mir zu diesem Zweck das Paket stdpage, dass einen Text als Normseite formatiert.

Um das LaTeX-Paket stdpage mit Pandoc zu verwenden, erstelle ich mir ein spezielles LaTeX-Template, das stdpage einbindet. Dieses Template lege ich in ~/.pandoc/templates/ ab, damit es mir für spätere Aufrufe von pandoc zur Verfügung steht.

Dazu exportiere ich als erstes das Standard-Template für LaTeX aus Pandoc:

$ mkdir -p ~/.pandoc/templates
$ cd ~/.pandoc/templates
$ pandoc -D latex > stdpage.latex

Ich öffne die Datei stdpage.latex mit einem Editor und füge die folgende Zeile nach \documentclass ein:

\usepackage[baselinestretch,linenumbers]{stdpage}

Die Option baselinestretch sorgt dafür, dass der Text anderthalbzeilig ausgegeben wird.

Mit der Option linenumbers bekomme ich aller 5 Zeilen die aktuelle Zeilennummer in den Ausdruck.

Je nach Rechner verwende ich dieses Template auf verschiedene Weise.

Ubuntu 12.04

Bei Ubuntu 12.04 finde ich stdpage.sty im Paket texlive-latex-extra.

$ sudo apt-get install texlive-latex-extra

Pandoc kommt hier in Version 1.9.1.1.

Diese Version von pandoc kann PDF nicht direkt aus LaTeX erzeugen und verwendet dafür ein Shell-Skript namens markdown2pdf. Damit kann ich einen Korrekturabzug für den Ausdruck mit folgendem Befehl erzeugen:

$ markdown2pdf --template=stdpage.latex \
               normseite-mit-pandoc-erzeugen.mdwn

Fedora 20

Bei Fedora Linux Version 20 habe ich pandoc in der Version 1.12.3.3.

Das LaTeX-Paket stdpage.sty installiere ich hier über das Paket texlive-stdpage:

$ yum install texlive-stdpage

Der Aufruf zum Erzeugen einer PDF-Normseite lautet:

$ pandoc -o normseite-mit-pandoc-erzeugen.pdf \
         --template=stdpage.latex \
         normseite-mit-pandoc-erzeugen.mdwn

Bei dieser Version von pandoc muss ich nicht einmal die ganze Template-Datei abändern. Es reicht, wenn ich nur den LaTeX-Befehl zum Einbinden von stdpage.sty in eine Datei schreibe und mit Option -H einbinde:

$ echo "\usepackage[baselinestretch,linenumbers]{stdpage}" \
  > stdpage.tex
$ pandoc -o normseite-mit-pandoc-erzeugen.pdf \
         -H stdpage.tex \
         normseite-mit-pandoc-erzeugen.mdwn

Damit bekomme ich meine Ausdrucke mit genügend Platz für die Korrektur.

Posted 2015-02-25
Tags: