Die Organisation des TeX-Systems am ZIV
Es gibt auch eine PDF-Version dieser Seite.
Inhaltsverzeichnis
Aufbau der Verzeichnisstruktur
Regeln für den Zusammenbau
Steuerungsdateien
LinkDirOnly
ExcludeBaseFiles
Detailstruktur der Verzeichnisse
Übersichtliche Verwaltung einzelner TeX- Komponenten
Grundlegende Konzepte
Das frei erhältliche Satzsystem TeX steht für nahezu alle Hardware- und Betriebssystem-Plattformen zu Verfügung. Auch an unserer Universität kann es auf allen vom ZIV unterstützten Betriebssystemen eingesetzt werden.
Zur Zeit wird das TeX-System über zentrale Server für die Unix-Betriebssysteme OSF, Linux, AIX und Solaris und für die Windows-Systeme 97, 98, ME, NT, 2000 und XP zur Verfügung gestellt. Anwender, die diese zentrale TeX-Installation nutzen, müssen das TeX-System nicht mehr auf ihrem Arbeitsplatzrechner installieren und pflegen. Für diejenigen, die dieses zentrale Angebot nicht nutzen können, werden Installations-CDs zur Einrichtung eines lokales TeX-Systems angeboten.
Zu Beginn der 90er Jahre musste das TeX-System noch für jedes Betriebssystem separat gepflegt werden. Insbesondere konnten Versionswechsel auf Grund des hohen Arbeitsaufwandes nur nacheinander auf den verschiedenen Betriebssystemen durchgeführt werden, so dass es immer Unterschiede zwischen den einzelnen TeX- Installationen gab.
Im Zuge der international durchgeführten Vereinheitlichung der TeX-Distributionen entstand 1996 die sogenannte TeX Live CD, die die TeX-Installationen für die gängigsten Unix- und Windows-Systeme auf einer CD zusammenfasste. Diese CD brachte für alle, die sich mit der Pflege von TeX-Systemen auf unterschiedlichen Betriebssystemen befassten, eine große Arbeitserleichterung.
Auch am ZIV wurde die TeX Live CD nach und nach auf die Unix- und Windows-Systeme übernommen. Doch war mit ihr das Problem des zeitgleichen Versionswechsels auf allen Betriebssystemen noch nicht vollständig gelöst. Konnte der Versionswechsel für alle Unix-Varianten auf einen Schlag durchgeführt werden, so gab es zwischen der Unix- und Windows-Welt doch einige Unterschiede, die den zeitgleichen Versionswechsel in beiden Welten erschwerten.
Auch wenn der größte Teil des TeX-Systems für alle genannten Bereiche identisch ist, benötigen z. B. Unix- und Windows-Installationen unterschiedlich übersetzte Programme. Auch die Voreinstellungen für eine Einzelplatz-Installation müssen anders als für eine zentrale Installation gesetzt werden.
Zur Zeit werden drei unterschiedliche TeX-Installationen für folgende Bereiche benötigt:
- Zentrale Unix-Installation,
- Zentrale Windows-Installation,
- Einzelplatz-Installation auf CD-ROMs.
Zur automatischen Zusammenstellung dieser Installationen wurde die TeX Live CD-ROM als gemeinsamer Grundstock vorgesehen. Alle universitäts- und betriebssystemspezifischen Änderungen und Ergänzungen werden getrennt von den Daten der TeX Live CD gespeichert und je nach Verwendungszweck (Unix oder Windows, Zentral- oder Einzelplatz-Installation) in unterschiedlichen Verzeichnissen abgelegt.
Diese Quellenverzeichnisse bilden die Grundlage, auf der die kompletten Verzeichnisbäume für die drei TeX-Installationen durch symbolische Links programmgesteuert zusammengebaut werden.
Durch diese Organisationsform wird erreicht, dass jede Datei an nur einer Stelle gespeichert ist, auch wenn sie in allen Systemen benötigt wird. Zum Austausch einer fehlerhaften Datei genügt es z. B., sie an genau einer Stelle im "Quellen"-Dateisystem zu ersetzen. Der Aufruf eines Hilfsprogramms sorgt anschließend dafür, dass dieser Austausch letztlich in allen betroffenen Installationen wirksam wird.
Aufbau der Verzeichnisstruktur
An Hand der Version 7 der TeX Live CD-ROM wird im Folgenden die Struktur der Quellenverzeichnisse und die Arbeitsweise der Hilfsprogramme näher erläutert.
Die Quellenverzeichnisse setzen sich aus zwei größeren Teilen zusammen. Der erste Teil (TeXLiveCD7) enthält alle Verzeichnisse und Dateien in unveränderter Form, wie sie auf den TeX Live CDs der Version 7 ausgeliefert wurden. Im zweiten Teil (addonTL7) sind alle gegenüber der TeX Live CD zu ändernden und neu hinzuzufügenden Dateien gespeichert. Dieser Teil ist in folgende Unterverzeichnisse aufgeteilt:
|
Die kompletten Installationen setzten sich dann wie folgt aus diesen Teilen zusammen:
|
Regeln für den Zusammenbau
Da die Installationsverzeichnisse (wie z. B. texlive7.win) über symbolische Links aufgebaut werden, die auf die jeweiligen Quellenverzeichnisse verweisen, muss beim Zusammenfügen folgendes bedacht werden:
Ein Unterverzeichnis oder eine Datei kann in mehreren Quellenverzeichnissen vorkommen. Für solche Fälle wird vereinbart, dass immer nur die Datei aus der zuletzt aufgeführten Quelle verwendet wird. Für die zentrale Windows-Installation (texlive7.win) z. B. bedeutet dies, dass von einer Datei, von der in jedem der vier Quellenverzeichnisse eine andere Version vorhanden ist, nur die unter der Quelle addonTL7\ZIVaddon_zentral gespeicherte Version in den texlive7.win-Baum verlinkt wird.
Beispiel1
Im Quellenverzeichnis addonTL7\ZIVaddon_winsp\texmf\web2c werden in der Datei texmf.cnf Parameter des TeX-Systems auf spezielle, an die zentrale Windows-Installation angepasste Werte gesetzt. Diese Datei gibt es aber auch im gleichnamigen Verzeichnis der Quelle TeXLiveCD7. In diesem Fall darf also nur die Datei texmf.cnf der Quelle addonTL7\ZIVaddon_winsp verlinkt werden.Für den Aufbau von texlive7.win kann also nicht einfach das Verzeichnis texlive7.win\texmf\web2c mit TeXLiveCD7\texmf\web2c verlinkt werden, sondern es muss schrittweise vorgegangen werden:
- In texlive7.win zunächst die Unterverzeichnisse texmf\web2c angelegen.
- In allen folgenden Schritten werden die in Frage kommenden Dateien jetzt in das neue Verzeichnis texlive7.win\texmf\web2c hinein verlinkt.
- Alle Dateien der Original-CD, die nur in TeXLiveCD7\texmf\web2c und keiner anderen Quelle vorkommen, in das neu angelegte Verzeichnis verlinken.
- Alle Dateien verlinken, die in addonTL7\ZIVaddon_winsp\texmf\web2c aber in keinem der beiden noch folgenden Verzeichnisse vorkommen. (Da das web2c-Verzeichnis in keinem der weiteren Verzeichnisse vorkommt, wird die Datei texmf.cnf an dieser Stelle eingebunden. Der Vollständigkeit halber werden aber auch noch die beiden letzten Schritte beschrieben.)
- Danach die Dateien, die in addonTL7\ZIVaddon_alle\texmf\web2c nicht aber in addonTL7\ZIVaddon_zentral\texmf\web2c vorkommen, verlinken.
- Nun noch alle Dateien aus addonTL7\ZIVaddon_zentral\texmf\web2c verlinken.
Analog muss mit allen anderen Verzeichnissen und Dateien verfahren werden.
Um die Übersicht über alle geänderten Dateien zu behalten, werden neuere Versionen von Dateien grundsätzlich in den ZIVaddon-Verzeichnissen eingefügt. Die Unterverzeichnisse von TeXLiveCD7 bleiben also immer unverändert. Mit Hilfe der oben beschriebenen Vorgehensweise ist gewährleistet, dass in allen Installationen nur die neuen Versionen aus den ZIVaddon-Verzeichnissen verlinkt werden.
Mit dem bisher beschriebenen Verfahren können also in den jeweiligen Installationen neue Dateien und Verzeichnisse hinzugefügt und veraltete ersetzt werden.
Steuerungsdateien
ExcludeBaseFiles
Um zu verhindern, dass einzelne Dateien und Verzeichnisse unter TeXLiveCD7 überhaupt übernommen werden (wenn sie z. B. in einer der Installationen nicht benötigt werden), gibt es in jedem ZIVaddon-Verzeichnis eine Datei mit Namen ExcludeBaseFiles.txt, in der alle Dateien und Verzeichnisse aus TeXLiveCD7 aufgelistet sind, die nicht verlinkt werden sollen.
Im Verzeichnis ZIVaddon_winsp enthält die Datei ExcludeBaseFiles.txt z. B. alle Unix-Binaries, da diese unter Windows nicht benötigt werden.
LinkDirOnly
Zur Vereinfachung und um den durch Verweise aufgebauten Installationsbaum übersichtlicher zu gestalten, wurde eine weitere "Steuerungsdatei" eingeführt.
Soll z. B. ein Verzeichnis unter TeXLiveCD7 mit allen enthaltenen Dateien komplett durch ein neues ersetzt werden, wäre es umständlich, alle Dateien einzeln zu verlinken und diejenigen, die nicht mehr benötigt werden, in die Ausschlussliste (ExcludeBaseFiles.txt) aufzunehmen. Einfacher und übersichtlicher ist es, nur das neue Verzeichnis in den Installationsbaum einzuhängen. Um dies zu ermöglichen, wurde die "Steuerungsdatei" mit Namen LinkDirOnly eingeführt. Über die Dateinamenerweiterung wird festgelegt, welches Unterverzeichnis direkt verlinkt wird.
Soll beispielsweise das LaTeX-Makro-Paket "Koma-Script" durch eine neue Version ersetzt werden, so wird die neue Version unter addonTL7\ZIVaddon_alle im Verzeichnis texmf\tex\latex\koma-script abgelegt. Zusätzlich wird in dem Verzeichnis texmf\tex\latex die Datei LinkDirOnly.koma-script eingerichtet. Im Verzeichnis texlive7.win\texmf\tex\latex der Windows-Installation wird dann auf addonTL7\ZIVaddon_alle\texmf\tex\latex\koma-script ein Link unter dem Namen koma-script gesetzt.
Die Steuerungsdatei selbst enthält keine Daten.
Detailstruktur der Verzeichnisse
Aus organisatorischen Gründen ist es sinnvoll unter einem ZIVaddon-Verzeichnis auch solche Dateien und Verzeichnisse zu speichern, die nicht in die TeX-Installation übernommen werden sollen.
Um dem Programm, das die oben beschriebenen Arbeiten durchführt, anzuzeigen, welche Verzeichnisse es berücksichtigen muss und welche nicht, wurde der Verzeichnisname texroot eingeführt und vereinbart, dass nur solche Verzeichnisse und Dateien beim Zusammenstellen der Installationen zu berücksichtigen sind, die unterhalb eines solchen texroot-Verzeichnisses gespeichert sind.
So liegt z. B. die oben erwähnte Datei texmf.cnf für die Windows-Installation im Verzeichnis addonTL7\ZIVaddon_winsp\texroot\texmf\web2c.
Übersichtliche Verwaltung einzelner TeX-Komponenten
Das TeX-System setzt sich aus einer Vielzahl von Einzelkomponenten zusammen. Jede dieser Komponenten kann wiederum aus vielen einzelnen Dateien darunter z. B. Makros und Dokumentationen bestehen.
Um den Programmen des TeX-Systems das Suchen nach Dateien eines bestimmten Typs wie z. B. LaTeX-Makros, Fonts oder Dokumentationen zu erleichtern, werden diese in getrennten, ihrem Verwendungszweck entsprechenden Unterverzeichnissen zusammengefasst. Wenn also in einem LaTeX-Dokument ein Paket wie z. B. "german" eingebunden werden soll, muss TeX nur in einem Teilbaum (für dieses Beispiel in texmf\tex\latex) seines Installationsverzeichnisses nach der Makrodatei german.sty suchen.2
Durch diese Vorgehensweise werden aber die Dateien einer einzelnen Komponente über den gesamten Verzeichnisbaum "verstreut", so dass z. B. bei der Ersetzung einer Komponente leicht ein Teil übersehen werden kann.
Um trotzdem den Überblick zu behalten, kann die oben eingeführte "texroot"-Konvention eingesetzt werden. Hierzu werden alle Dateien einer TeX-Komponente (wie z. B. des LaTeX-Makro-Paketes "Koma-Script") in einem "Mini-TeX-Verzeichnisbaum" gespeichert, der genauso wie der "große" Installationsbaum gegliedert ist, aber eben nur die Dateien dieser einen Komponente enthält. Mit Programmhilfe werden dann diese "Mini-Bäume" zu vollständigen Installationsbäumen zusammengebaut. Auf diese Weise kann jede zusätzliche oder geänderte Komponente in einem separaten Verzeichnis gespeichert werden.
Anhand des Koma-Script-Paketes soll dies näher erläutert werden. Dieses Paket besteht, wie fast alle LaTeX-Pakete, aus drei Teilen:
- den Dokumentationen,
- den Quellendateien, aus denen sich die Dokumentationen und Makrodateien erzeugen lassen, und
- den Makrodateien, die zur Ausführungszeit von LaTeX benötigt werden.
Nach den TDS-Konventionen (siehe Anmerkung 2) sind diese Teile in folgenden Unterverzeichnissen zu speichern:
- Dokumentationen: texmf\doc\latex\koma-script
- Quellendateien: texmf\source\latex\koma-script
- Makrodateien: texmf\tex\latex\koma-script
Wenn wir für das Koma-Script-Paket einen eigenen texroot-Verzeichnisbaum
ZIVaddon_alle\Paket_Vorbereitung\koma-script\texroot\texmf
aufbauen,
in dem alle soeben genannten Verzeichnisse eingebunden sind, bleibt die
Übersicht über alle Dateien, die zu diesem Paket gehören, erhalten. Die
einzelnen Teilbäume unter texroot werden dann über symbolische Links an den
entsprechenden Stellen des Installationsverzeichnisses programmgesteuert
eingebaut.
Notes
1Um dieses und die folgenden Beispiele übersichtlicher zu halten, werden Pfadnamen verwendet, die nicht exakt den tatsächlichen Gegebenheit entsprechen. Die tatsächlichen Pfadnamen werden unter "Detailstruktur der Verzeichnisse" (10) genauer beschrieben.
2Welche Teilbäume es gibt und wie sie aufzubauen sind, wird in den internationalen TDS-Konventionen (TDS steht für "TeX Directory Structure") festgelegt, die auch beim Aufbau der Verzeichnisbäume unserer TeX-Installationen beachtet wurden.

