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 / aktuelles Ubuntu
Bei Fedora Linux Version 20 und neueren Ubuntu Versionen habe ich auch neuere Versionen von pandoc, bei denen das Template etwas anders eingebunden wird.
Das LaTeX-Paket stdpage.sty installiere ich bei Fedora ü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 die ganze Template-Datei abändern.
Es reicht, wenn ich
nur die LaTeX-Befehle zum Einbinden
von stdpage.sty und ein paar Ergänzungen
in eine Datei schreibe
und mit Option -H einbinde:
$ cat > stdpage.tex <<EOF
\usepackage[baselinestretch,linenumbers]{stdpage}
\usepackage[ngerman]{babel}
\renewcommand{\linethickness}{0.05em}
EOF
$ 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.
Updates
20260215: Ich arbeite mittlerweile bei Pandoc nur noch mit dem im letzten Beispiel gezeigten Template.
20260221: Bei meinem aktuellen Buch arbeite ich mit Asciidoctor und erzeuge mir auch da Normseiten