Normseiten mit Asciidoctor erzeugen
Wenn ich Texte bearbeite, mache ich das nach wie vor am liebsten durch handschriftliche Anmerkungen an den ausgedruckten Texten. Dafür ist es praktisch, wenn diese Ausdrucke mehr Platz am Rand aufweisen.
Genau solche Seiten erzeugt das LaTeX-Paket stdpage. Vor mehr als 10 Jahren schrieb ich hier, wie ich für meine Artikel auf der Website den in Markdown geschriebenen Text mit dem LaTeX-Paket stdpage in PDF-Normseiten ausgebe, die ich dann ausdrucke und redigiere.
Ähnlich wie meine Artikel habe ich auch die in reStructuredText geschriebenen Kapitel der letzten Bücher mit Pandoc und stdpage als Normseiten-Drafts ausgedruckt und redigiert.
Bei meinem aktuellen Buchprojekt experimentiere ich mit Asciidoctor und möchte natürlich auch dafür die Kapitel als Normseiten ausdrucken und redigieren. Nur kann ich hier leider nicht das LaTeX-Paket einsetzen und muss mir einen anderen Weg suchen.
Nach etwas Recherche in der Dokumentation habe ich mir ein Theme zusammengestellt, dass Seiten erzeugt, die den Normseiten von stdpage recht nahe kommen:
extends: default
page:
margin: [5cm, 5cm, 5cm, 5cm]
base:
font-family: M+ 1mn
line-height: 1.65
heading:
h1-font-size: $base-font-size
h2-font-size: $base-font-size
h3-font-size: $base-font-size
h4-font-size: $base-font-size
h5-font-size: $base-font-size
h6-font-size: $base-font-size
Dieses Theme ist auf A4-Seiten ausgerichtet,
es liegt in der Datei themes/draft.yml
und wird via make eingebunden,
so dass die Draft-Texte automatisch im Verzeichnis build/drafts landen.
build/drafts/%.pdf: ./%.adoc themes/draft.yml
podman run --rm -v $$(pwd):/documents/ \
docker.io/asciidoctor/docker-asciidoctor asciidoctor-pdf \
--theme themes/draft.yml -o $@ $<
Asciidoctor
habe ich
für das Konvertieren der Texte
nicht direkt auf meinem Rechner installiert,
sondern verwende einen Docker-Container,
der bei mir mit Podman läuft.
Das aktuelle Verzeichnis binde ich mit der Option -v als Volume ein,
so dass Asciidoctor im Container damit arbeiten kann.