TeX
Allgemeines
TeX ist ein Textsatzsystem, das sich vor allem im Hochschulbereich großer Beliebtheit erfreut. Es ist vor allem geeignet, größere Dokumente mit buchartigem Erscheinungsbild zu setzen und wurde von dem amerikanischen Mathematik- und Informatikprofessor Donald E. Knuth zusammen mit diversen weiteren Tools zu diesem Zweck geschrieben. Unter anderem schrieb er ein Makropaket zu TeX, genannt plain TeX oder einfach plain. Wenn man heutzutage von TeX spricht, meint man zumeist plain TeX.
LaTeX entstand aus dem Wunsch vieler Autoren, den Text ihrer Dokumente nach inhaltlichen Gesichtspunkten gliedern zu können, nicht nach visuellen Gesichtspunkten. Beispiel: statt zu sagen "Diese Zeile bitte fett, mit einer Zeilenhöhe Abstand zum Folgetext, und größer" sagt man "diese Zeile als Überschrift". LaTeX ist neben plain ein weiteres Makropaket zu TeX. Es ist nicht vollständig inkompatibel zu plain, aber das Mixen von plain TeX und LaTeX kann, wenn man sich nicht sehr gut auskennt, zu seltsamsten Ergebnissen führen
Inzwischen gibt es mit ConText ein weiteres wichtiges Makropaket. ConText ist noch in ständiger Weiterentwicklung begriffen.
TeX hat eine lange Geschichte hinter sich. Es gibt eine Unzahl von Abwandlungen, Makropaketen, Paketen zu den Makropaketen, Formaten, Fonts in verschiedenen Kodierungen und Fontformaten und vieles mehr.
Daher möchte niemand dies alles heutzutage noch von Hand installieren. Das muss man aber auch nicht. Dafür gibt es Distributionen oder -- im Linux-Bereich -- Pakete.
TeX und LaTeX unter Arch-Linux
Was muss ich installieren: Pakete
Unter Arch gibt es zwei Distributionen: tetex und texlive. Genau genommen sogar drei, denn texlive gibt es auch noch in einer svn-Version. tetex ist im extra-Repository, beide texlive-Versionen findet man im community-Repository.
Ich werde aus dem folgenden Grund nicht auf tetex eingehen: Thomas Esser (daher der Name teTeX) hat mit der Version 3.0 alle weitere Pflege der Distribution eingestellt und empfiehlt die Nutzung von texlive. Dies ist auch die von der tug (TeX User Group) gepflegte Distribution mit Unterstützung aller gängigen Computerplattformen.
Daher die Empfehlung, entweder die texlive-pakete (stabil, basierend auf der von der tug verteilten CD bzw DVD) oder die texlive-svn-pakete zu nutzen. Letztere werden bei wichtigeren Änderungen aktualisiert und stellen daher die aktuellsten Pakete zur Verfügung.
Ich kenne keine andere Linux-Distribution, die hinsichtlich TeX/LaTeX aktueller ist als Arch (wenn man community-Pakete zur Arch-Distribution zugehörig ansieht)!
Der stabile Zweig
Es gibt 4 pacman-Gruppen zum stabilen Zweig von texlive.
texlive-most(-doc)
Ein ziemlich komplettes System, in texlive-most-doc sind die Dokus dazu enthalten.
texlive-lang(-doc)
Weitere Sprachen.
texlive-all
Ein Dummy-Paket, das alles oben genannte installiert.
Will man nicht die Gruppen installieren, kann man auch einzelne Pakete nehmen. Die Liste der Pakete ist ellenlang und unter http://wiki.archlinux.org/index.php/Texlive dokumentiert.
Auf jeden Fall braucht man die Binaries (texlive-bin) und die Grundinstallation (texlive-core). Nahezu jeder wird auch texlive-latexextra und texlive-fontsextra brauchen was man noch so braucht, hängt dann stark vom Einsatzbereich ab.
Der svn-Zweig
Dieselbe Aufteilung existiert auch noch einmal als svn-Zweig.
Man sollte sich einmal entscheiden, ob man den stabilen oder den svn-Zweig nehmen will. Leute, die ein unter allen Umständen funktionierendes System brauchen, sollte den stabilen Zweig nehmen, alle anderen den svn-Zweig. Der passt eigentlich am besten zur rolling-release-Philosophie von Arch.
Dokumentation
texdoc und texdoctk sind zwei voneinander unabhängige Prgramme, die beide mit dem Ziel arbeiten, die Dokumentation zu den unzähligen Paketen auf einfache Weise zugängig zu machen. Dieses Ziel versuchen sie jedoch auf völlig unterschiedliche Weise zu erreichen. Es ist also nicht so, dass texdoctk nur eine graphische Oberfläche zu texdoc ist.
texdoc
ist ein Shellskript, dem man einen Suchstring, z.B. den Namen eines Paketes, mitgeben kann. texdoc such dann in den Verzeichnissen der texmf-Bäumes nach Dateien mit dem Suchstring als Namen und .dvi, .pdf, ps, .txt oder .htm(l) als Endung und ruft Programme auf, die man mit Hilfe von Umgebungsvariablen festlegen kann. Hier die Variablen (erste Spalte), ihr Sin und Zweck (zweite Spalte) und ihre aus heutiger Sicht seltsam anmutende Vorbelegung.
TEXDOCVIEW_dvi Suche nach .dvi-Dateien Standard: xdvi
TEXDOCVIEW_pdf Suche nach .pdf-Dateien Standard: acroread
TEXDOCVIEW_html Suche nach .html-Dateien Standard: netscape
TEXDOCVIEW_ps Suche nach Postscript-Dateien Standard: ghostview
TEXDOCVIEW_txt Suche nach normalen Textdateien Standard: more
Da diese Programme heute keineswegs überall mehr installiert sind, sollte man diese Variablen irgendwo dauerhaft setzen, etwa in der /etc/profile oder in der ~/.bashrc (falls man mit der bash arbeitet).
Nachteil dieses Ansatzes: Man muss wissen oder erraten, wie die Datei mit der gewünschten Information heißt. Es ist leider nicht immer so, dass aus dem Namen des Paketes auf den namen der Dokumentation geschlossen werden kann. Zum Beispiel heißt die Dokumentation zu KomaScript scrguide.
Daher: Fragen nach der Dokumentation von LaTeX-Paketen sind oft nicht dumm.
texdoctk
ist ein unter Verwendung von perl-tk in Perl geschriebenes Skript und verfolgt einen ganz anderen Ansatz.
Zunächst müssen perl und perl-tk installiert sein.
pacman -S perl-tk
Der Aufruf von texdoctk (ohne Parameter) öffnet dann ein Fenster, in dem eine inhaltiche Gliederung der angebotenen Dokumente vorgenommen wird.
Das sieht dann etwa so aus:
Datei:2008-03-02-182901 736x318 scrot.png
Leider wird texdoctk m.w. nicht mehr gepflegt. Die dahinterliegende Doku aber schon.
Oft gestellte Fragen (FAQ)
F: Wie soll ich anfangen?
A: Um TeX und LaTeX sinnvoll einsetzen zu können, kommt man nicht umhin, Dokumentation dazu zu lesen. Anfangen kann man zum Beispiel mit der http://www.dante.de/faq/de-tex-faq/, der deutschsprachigen FAQ zu TeX und LaTeX. Dort gibt es auch einen Abschnitt zu online erhältlicher Literatur.
F: Boah, TeXlive hat ja eine total unübersichtliche Verzeichnisstruktur!
A: TeXLive hat in der Tat eine umfangreiche Verzeichnisstruktur. Wenn man da Prinzip aber verstanden hat, dann ist es gar nicht so schlimm.
TeXlive benutzt mindestens drei "Bäume" mit derselben internen Struktur. Diese werden nacheinander durchsucht. Die Suchreihenfolge ist konfigurierbar. Hier ein Auszug aus der Hauptkonfigurationsdatei texmf.cnf ($SELFAUTODIR ist unter ArchLinux auf /opt/texlive gesetzt)
% The tree containing the runtime files closely related to the specific % program version used: TEXMFMAIN = $SELFAUTODIR/texmf % The main distribution tree: TEXMFDIST = $SELFAUTODIR/texmf-dist % A place for local additions to a "standard" texmf tree. % This tree is not used for local configuration maintained by % texconfig, it uses TEXMFCONFIG below. TEXMFLOCAL = $SELFAUTODIR/texmf-local % TEXMFSYSVAR, where texconfig-sys stores variable runtime data. TEXMFSYSVAR = $SELFAUTODIR/texmf-var % TEXMFSYSCONFIG, where texconfig-sys stores configuration data. TEXMFSYSCONFIG = $SELFAUTODIR/texmf-config % User texmf trees are allowed as follows. TEXMFHOME = $HOME/texmf % TEXMFVAR, where texconfig stores variable runtime data. TEXMFVAR = $HOME/.texmf-var % TEXMFCONFIG, where texconfig stores configuration data. TEXMFCONFIG = $HOME/.texmf-config
Der TEXMFDIST Baum sollte Dateien vorbehalten bleiben, die durch die Community-Pakete von TeXlive installiert werden. Für Pakete aus dem AUR sollte der TEXMFLOCAL Baum vorbehalten bleiben. Dateien, die zur Laufzeit erstellt werden, sollten in den TEXMFVAR Baum. Darüber hinaus können Benutzer einen eigenen Baum in ihrem Homeverzeichnis pflegen (TEXMFHOME).
Zur Pflege dieser Konfigurationsdatei kann man das Skript texconfig (Benutzer) oder texconfig-sys (systemweit) verwenden.