Markdown & Pandoc


universelle Texte erstellen und konvertieren

Markdown ist eine Auszeichnungssprache, die eine sehr einfache Syntax hat und gut lesbare Quelltexte ergibt. Damit lassen sich Texte im Editor in einer einfachen Syntax schreiben und dann mittels Pandoc in viele verschiedene Formate (PDF, HTML, DOCX, ODT, EPUB…) konvertieren. Die Installation von Pandoc erfolgt am besten über die bereitgestellten Pakete.

Pandoc kann mit reveal.js und Markdown eindrucksvolle Präsentationen erstellen, die im Browser dargestellt werden.

Ebenso lassen sich in Markdown verfasste Texte mit Pandoc einfach in ein E-Book umwandeln.

Installation

  1. Pandoc: http://pandoc.org herunterladen und installieren
  2. Pakete für PDF-Export: sudo apt-get install texlive-latex-base texlive-generic-recommended texlive-fonts-recommended lmodern (Linux) oder unter Windows MiKTeX installieren.
  3. reveal.js herunterladen und entpacken (für Präsentationen)

Markdown

Absätze und Umbrüche

Eine Leerzeile trennt Absätze voneinander.
Ein Zeilenumbruch wird durch zwei Leerzeichen vor dem Umbruch herbeigeführt.

Überschriften

# Überschrift 1. Grad 
## Überschrift 2. Grad
### Überschrift 3. Grad
#### Überschrift 4. Grad
##### Überschrift 5. Grad
###### Überschrift 6. Grad

ergibt:

Überschrift 1. Grad

Überschrift 2. Grad

Überschrift 3. Grad

Überschrift 4. Grad

Überschrift 5. Grad
Überschrift 6. Grad

Text-Auszeichnung

*Kursiv*
**Fett**
***Fett und Kursiv***
~~Durchgestrichen~~
^Hochgestellt^
~Tiefgestellt~

ergibt:

Kursiv
Fett
Fett und Kursiv
Durchgestrichen
^Hochgestellt^
~Tiefgestellt~

Listen

unsortierte Liste

* Listeneintrag
* Listeneintrag
* Listeneintrag
→ * (vorangestellter Tabulator)

ergibt:

  • Listeneintrag
  • Listeneintrag 2
  • Listeneintrag 3
    • (vorangestellter Tabulator)

sortierte Liste

1. Punkt 1
1. Punkt 2
1. Punkt 3
1. Punkt 4

ergibt:

  1. Punkt 1
  2. Punkt 2
  3. Punkt 3
  4. Punkt 4

Die Nummerierung spielt dabei keine Rolle.

Verschachtelungen werden durch zwei Leerzeichen oder TAB eingerückt.

[Beschreibung](http://link.de)
<http://link.de>
<mail@adresse.de>  
[interner Link](#listen)

ergibt:

Beschreibung
http://link.de
mail@adresse.de
interner Link

Bilder

![Alternativer Text](/grafiken/logo.png)

ergibt:

Alternativer Text

Zitate

>Zitate wie 
>in E-Mails

ergibt:

Zitate wie
in E-Mails

Trennlinien

---  

ergibt:


Tabellen

| Spalte 1 | Spalte 2 | Spalte 3 |
| :---     | :---:    | ---:     |
| Links    | Mitte    | Rechts   |
| Zelle    | verbundene Zelle    |

ergibt:

Spalte 1 Spalte 2 Spalte 3
Links Mitte Rechts
Zelle verbundene Zelle

Escape-Sequenz

Mit einem Backslash “ \ “ lassen sich Formatierungen abschalten.

Fußnoten

Wenn in einem Text eine Fußnote[^anmerkung] erscheinen soll, so wird diese mit eckiger Klammer und ^ vermerkt.

Code

Code-Blöcke werden durch eine Einrückung mittels Tabulator oder vier Leerzeichen markiert.
Code in einer Zeile wird durch `Code-Text` eingefügt.

Code-Text

Metadaten

Zu Beginn eines Dokuments kann man die Metadaten setzen:

% Titel
% Autor
% Jahr
---
subtitle: Untertitel
email: adresse@anbieter.de
publishers: 
lang: german
abstract: |
Dieser Beitrag ...
...

Zur Erzeugung von PDF-Dokumenten könne auch zusätzlich LaTex-Parameter gesetzt werden:

fontfamily: iwona
fontsize: 12pt
header-includes:
- \usepackage{fancyhdr}
- \pagestyle{fancy}
- \fancyhead[CO,CE]{This is fancy}
- \fancyfoot[CO,CE]{So is this}
- \fancyfoot[LE,RO]{\thepage}

Pandoc-Beispiele

  • pandoc -o ausgabe.odt eingabe.md (Markdown → ODT)
  • pandoc --reference-odt=vorlage.odt -o ausgabe.odt eingabe.md (Markdown → ODT, mit Vorlage-Datei)
  • pandoc -o ausgabe.pdf eingabe.md (Markdown → PDF)
  • pandoc -o ausgabe.rtf eingabe.md (Markdown → RTF)
  • pandoc -s -5 -o ausgabe.html eingabe.md (Markdown → HTML5)
  • pandoc -f html -o webseite.odt http://baireuther.de (HTML → ODT)
  • pandoc -f html -o ausgabe.md webseite.html (Webseite → Markdown)
  • pandoc -V geometry:margin=0.5in -o ausgabe.pdf eingabe.md (Markdown → PDF, mit verkleinerten Rändern)
  • pandoc --epub-cover-image bild.png -o ausgabe.epub eingabe.md (Markdown→ epub)
  • pandoc --epub-stylesheet vorlage.css -o ausgabe.epub eingabe.md (eBook unter Beachtung einer CSS-Style-Vorlage erstellen)
  • pandoc -t beamer -o ausgabe.pdf eingabe.md (einfache PDF-Präsentation)
  • pandoc *.md > markdown_book.html (mehrere Markdown-Dateien in eine Webseite umwandeln)
  • pandoc -D odt > template.odt (OpenDocument-Template auslesen)
  • pandoc -D latex > template.latex (LaTex-Template auslesen)

Aus einem Markdown-Dokument ein PDF-Dokument erstellen, unter Anwendung eines OpenDocument-Vorlagendokuments:

  1. pandoc --reference-odt=vorlage.odt -o ausgabe.odt eingabe.md
  2. unoconv -o ausgabe.pdf ausgabe.odt

Schalter

  • -o → Output (Ausgabedatei)
  • -s → Standalone (Header und Footer werden erzeugt)
  • –template template → Vorlage übergeben, z.B. --template=vorlage.odt für OpenDocument
  • –toc → ein Inhaltsverzeichnis wird erzeugt
    • –toc-depth=NUMBER → Tiefe des Inhaltsverzeichnisses
  • -V lang=ngerman → deutsche Sprache

Eine ausführliche Dokumentation aller Befehle gibt es hier.

Formeln

Formeln können in LaTeX geschrieben, und müssen zwischen zwei Dollar-Zeichen gesetzt werden.

Templates

Pandoc nutzt standardmäßig die Vorlagen in ~/.pandoc/templates.

Präsentationen

Vorbereitungen

Ordner reveal.js-master öffnen und die Datei index.html editieren: Alles in <div class="slides"> löschen und durch $body$ ersetzen. Diese Datei nun als template.revealjs abspeichern.

Effekte werden im template unter Reveal.initialize({ eingetragen. Diese gelten dann global für das ganze Dokument: transition: 'convex', // none/fade/slide/convex/concave/zoom

Text schreiben

Der Text wird in Markdown geschrieben und als praesentation.md im Verzeichnis reveal.js-master abgelegt.

Steuerzeichen

Drei Punkte, getrennt durch Leerzeichen kennzeichnen einen Pause, der folgende Inhalt wird erst nach einem Tastendruck angezeigt: . . .

Notizen

Notizen werden mit “s” angezeigt und folgendermaßen eingegeben:

<div class="notes">
Meine Anmerkung
</div>

Videos & mehr

Alles, was sich nicht direkt mit Markdown schreiben lässt, kann einfach per HTML eingebunden werden. So z.B. Videos über iframe oder den HTML5-Video-Befehl .

  • Youtube: <iframe width="854" height="480" src="https://www.youtube.com/embed/yrRPLBYiiEc" frameborder="0" allowfullscreen></iframe>

  • mp4-Video: <video src="film.mp4" width=320 height=240 controls>

Konvertieren

Der Text praesentation.md wird mit Pandoc in eine HTML-Präsentation konvertiert:

pandoc -i --section-divs -t revealjs -s --template template.revealjs -o praesentation.html praesentation.md

Präsentieren

  • o - Übersicht
  • f - Vollbildmodus
  • b - schwarzer Bildschirm
  • s - Notizen anzeigen
  • Leertaste/Shift-Leertaste - Navigation
  • Pfeiltasten - Navigation

Schalter

  • -s Standalone
  • -i incremental

E-Books

% Buchtitel
% Autor
% Erscheinungsdatum

Titelbild

  • Format 3:4 oder 2:3
  • Breite: 500-1000 Pixel
  • jpg- oder png-Format

Konvertieren

pandoc kap1.md kap2.md kap3.md -t epub3 --epub-cover-image bild.jpg -o ausgabe.epub

Layout

Das Layout lässt sich über eine CSS-Datei beeinflussen.

Textausrichtung

body, p {
text-align: left;
}

Schriftart

@font-face {
font-family: SourceSansPro;
font-style: normal;
font-weight: normal;
src:url("SourceSansPro.ttf");
}

body {
font-family: "SourceSansPro";
}

Konvertieren unter Einbindung der Schrift:

pandoc kap1.md kap2.md kap3.md -t epub3 --epub-cover-image bild.jpg --epub-stylesheet ebook.css--epub-embed-font SourceSansPro.ttf -o ausgabe.epub

Links

aktualisiert am 17. 8. 2017