christophmueller.org

Student, Skåne, Silicon, Stuff...

LaTeX-Toolchain Für OS X

Momentan schreibe ich ja an meiner Bachelor-Thesis und verwende dazu, wie es sich gehört, LaTeX für den Satz. Inzwischen habe ich eine recht gut funktionierende Toolchain für OS X mit welcher die Arbeit recht flink von der Hand geht und die ich mit diesem Artikel einmal vorstellen möchte.

Dreh- und Angelpunkt des Schreibens ist natürlich LaTeX selbst – hier verwende ich die exzellente Tex-Distribution MacTeX dessen Download inzwischen stolze 1,6GB schwer ist. Darin enthalten sind, neben den eigentlichen im Hintergrund arbeitenden Kommandozeilenprogrammen der TexLive-Distribution, eine Reihe von weiteren nützlichen Werkzeugen.

So finden zum einen der altbekannte Mac-Texeditor TeXShop, als auch dessen platformübergreifender Klon TeXworks den Weg in den neuen Unterordner Tex des Programmverzeichnisses.

Ich verwende, hauptsächlich aus Gründen der Gewohnheit weiterhin am liebsten TexMaker zum Editieren meiner Tex-Dokumente. Auch diesen Editor gibt es für alle verbreiteten Betriebssysteme.

Der Editor unterstützt wie alle LaTeX-Editoren das erzeugen des TeX-Dokuments auf Knopfduck, bietet jedoch z.B. mit seinem Tabellenasistenten oder Der Leiste für mathematische Symbole einen echten Mehrwert gegenüber anderen Editoren. Natürlich wird der Quelltext wie man es Erwartet farbig hervorgehoben. Ich strukturiere meine Bachelorarbeit Kapitelweise in mehrere Unterdokumente wobei ein weiteres Feature von TexMaker mir sehr gelgen kommt - Man kann die Hauptdatei als Masterdatei deklarieren und so baut der Editor diese auf Knopfdruck neu ohne das man aus der Unterdatei des Kapitels heraus wechseln muss.

Unter Windows und Linux ist der Literaturverwalter JabRef sehr weit verbreitet - ihn gibt es natürlich auch in einer Variante für OS X.

MacTex liefert mit BibDesk auch eine speziell für OS X optimierte und meines Erachtens wesentlich bessere Lösung für die Verwaltung der Bibtex-Datenbank. BibDesk bietet ein paar nette Funktionen - so kann ich, wenn ich über den integrierten Browser die Webseite meiner Hochschulbibliothek ansurfe mit einem Klick ein gerade im WEB-OMAP geöffnetes Buch importieren.

BibDesk in Kombination mit IEEExplore

Natürlich funktioniert dies auch mit den üblichen Webdatenbanken wie ACM, arXiv.org oder IEEExplore.

Um unter OS X Vektorgrafiken zu erstellen gibt es meines Erachtens keine Alternative zu OmniGraffle welches leider mit knapp 80€ (Mac App Store) in der Standardversion alles andere als günstig ist - allerdings gibt es Studentenlizenzen direkt bei The Omni Group so dass man hier mit etwa 50€ etwas günstiger kommt. Benötigt man erweiterte Funktionalität wie die Unterstützung von Visio-Dateien, den Export als SVG-Datei oder eine dedizierte Tabellenunterstützung muss man den etwa doppelt so teure Pro-Version kaufen.

Dafür ist das Programm selbst exzellent - gerade beim Erstellen von Grafiken wie Flussdiagrammen helfen einem die automatisch eingeblendeten Abstandsanzeiger und das dynamische Raster.

Besonders gut funktioniert die Zusammenarbeit zwischen Omnigraffle und dem ebenfalls mit der MacTeX-Distribution verteilten LaTeXiT, einem kleinen Tool um ganz gezielt nur kurze Latexschnipsel zu kompilieren um z.B. Formeln als Grafiken zu sichern. Die Zusammenarbeit mit OmniGraffle erfolgt dabei ganz unscheinbar indem man die erzeugte Formel einfach per drag’n’drop hinüber in das OmniGraffle-Dokument zieht. diese wird dabei in ein skalierbares Objekt umgewandelt und kann so zur Beschriftung von Diagrammen dienen.

Einfügen einer Formel in OmniGraffle mit Hilfe von LaTeXiT

Dies ist keine Einbahnstraße - stellt man später fest dass man sich vertan hat lässt sich die Formel per Doppelklick auf das Objekt mit LaTeXiT bearbeiten. Der Datenaustausch funktioniert dabei über das allgegenwärtige PDF-Format - LaTeXiT erzeugt kleine PDF-Dokumente welche von OmniGraffle einfach innerhalb der Datei (hinter der sich eigentlich ein Ordner verbirgt) unangetastet abgespeichert werden und in welchen der LaTeX-Quelltext für die Formel als Metainformation enthalten ist.

Ich schrieb oben keine Alternative - natürlich gibt es auch Inkscape in einer Version für OS X welche allerdings auf Grund des GTK-Frameworks wie ein Fremdkörper auf dem Mac-Desktop anmutet und dessen Unterstützung für Objektverbinder (noch?) nicht an die Funktionalität von OmniGraffle herankommt - das Zeichnen von Pfeil-lastigen Diagrammen wie z.B. bei UML geht mit OmniGraffle einfach schneller.

Interessant ist Inkscape dennoch, kann es doch PDF-Dateien öffnen so dass sich daraus z.B. Logos als Vektoren exportieren lassen.

PDF ist generell das Format der Wahl um unter OS X mit LaTeX Dokumente zu erstellen. Alle Vektorgrafiken die später in meinem Dokument verwendet werden sollen exportiere ich ins PDF-Format da pdflatex, heutzutage Werkzeug der Wahl zur Erzeugung von LaTex-Dukumenten, diese als Bild problemlos einbinden kann. Des weiteren verwendet OS X selbst PDF unter der Haube um z.B. Fenster darzustellen. Entsprechend sind die Systemwerkzeuge auf PDF-Verarbeitung ausgelegt. So eignet sich z.B. Vorschau sehr gut um z.B. über die Druckfunktion erzeugte Grafiken zu beschneiden - einfach den gewünschten Bereich mit dem Auswahlwerkzeug markieren und via Werkzeuge -> Beschneiden das Dokument auf die Auswahl zu verkleinern.

Zum Schluss möchte ich noch ein letztes Werkzeug vorstellen welches ich zum erzeugen von Funktionsplots bzw. Datenplots verwende: Die Freeware Plot ist ein leistungsfähiges Werkzeug um Daten grafisch aufzubereiten und hat einen sehr breiten Funktionsumfang - so werden viele verschiedene Eingangsformate unterstützt und sollten diese einmal nicht reichen kann man seinen eigenen Eingangsfilter in Perl schreiben. Dazu kommt noch eine Datenbankanbindung welche es ermöglicht Daten direkt aus einer MySQL-Datenbank auszulesen.

Die Plots können vielfältig angepasst und über eine Makrosprache auch automatisiert erstellt werden. Es werden verschieden Verfahren zur Datenglättung sowie zum Fitten von Funktionen unterstützt.  Exportiert werden können die fertigen Plots dann als Vektoren PDF- oder EPS-Format, es werden aber auch PNG und JPEG als Pixelformate unterstützt.

Mein Fazit ist, dass man unter Mac OS X keine Nachteile gegenüber anderen Betriebssystemen hat - im Gegenteil, liefern doch spezifische Mac-Anwendungen wie BibDesk und OmniGraffle einen deutlichen Mehrwert.

Octave Bug…

Wenn octave mit dem folgenden Fehler abstürzt:

octave:1> imwrite(uint16(zeros(100,100,3)), “test.tiff”) assertion “semaphore_info != (SemaphoreInfo *) NULL” failed: file “/pub/cygports /graphicksmagick/GraphicsMagick-1.3.12-1/src/GraphicsMagick-1.3.12/magick/semaphore.c”, line 525, function: LockSemaphoreInfo panic: Aborted – stopping myself… attempting to save variables to octave-core'... save tooctave-core’ complete Aborted (core dumped)

sollte man vor dem erstmaligen Schreiben einen dummy read durchführen - dann wird imagemagick richtig initialisiert und das schreiben funktioniert:

octave:1> imread(“example.tiff”); octave:2> imwrite(uint16(zeros(100,100,3)), “test.tiff”) octave:3>

Der Fehler hat mich jetzt ein paar Stunden gekostet …