Immer wieder einmal werde ich gefragt, wie man zu einem Befehl die Datei findet, in der er definiert ist. Ich habe deshalb ein perl-Script geschrieben, das den latex- und den generic-Zweig meiner TeX-Live-Installation durchsucht und dabei eine Datenbank über die gefundenen Befehlsdefinitionen und über die zu den jeweiligen Dateien gehörenden TeX Live Pakete anlegt. Derzeit werden nur Benutzeranweisungen gefunden, die mit \newif
, \def
, \let
, \newcommand
, \providecommand
oder \DeclareRobustCommand
definiert werden. Dabei werden die Definitionen derzeit über recht einfach Muster erkannt, so dass bestimmt einige verloren gehen.
Zusätzlich erzeugt das perl-Script auf Wunsch eine HTML-Seite mit einer sortierten Befehlsliste. Dabei werden zu jedem Paket die TeX-Live-Paketnamen und die zugehörigen Dateien angegeben, in denen die Befehle definiert sind. Das Skript benötigt derzeit allerdings auf meinem Rechner einige Zeit, um die Datenbanken zu erzeugen. Daher wird es keine regelmäßigen Updates geben, obwohl das Erzeugen der HTML-Seite, die anschließend als Ausgangsbasis für Seiten hier dient, nur Sekunden benötigt.
Wer das Skript direkt nutzen will, benötigt im übrigen neben perl und einigen perl-Paketen eine vollständige TeX-Live-Installation ab TeX-Live 2013 unter Linux!
Nachdem ich mich einige Stunden mit der Frage beschäftigt habe, wie man ein drupal-Modul schreiben kann und von PHP auf eine Berkeley-Datenbank zugreift, gibt es neuerdings einen Direktzugriff auf die Datenbank unter http://www.komascript.de/texcommandlist. Gibt man dort einen Befehlsnamen an, so werden alle TeX-Live-Pakete mit den jeweiligen Dateien, in denen dieser Befehl implementiert ist, aufgeführt. Falls kein Ergebnis gefunden wird, wird eine Fehlermeldung ausgegeben.
Anhang | Größe |
---|---|
Das perl-Script (bitte nach dem Download die Endung in .pl ändern) | 10.42 KB |