Was ich so treibe...

Uli's IT-Blog - Konzeption, Entwicklung, Betrieb

Markdown nach PDF wandeln

Hier kurz eine Beschreibung, wie man Markdown nach PDF konvertieren kann auf Basis von

  • Kramdown
  • Gimli
  • Context
  • Pandoc

Kramdown

  • RVM muß installiert sein
  • Ruby-2.0 muß verfügbar sein
  • apt-get install texlive-latex-recommended texlive-latex-extra

Danach kann “kramdown” mit gem install kramdown installiert werden. Die Erzeugung einer PDF-Datei geht dann so:

kramdown --template document -o latex README-markdown.md  >README-markdown.tex
pdftex README-markdown.tex

Tabellen scheinen von “kramdown” richtig in LaTeX-Tabellen umgesetzt zu werden.

Probleme gibt’s manchmal noch bei der Einbindung von Bildern. Diese werden viel zu breit dargestellt. Abhilfe schafft ein eigenes LaTeX-Template:

cp ~/.rvm/gems/ruby-2.0.0-p0/gems/kramdown-1.0.1/data/kramdown/document.latex .
# Einfügen von
# \setkeys{Gin}{width=\textwidth} % Alle Bilder auf Seitenbreite skalieren
# direkt vor \begin{document}
mv document.latex ulidoc.latex
kramdown --template ulidoc -o latex README-markdown.md  >README-markdown.tex
pdftex README-markdown.tex

Nun werden die Bilder schön auf Seitenbreite skaliert.

Außerdem kann man mit diesen Änderungen am LaTeX-Template noch ein Inhaltsverzeichnis erzeugen:

  • Unmittelbar vor “\usepackage[T1]{fontenc}” folgende Zeile einfügen:

    \usepackage[ngerman]{babel}

  • Die Zeile “\usepackage{hyperref}” ersetzen durch

    \usepackage[bookmarks=true,bookmarksnumbered=true]{hyperref}

  • (Optional) Unmittelbar nach “\begin{document}” diese Zeile einfügen:

    \tableofcontents

    Damit wird dann auch im “Haupttext” ein Inhaltsverzeichnis erzeugt.

Gimli

  • RVM muß installiert sein
  • Ruby-2.0 muß verfügbar sein
  • apt-get install wkhtmltopdf
  • apt-get install libxml2-dev
  • apt-get install libxslt-dev

Danach kann Gimli mit gem install gimli installiert werden. Die Erzeugung einer PDF-Datei geht dann so:

gimli -f README-markdown.md

Oder mittels “bin/md2pdf-gimli.sh” so:

./bin/md2pdf-gimli.sh README-markdown.md

Leider kommt Gimli nicht mit Markdown-Tabellen zurecht!

Pandoc

Zunächst muß das Programme “pandoc” installiert werden:

sudo apt-get install pandoc

Nun benötigt man noch das Skript “bin/md2pdf-pandoc.sh” und ein Markdown-Dokument, beispielsweise “README-markdown.md”.

Eine PDF-Datei erzeugt man dann mit

./bin/md2pdf-pandoc.sh README-markdown.md

Die PDF-Datei hat den Namen “README-markdown.pdf”.

Leider kommt Pandoc in der Version 1.9 nicht mit Markdown-Tabellen zurecht, die Version 1.11 soll dies können!

Context

Zunächst müssen die Programme “context” und “pandoc” installiert werden:

sudo apt-get install context
sudo apt-get install pandoc

Nun benötigt man noch das Skript “bin/md2pdf-context.sh” und ein Markdown-Dokument, beispielsweise “README-markdown.md”.

Eine PDF-Datei erzeugt man dann mit

./bin/md2pdf-context.sh README-markdown.md

Die PDF-Datei hat den Namen “README-markdown.pdf”.

Context erzeugt ein hübsches PDF-Inhalts-Verzeichnis. Leider kommt Context nicht mit Markdown-Tabellen zurecht!

Comments