LaTeX-Pakete schreiben und veröffentlichen, ctanify, Zotero

Das Schreiben eines LaTeX-Pakets zählt eher zu den Aufgaben für fortgeschrittene LaTeX-Anwender. Die meisten Autoren werden es damit bewenden lassen, ihren Quelltext aus der Präambel des Dokuments in eine sty-Datei auszulagern. Auch auf CTAN findet man viele solcher Beispiele. Das Standardformat zum Verteilen von LaTeX-Quelltext aber ist das doc-System. Es wird in zwei Einführungen grundlegend beschrieben: Zum einen in „LaTeX2e for class and package writers“, das jeder Distribution beiliegen sollte und das lokal mittels Terminal-Eingabe von texdoc clsguide geöffnet werden kann. Zum anderen – viel ausführlicher und, vor allem, auf Deutsch – im Kapitel 14 der zweiten Auflage des „LaTeX-Begleiters“ (Pearson Studium, 2005). Wer tiefer in die hohe Kunst des Paketeschreibens einsteigen möchte, der lese den klassischen Aufsatz von D.E.Knuth zum „Literate Programming“, wieder abgedruckt in dessen gleichnamigem Buch von 1992 (auf der Website, die dem Thema gewidmet ist, findet sich eine umfangreiche Dokumentation dieses mittlerweile etwas aus der Mode gekommenen Ansatzes; die diesbezügliche Newsgroup ist praktisch tot). Auch das Studium von Paketen anderer Autoren kann sehr hilfreich sein.

Daneben gibt es eine praktische Einführung von Scott Pakin namens „How to package your LaTeX package“, und auch sie sollte sich lokal mit texdoc dtxtut auftun. Wer sich etwas umsieht, wird bemerken, wie viele Autoren sich an die Vorlage gehalten haben, die Pakin seiner Einführung beigelegt hat.

Wer sein Paket auf CTAN veröffentlichen möchte, sollte sich die Vorgaben der CTAN-Maintainer hierfür näher anschauen. Für das Hochladen steht ein Webformular zur Verfügung, bei dem man eigentlich nichts falsch machen kann. Nach der Eingabe der persönlichen Daten des Autors und der Auswahl der Lizenz, unter der das Paket veröffentlicht werden soll, wählt man den Pfad zur lokal gespeicherten Datei und klickt sodann auf „submit contribution“. Fertig.

Die eigentliche Mühe besteht in dieser Phase für den Autor darin, sein Päckchen, das er auf CTAN hochladen will, fachmännisch zu schnüren. Besteht es aus mehreren Dateien, sollte es vorher als ZIP-Archiv gepackt werden. Hierzu legt man ein Verzeichnis an, das man zweckdienlicherweise genauso nennt wie das Paket, und kopiert alle Dateien hinein. Dieses Verzeichnis komprimiert man nun. Auf dem Mac geht dies leicht übers Kontextmenü „Archiv von … erstellen“ im Finder. Erstellt man gleich (oder zusätzlich) ein TDS.ZIP-Archiv, kann dieses leicht durch einfaches Entpacken in den lokalen texmf-Baum installiert werden. Auch eine Anleitung im PDF-Format und eine README-Datei (als reiner Text) sollten dem Paket beigegeben werden.

Diese Packarbeiten erleichtert nun ein neues Perl-Skript namens ctanify, das Scott Pakin gerade auf CTAN veröffentlicht hat. Das Skript erstellt aus den fertigen dtx-, ins-, sty– und pdf-Dateien ein TDS-konformes TDS.ZIP-Archiv, das neben den Quelltexten und der Anleitung noch einmal in ein tar.gz-Archiv verpackt wird.

Das Paket wurde unter Linux getestet und funktioniert auch unter Mac OS X Tiger. Es sollte auf jeder Plattform lauffähig sein, auf der Perl und die entsprechenden Packerprogramme für die Kommandozeile installiert sind. Wie jedes Skript, so muß auch ctanify zur Installation mittels chmod +x ctanify ausführbar gemacht und im Pfad abgelegt werden. Eine kleine Fehlermeldung beim Test auf dem Macintosh beeinträchtigt die Funktion nicht, wurde aber dem Paketautor bereits gemeldet. Allerdings erwartet das Skript ein sty-File zum Einpacken; wird ihm stattdessen eine LaTeX-Klasse mit der Endung cls angeboten, bricht es ab und verlang nach einem LaTeX-Stil. Auch diese Beschränkung sollte beseitigt werden, denn das Skript kann die Veröffentlichung von LaTeX-Paketen ganz wesentlich vereinfachen und sollte dem Autor deshalb keine diesbezüglichen Beschränkungen auferlegen.

Abschließend noch der Hinweis, daß ich meinen Artikel zu „Literaturverwaltung mit Firefox, Zotero und BibTeX“, DTK 4/2007, S. 20–26, online gestellt habe.

Dieser Beitrag wurde unter Neuigkeiten abgelegt und mit , , , , , , , , , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.