Headerbild: Syntaxdiagramme mit LaTeX und rail unter macOS erstellen

Syntaxdiagramme mit LaTeX und rail unter macOS erstellen


Große Texte schreibe ich gerne mit LaTeX. Für Syntaxdiagramme im Text verwende ich seit Jahren rail. Hierbei handelt es sich um ein LaTeX-Paket nebst zugehörigem Programm, welches die Diagrammdateien für LaTeX übersetzt. Das Paket ist im Original ausschließlich im Quellcode zu haben. Unter Gnu/Linux habe ich es mehrfach übersetzt. Auch eine Version für Windows habe ich schon gebastelt. Nun wollte ich einen bestehenden Text, der Syntaxdiagramme enthält, unter macOS überarbeiten und übersetzen.

Also rail auf den Rechner geladen und … – So einfach war es nicht mit der Übersetzung. Der Apple-Compiler kann mit dem uralten Quellcode nichts anfangen. Wie es dennoch funktioniert, beschreibe ich hier. Wer keine Lust zum Compilieren hat, findet am Ende des Artikels ein Archiv, in dem sich nicht nur der Quellcode, sondern auch ausführbare Dateien für macOS/OS X und Windows befinden.

Voraussetzungen schaffen

Neben rail, welches man sich bei CTAN herunterladen kann, brauchen wir natürlich Xcode, die Entwicklungsumgebung für macOS/OS X. Die kann man sich leicht aus dem App-Store herunterladen. Das kostet auch nichts – toll. Außerdem werden noch die Kommandozeilenwerkzeuge für Xcode benötigt. Auch die gibt es gratis. Um sie zu installieren, geben wir, nach erfolgreicher Xcode-Installation, den folgenden Befehl im Terminalfenster ein:

Damit, so dachte ich anfangs, wäre alles gut. Wie jedoch schon zu Beginn dieses Artikels angedeutet, funktioniert das Ganze nicht. rail lässt sich mit den Apple-Tools nicht übersetzen. Bloße Anpassungen des Makefiles reichen nicht aus. Man braucht noch die Werkzeuge yacc, Bison und einen „alten“ gcc. Ich verwende hier macOS Sierra und habe mich für das Repository MacPorts entschieden, um die benötigten Werkzeuge zu installieren. Um MacPorts zu installieren wird Xcode samt Kommandowerkzeugen benötigt. Deren Installation ist/war also nicht umsonst, auch wenn sonst nicht programmiert werden soll. Wie MacPorts und die dort verfügbaren Programme installiert werden, ist auf der Dokumentationsseite detailliert und einfach verständlich beschrieben. Als gcc-Version habe ich Version 4.3 verwendet. Mit den neueren Versionen ließ sich rail bei mir nicht übersetzen.

Ergänzung/Korrektur (02/2019)

rail lässt sich sehr wohl mit den Apple-Werkzeugen übersetzen. MacPorts & Co. sind nicht erforderlich. Allerdings muss man ein wenig am Quellcode ändern und natürlich auch das Makefile anpassen. Ich habe es getan.

Am Ende des Beitrags befindet sich eine separate Schaltfläche, um den modifizierten Quellcode herunterzuladen. Die Übersetzung und Installation funktioniert wie üblich, so wie auch unten angegeben:

Ergänzung/Korrektur (12/2020)

Mit Veröffentlichung von macOS Big Sur haben sich die Richtlinien des macOS-Compilers nochmals verschärft. – Das ist im Grunde eine gute Sache, macht aber die Übersetzung alter Quellcodes schwieriger. Ich habe die Rail-Quellen und das Makefile angepasst, so dass sich das Programm nunmehr auch unter macOS Gig Sur einwandfrei übersetzen und installieren lässt. – Den entsprechenden Download-Button finden Sie unten.

rail übersetzen

Dieser Part des Beitrags ist für aktuelle macOS-Versionen teilweise obsolet. Lesen Sie die obigen Ergänzungen und verwenden gegebenenfalls des jeweils verlinkten Quellcode. Ich habe rail den Erfordernissen der aktuellen macOS-Versionen angepasst, so dass sie das Programm nunmehr ohne die Erweiterungen von MacPorts übersetzen können.

Nach Abschluss der Vorarbeiten, habe ich das Makefile angepasst. Das für macOS Sierra und MacTex 2016 angepasste Makefile liegt dem beigefügten Archiv unter dem Namen Makefile.macos bei. Wer selbst compilieren möchte, muss es also entsprechend umbenennen oder kopieren. Damit nun auch der richtige Compiler verwendet wird, muss der gcc4.3 aktiviert werden. Bei MacPorts funktioniert das mit folgendem Befehl:

Später kann man mit

wieder zum Apple-Compiler zurückschalten. Vorher sollte man natürlich rail übersetzen und installieren.

Für aktuelle macOS-Versionen verwenden Sie bitte die überarbeitete Version von rail, die Sie unten im Download-Bereich finden. Diese Version können Sie ohne zusätzlichen Compiler von MacPorts übersetzen.

Das ist nun einfach:

Das war es dann auch schon. rail ist einsatzbereit installiert.

Syntaxdiagramme erstellen

In den im Paket enthaltenen Beispiel- bzw. Dokumentationsdateien kann man lernen, wie rail angewendet wird. Das im Beitragsbild dargestellte Diagramm stammt aus rail.tex, der Dokumentation zu rail. Die Dokumentation zeigt beispielhaft verschiedene Syntaxdiagramme und ist leicht verständlich.

Als erstes muss das rail-Paket in das Dokument eingebunden werden:

Wer will, kann auch noch Optionen direkt im Dokument verankern. Beispiel:

Es geht aber auch über die Kommandozeile. Hier ein Auszug aus der Manage, welche die Parameter erläutert:

Dies ist der aus der Dokumentation entnommene Quelltext für das Beitragsbild:

Zuerst ist dann das Dokument mit LaTeX zu übersetzen. Beispielsweise mit pdflatex:

 

Sodann folgt ein rail-lauf und ein oder mehrere weitere LaTeX-Läufe. Die Anzahl hängt bekanntlich vom Dokument und den darin enthaltenen Querverweisen ab. Also mindestens:

Fertig ist das LaTeX-Dokument mit Syntaxdiagramm. – Letztlich also doch ganz einfach.

Download

Wer rail nicht selbst übersetzen mag, der kann sich hier ein Archiv herunterladen. Das Archiv enthält fertig übersetze Programme für macOS bzw. OS X sowie für Windows. Für Windows sind zwei Versionen enthalten, 16- und 32-Bit. Die 16-Bit-Version gehört zum Umfang des Original-Archivs. Ich denke nicht, dass jemand etwas damit anfangen kann. Die von mir übersetzte Version hat 32-Bit und läuft unter Window 7 oder neuer. Die dazu erforderliche Datei cygwin1.dll ist auch enthalten.

Hier ist das Download-Archiv.

DOWNLOAD

macOS-Download

Ergänzung vom 16.12.2020: Mit macOS Big Sur haben sich nochmals die Richtlinien des Compilers verschärft, alten C-Code zu übersetzen. Ich habe rail also nochmals angepasst.

Big Sur-Download

Einen Hinweis möchte/muss ich noch geben. rail mag den Windows-Zeilenumbruch nicht. Näheres hierzu kann in den Kommentaren meines analogen Beitrags zu LaTeX und rail nachgelesen werden.

Karsten Brodmann

Karsten Brodmann

Karsten Brodmann hat an der Universität Osnabrück BWL/Wirtschaftsinformatik studiert. Er hat viele Jahre in der IT gearbeitet und dort Web- und Datenbankanwendungen entwickelt. Seit Gründung der Punkt-Akademie veröffentlicht Karsten Brodmann auch Schulungsvideos zur Datenbankentwicklung, Unix und Programmierung bei Udemy. In seiner Freizeit fotografiert Karsten Brodmann gerne. Seit vielen Jahren fotografiert er analog und digital. Dabei behält er jeweils den gesamten Workflow in der eigenen Hand, von der Aufnahme über die Dunkelkammer oder auch den Scanner sowie die Bildbearbeitung und den Ausdruck am PC.

Weitere Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert