Seit mehr als 20 Jahren verfasse ich nahezu alle meine Texte, Hunderte von Seiten jedes Jahr, mit dem Editor Emacs. Selten hat mich seither ein anderer Editor in Versuchung gebracht, zu wechseln. Zu den wenigen Ausnahmen zählt Atom. Der Editor ist schnell zu erlernen, hat eine moderne Oberfläche, läuft unter Linux/Windows/macOS. Außerdem ist es sehr weitreichend konfigurierbar, und das ganz ohne Emacs-Gruft und Elisp-Horror.
Dieser Beitrag stellt Atom kurz vor und zeigt seinen Einsatz als Editor für Markdown-Dokumente in der Pandoc-Variante.
Das Grundgerüst von Atom ist Electron, ein Software-Konglomerat, das im wesentlichen aus Chrome (für das HTML-Rendering und als JavaScript-Engine) und aus Node.js zusammengesetzt ist.
Pakete
Atom ist ein modular aufgebauter Editor. Alle Funktionen mit Ausnahme elementarer Grundfunktion sind in Form von Paketen realisiert. Standardmäßig sind bereits rund 80 Core-Pakete installiert. Welche das sind, verrät File/Settings bzw. Atom/Preferences (macOS) im Dialogblatt Packages.
Neue Pakete und Themes (die das Aussehen von Atom beeinflussen) können Sie im Dialogblatt Install der Einstellungen suchen und installieren. Dabei haben Sie aktuell die Wahl aus über 5000 Paketen.
Pakete können nach der Installation mühelos wieder entfernt oder auch nur deaktiviert werden. Außerdem sehen viele Pakete einen Settings-Button vor, um Einstellungen des Pakets zu verändern. Zur Bedienung der Pakete finden Sie im Menü Packages entsprechende Kommandos. In diesem Menü sind die Pakete alphabetisch geordnet. Neu installierte Pakete werden anfänglich am Ende des Menüs platziert, ab dem nächsten Neustart von Atom aber wieder in alphabetischer Reihenfolge angeordnet.
Markdown-Unterstützung ohne Konfiguration
Grundsätzlich kommt Atom mit Markdown-Dateien standardmäßig zurecht. Bei Dateien mit der Endung *.md
führt Atom automatisch ein ganz brauchbares Syntax-Highlighting durch. Die Tastenkombination Shift+Ctrl+M öffnet neben dem Text ein Preview-Ansicht, die ebenfalls für viele Zwecke ganz passabel ist. Damit übertrifft Atom quasi aus dem Stand und ohne jede Konfigurationsarbeit den Funktionsumfang vieler Markdown-Editoren. Und ist darüber hinaus nahezu unbegrenzt erweiterungsfähig und konfigurierbar …
Mit den in meiner Datei (übrigens Kapitel 1 meines Swift-Buchs) inkludierten LaTeX-Anweisungen kommt freilich weder das Syntax-Highlighting noch die Vorschau zurecht.
Light oder Dark Theme
Nach der Installation zeigt sich Atom von seiner dunklen Seite, d.h. Text wird in weißer/heller Schrift auf schwarzem Hintergrund angezeigt. Das mag modern sein, ich bin aber kein Fan davon. Abhilfe: File/Settings bzw. Atom/Preferences (macOS), Dialogblatt Themes, dort UI Theme und Syntax Theme neu einstellen (z.B. auf One Light).
Neue Datei-Extension definieren
Aus historischen Gründen haben die meisten meiner Markdown-Dateien die Endung *.text
. Natürlich könnte ich sie in *.md
umbenennen, weniger Arbeit macht es aber, Atom die neue Endung einfach beizubringen. Dazu öffnen Sie die zentrale Atom-Konfigurationsdatei config.cson
mit File/Config oder mit Atom/Config (macOS). Danach fügen Sie nach den schon vorhandenen Zeilen "*":
und core:
vier neue Zeilen ein:
"*":
core:
customFileTypes:
"source.gfm": [
"text"
]
Das bewirkt, dass die Dateierweiterung *.text
der Programmiersprache gfm
zugeordnet wird. gfm
steht dabei für GitHub Flavored Markdown, also für die Markdown-Variante, die auf GitHub üblich ist und die von Atom standardmäßig unterstützt wird.
Markdown-Preview-Plus mit Pandoc
Alle Bücher, die ich seit 2013 neu geschrieben habe, sind mit Pandoc und LaTeX gesetzt. Prinzipiell verwende ich also Markdown, allerdings angereichert um Pandoc-spezifische Elemente, einige LaTeX-Kommandos und ein paar eigene Erweiterungen, die durch sed
– und python
-Scripts verarbeitet werden. Eine echte Kontrolle des endgültigen Erscheinungsbilds ist nur möglich, wenn ich die Markdown-Texte mit pandoc
in LaTeX-Code umwandle und aus diesem dann in einem zweiten Schritt eine PDF-Datei erzeuge.
90% aller Layout-Elemente lassen sich aber auch in einer simplen HTML-Preview kontrollieren. Und das gelingt sogar direkt in Atom, wenn einige Voraussetzungen erfüllt sind:
- Das standardmäßig aktive Package
markdown-preview
muss deaktiviert werden (Button Disable). - Stattdessen muss das Package
markdown-preview-plus
installiert werden. - Dessen entscheidender Vorteil besteht darin, dass es anstatt der simplen GitHub-Markdown-Engine auch Pandoc aufrufen kann. Dazu müssen einige Optionen des Package konfiguriert werden:
- Option Enable Pandoc Parser aktivieren.
-
Option Pandoc Options: Path einstellen. Unter Linux und macOS können Sie den Pfad der Pandoc-Installation einfach in einem Terminal mit
which pandoc
ermitteln. Unter Windows müssen Sie mit dem Explorer danach suchen. Üblich istC:\Users\<username>\AppData\Local\Pandoc
bzw. bei älteren VersionenC:\Program Files (x86)\Pandoc\pandoc.exe
. -
Option Pandoc Options: Commandline Arguments einstellen: Hier können Sie Optionen angeben, die an Pandoc übergeben werden sollen. Wichtig: Wenn Sie mehr als eine Option angeben möchten, müssen Sie die Optionen durch Kommata trennen, also z.B.
--option1 bla, ---option2, --option3 meh
. Die Option-c my.css
ist nicht zulässig. Eine eigene CSS-Datei für die Vorschau bringt leider die gesamte Atom-Oberfläche durcheinander. -
Option Pandoc Options: Markdown Flavor einstellen: Hier geben Sie an, welche Markdown-Variante
pandoc
verwenden soll. Standardmäßig giltmarkdown-raw_tex+tex_math_single_backslash
. Für meine Zwecke ist einfachmarkdown
erforderlich, also gewissermaßen der Standard-Markdown-Dialekt von Pandoc.
Der (für mich) offensichtlichste Vorteil der Preview-Funktion mit pandoc
besteht darin, dass diverse LaTeX-Kommandos, die nur für das finale Drucklayout relevant sind, aus der Vorschau verschwinden. Es bleibt also quasi der reine Text übrig.
Mehr Markdown-Pakete
Die Markdown-Unterstützung in Atom endet nicht bei den hier präsentierten Packages. Es gibt unzählige weitere Packages, mit denen z.B. Textpassagen ein- und ausgeklappt werden können (markdown-folder
), die Vorschau mit der Cursor-Position synchronisiert werden kann (markdown-scroll-sync
) etc. Suchen Sie einfach im Install-Dialogblatt von Atom nach markdown
!
LaTeX-Syntax-Highlighting
In meine Markdown-Dateien sind häufig »gewöhnliche« LaTeX-Kommandos eingebettet, von \index{bla}
bis \newline
. Schön wäre, wenn Atom diese eingebetteten Kommandos erkennen und beim Syntax-Highlighting entsprechend berücksichtigen könnte. Dazu habe ich keine Möglichkeit gefunden. Stattdessen markiert Atom das nächste Zeichen hinter einem \
färbig, so als wäre damit ein Sonderzeichen gemeint.
Das Paket language-pfm-enhanced
verspricht ein besseres, Pandoc-kompatibleres Syntax-Highlighting als language-gfm
. Offensichtlich kommt es mit gut mit mathematischen Formeln zurecht, die in den Markdown-Text integriert sind. Aber für meine Zwecke bietet language-pfm-enhanced
keine spürbaren Vorteile.
Kurzum, hier gäbe es aus meiner Sicht noch Verbesserungsbedarf. (Wobei mir klar ist, dass das Parsen verschiedener Sprachen in einem Text — hier also Markdown, HTML und LaTeX — immer schwierig ist.)
Atom versus Emacs
Atom ist ein wirklich faszinierender Editor, insbesondere was die einfachen Erweiterungs- und Konfigurier-Möglichkeiten betrifft. Meinen Emacs ersetzt es mir momentan noch nicht: Atom bietet im Vergleich zu dem auf meine Bedürfnisse optimal konfigurierten Emacs aktuell keine klaren Vorteile. Ich bin mir ziemlich sicher, dass ich Atom mit ähnlichen Funktionen wie den Emacs konfigurieren könnte — nur wäre das sicherlich mit viel Probieren und stundenlanger Arbeit verbunden. So werde ich wohl bis auf weiteres bei meinem Standardeditor bleiben.
Stünde ich aber heute vor der Entscheidung, mich in einen Editor neu einzuarbeiten, würde ich Emacs und Vi wohl links liegen lassen und mein Glück mit Atom versuchen.
Danke für den Markdown-Editor-Einblick.
Mein Lieblingseditor nach Vim ist inzwischen Visual Studio Code https://code.visualstudio.com/ . Der Editor baut ursprünglich auch auf Atom auf, ist für mich aber wesentlich schneller und ausgereifter.
Hallo,
Ich habe dies getestet. Vielen Dank für den Tipp! Leider habe ich ein kleines Problem und zwar: Die Preview-Funktion sieht wie bei ihnen sehr gut und ansprechend aus aber das exportierte PDF hat ein komplett anderes Layout und Schrift. Können sie mir hier einen Tipp geben?
Besten Dank.
Die Vorschau in Atom verwendet eine Atom-eigene CSS-Datei zur Layout-Gestaltung. Darauf haben Sie keinen Einfluss.
Wenn Sie die Datei später mit
pandoc
selbst in eine HTML-Datei umwandeln, können Sie eine eigene CSS-Datei mit-c
übergeben. Diese bestimmt die Formatierung. In einem Webbrowser können Sie dann eine PDF daraus machen.pandoc
kann aus einer Markdown-Datei auch direkt eine PDF machen. Das geht dann aber über den Umweg LaTeX. Zur Layout-Gestaltung müssen Sie eigene LaTeX-Header-Dateien verwenden, was aber relativ kompliziert ist.Vielen Dank. Ich habe mir jetzt noch Asciidoc(tor) angesehen und das spricht mich spontan noch mehr an.
Ich habe momentan mehrere Editoren zur Auswahl, die unter Windows, Linux und MacOS laufen. Noch kann ich mich nicht entscheiden, was es letztendlich wird aber momentan führt bei mir Komodo-Edit, danach kommt Visual Studio Code, wegen seinen Plugins.