http://www.wobsta.de/uni/gletex/print.shtml.de
 gletex Dokumentation: Druckversion
english   »deutsch« 
André Wobst, 10.10.2001, 16:48 

Was ist gletex?

gletex ist eine Erweiterung von gle (siehe auch http://www.uark.edu/misc/vlabella/gle/gle.html). Es fügt zwei Kommandos zum Syntax von gle hinzu, mit denen TeX und LaTeX Ausdrücke direkt innerhalb einer gle Datei geschrieben werden können. gletex startet (La)TeX und dvips um die angegebenen Ausdrücke zu Encapsulated Postscript Dateien umzuwandeln und ersetzt dann die Kommandos durch die entsprechenden include Postscript Befehle. Nach der kompletten Ersetzung aller (La)TeX Ausdrücke wird gle zur Erzeugung des gesamten Bildes als Encapsulated Postscript Datei gestartet.

Die temporär erzeugten Encapsulated Postscript Dateien werden in einer Datenbank gespeichert. Die Dateien werden wiederverwendet, wenn der selbe (La)TeX Ausdruck später nochmals auftritt. Falls die Anzahl der gespeicherten Dateien eine variable Grenze überschreiben (der Vorgabewert ist 50), werden die am längsten nicht benutzten Dateien gelöscht.

Verwendung von gletex

Der Kommandozeile von gletex lautet:

gletex [-verbose] [-dbsize<size>] [["-dvips <option>"] <file>[.gle]]

Dabei muß entweder eine Änderung der Datenbankgröße (Option -dbsize<size>) oder eine gletex-Datei zur Abarbeitung angegeben werden, sonst wird eine Meldung über die Verwendung der Kommandozeile ausgegeben. Das geschieht auch, falls ein Fehler in der Kommandozeile gefunden wird. Falls man die Änderung der Datenbankgröße mit der Bearbeitung einer gletex-Datei kombiniert, so wird zunächst die Datenbankgröße modifiziert und danach die gletex-Datei abgearbeitet. Der Schalter -verbose schaltet zusätzliche Meldungen von gletex ein. Das -dvips <option> kann verwendet werden, um Parameter an dvips zu übergeben für die Umwandlung der (La)TeX Ausdrücke. Diese Option ist für Experten gedacht.

gletex gibt die angegebene gletex-Datei im Grunde nur an gle weiter, jedoch werden die beiden folgenden zusätzlichen Befehle implementiert:

tex "<TeX Ausdruck>" <Größe> "<Position>"

latex "<LaTeX Ausdruck>" <Größe> "<Position>"

Dabei steht <TeX Ausdruck> für einen TeX Ausdruck und <LaTeX Ausdruck> sinnigerweise für einen LaTeX Ausdruck. Das Anführungszeichen " selbst muß innerhalb des (La)TeX-Ausdrucks durch zwei Anführungszeichen direkt hintereinander geschrieben werden.

Im Fall von TeX ist <Größe> eine Ziffer zwischen einschließlich 0 und 5. Sie wird vor dem TeX-Ausdruck als \magnification=\magstep<Größe> eingesetzt. Bei LaTeX hingegen sind die Zahlen 10, 11 und 12 zuläßig und geben die Schriftgröße 10pt bis 12pt an, die als Parameter an den LaTeX article style übergegeben wird. Darüber hinaus können Größenänderungen bei LaTeX selbstverständlich direkt im LaTeX-Ausdruck durch Verwendung von LaTeX-Befehlen wie z.B. \Large erfolgen.

Schließlich verwendet die Positionsangabe <Position> die selben Abkürzungen wie der gle-Befehl set just, also bl, bc, br, lc, cc, rc, tl, tc, rc sowie vertauschte Buchstabenkombinationen. Damit wird die Ausrichtung der TeX-Ausgabe bzgl. der aktuellen Position festgelegt.

Beispiele und Tips

Einschänkungen von gletex

Durch mehrfaches gleichzeitges Starten von gletex können inkonsistente Datenbankzustände entstehen, wodurch die von gletex erzeugte Ausgabe falsch wird. Wenn so ein Zustand erreicht ist, bleibt das Problem auch bei neuerlichem Ausführen von gletex bestehen. In der Regel scheitert mehrfaches Starten von gletex jedoch durch einen simplen Datei lock Mechanismus. gletex bricht dann mit einer Fehlermeldung ab, daß mehrfaches Starten von gletex nicht erlaubt ist. Das Scheitern dieses Mechanismus ist eher akademisch.

Ein inkonsistenter Datenbankzustand kann auch entstehen, wenn gletex während der Ausführung abgebrochen wird, aber dann erhählt man die Problembeschreibung zum Datenbankzustand beim nächsten Start mit Sicherheit. Inkonsistente Datenbankzustände sollten durch Ausführen von "rm -rf ~/.gletextemp" gelöscht werden.

Außerdem gibt es noch eine Reihe weiterer Einschränkungen, wobei die folgende Liste vor allem informativen Charakter hat und nicht notwendigerweise alle denkbaren Probleme abdeckt.

Details zum Datenbankverzeichnis

Im Verzeichnis ~/.gletextemp werden temporäre Dateien abgelegt, die zur Ersetzung der La(TeX) Ausdrücke verwendet werden. Die erzeugten Encapsulated Postscript Dateien werden nach dem Aufruf von gle nicht gelöscht, denn sie werden wiederverwendet, wenn der selbe Ausdruck später nochmals erscheint. Dies führt zu einer erheblich schnelleren Abarbeitung von gletex Dateien sobald die La(TeX) Ausdrücke in der Datenbank verfügbar sind.

Zusätzlich zu den Encapsulated Postscript Dateien wird von gletex eine Index Datei geschrieben, in der die in der Datenbank verfügbaren Ausdrücke festgehalten sind. Außerdem wird der Schreibzugriff zu der Datenbank mit einer lock Datei blockiert. Dadurch ist einigermaßen sichergestellt, daß zwei gleichzeitig ablaufende gletex Programme den Inhalt der Datenbank nicht zerstören. Der Ablauf eines zweiten gletex ist blockiert, falls eine lock Datei bereits existiert.

gletex verarbeitet derzeit keine Signale. Dadurch bleibt der Blockierungsmechanismus aktiv nach einem Abruch von gletex durch <Ctrl>C oder einem expliziten kill Kommando. gletex kann dann nicht mehr gestartet werden, solange der inkonsistente Datenbankzustand nicht korrigiert wurde wie es auch in der erscheinenden Fehlermeldung beschrieben steht. Die einfachste und empfohlene Lösung in diesem Fall ist das Löschen des kompletten Datenbankverzeichnisses durch Ausführen von "rm -fr ~/.gletextemp". Durch Löschen dieses Verzeichnisses gehen keine wichtigen Informationen verloren, denn all die Dateien können von gletex wieder erzeugt werden, falls sie wieder benötigt werden. Beim nochmaligen Starten von gletex mit den zuletzt bearbeiteten Dateien steigt lediglich die Abarbeitungszeit von gletex.

Entwicklung

gletex v0.10 (alpha) vom 3. Juni 1997 war die erste Implementation von gletex, die in awk (!) geschrieben war. Die Idee zu all dem kam von Prof. Ingold. Herzlichen Dank dem geistigen Vater von gletex. Die erste Version nutzte für die Produktion der Encapsulated Postscript Dateien ein bestehendes Programm von Prof. Ingold, nämlich psformel. Eine fehlerkorrigierte Version - gletex v0.11 (alpha) vom 6. Juni 1997 - war einige Monate erfolgreich im Einsatz. In dieser Version mußten bei jedem neuen Start alle TeX Ausdrücke neu erzeugt werden. Es zeigte sich, daß es die Benutzbarkeit des Programmes erheblich verbessert würde, wenn die zuletzt benutzten TeX Ausdrücke temporär gespeichert würden.

gletex v0.20 (beta) vom 21. Oktober 1997 implementierte so ein Speichern der letzten TeX Ausdrücke. Aufgrund der Komplexität war das aber nicht mehr sinnvoll in awk machbar, weshalb nun C verwendet wurde. Als zweite ganz wesentliche Verbesserung wurde eine Fehlerbehandlung bei Fehlern in den TeX-Ausdrücken implementiert. Diese Version hat sich dann etwa anderthalb Jahre lang als nützliches Werkzeug bewährt.

gletex v0.30 (beta) vom 19. Mai 1999 wurde wieder in einer anderen Sprache geschrieben, nämlich in perl. (Dabei habe ich vor allem mal bißchen perl gelernt, was auch meine Hauptmotivation war. Entsprechend sollte der Code keineswegs als Beispiel für ein perl-Programm dienen, denn er ist von einem Anfänger in dieser Sprache geschrieben, um mal ein kleines nützliches Werkzeug in perl zu programmieren, keineswegs aber ein großes aufwändiges Softwareprojekt). Als klarer Vorteil fällt nebenbei ab, daß gletex nunmehr sehr viel leichter auf verschiedene Plattformen übertragen werden kann, denn eine Neucompilierung ist nicht mehr nötig. perl ist eine Scriptsprache. Bei der Gelegenheit wurden noch die Dinge eingebaut, die sich in den vergangenen Jahren als fehlend erwiesen haben. Das ist vor allem die LaTeX Unterstützung (für alle, die besser LaTeX als TeX können), eine flexible Datenbankgröße (vorher festgelegt auf 20) und einen Fehlerrückgabecode zur Verwendung von gletex in make. Außerdem wurde auf vollständige Kompatibilität zur vorherigen Version Wert gelegt. Einige Fehlerkorrekturen (vor allem beim gletex Zeilenparser) führten zu den Versionen gletex v0.31 (beta) vom 4. August 1999, gletex v0.32 (beta) vom 4. Februar 2000 und gletex v0.33 (beta) vom 23. März 2000, was die aktuelle Version ist.

Installation und Voraussetzungen von gletex

Zunächst braucht man einen Rechner mit Betriebssystem, also sowas, wo es von Haus aus einen vi gibt. Jegliche Portierungsversuche auf "Scheinbetriebssysteme" aus dem Hause Microsoft werden vom Autor hiermit ausdrücklich verboten! Zudem müssen folgende Programme in aktuellen Versionen installiert sein:

Die Installation beschränkt sich darauf, die folgenden drei Dateien in ein gemeinsames Verzeichnis zu kopieren:

gletex verfolgt symbolische Links generell weiter, weshalb es möglich ist, die drei Dateien in ein Verzeichnis zu kopieren und dann von einem binary Verzeichnis aus einen symbolischen Link einzurichten. Auch in diesem Fall werden die notwendigen Dateien gefunden.

Das Programm gletex darf unter der oben genannten Einschränkung frei kopiert werden. Eine Modifikation des Programmes zu Zwecken der Weiterentwicklung oder Anpassung an andere Systemkonfigurationen ist gestattet, solange der Autor und Urheber im Quelltext eindeutig als solcher genannt bleibt. Außerdem ist es im Sinne der Nutzer von gletex, wenn solche Änderungen allgemein zugänglich gemacht werden könnten. Für solche Dinge stehe ich gern zur Verfügung.

Wichtige Bemerkung: Es gibt keine Garantie irgendeiner Weise auf das Programm. Die Benutzung des Programmes erfolgt in jeder Hinsicht auf eigenes Risiko.

 Startseite  |  Theoretische Physik I  |  Institut für Physik  |  Universität Augsburg