TeX: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
BurnOver (Diskussion | Beiträge)
Smokephil (Diskussion | Beiträge)
K add gummi
 
(24 dazwischenliegende Versionen von 11 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Allgemeines==
TeX (gesprochen "Tech") ist ein Textsatzsystem, das sich vor allem im Hochschulbereich großer Beliebtheit erfreut. Es eignet sich besonders gut zum Setzen von größeren Dokumenten mit buch-artigem Erscheinungsbild. Entwickelt wurde es von dem amerikanischen Mathematik- und Informatikprofessor Donald E. Knuth. 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.   
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
'''LaTeX''' entstand aus dem Wunsch vieler Autoren, den Text ihrer Dokumente nach inhaltlichen Gesichtspunkten gliedern zu können anstatt wie bei TeX üblich nach visuellen Gesichtspunkten. Während TeX sehr schwer bedienbar ist, gestaltet sich dies bei LaTeX deutlich einfacher. LaTeX ist mittlerweile an vielen Universitäten ein Standard zum Schreiben von wissenschaftlichen Arbeiten. Aufgrund von CTAN, einer umfassenden Paketdatenbank, gibt es aber auch noch viele weitere Verwendungsmöglichkeiten wie das Erstellen von Liederbüchern oder Präsentationen.


Inzwischen gibt es mit ConText ein weiteres wichtiges Makropaket. ConText ist noch in ständiger Weiterentwicklung begriffen.
== Installation ==
Die wichtigsten Komponenten für TeX/LaTeX sind zusammengefasst in zwei Paketgruppen:
* {{Paket|texlive}} enthält Die wichtigsten Komponenten von TeXLive
* {{Paket|texlive-lang}} enthält Sprachunterstützungen für Sprachen, die nicht das lateinische Alphabet verwenden


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.  
Möchte man hauptsächlich deutschsprachige Dokumente verfassen, reicht es aus, texlive zu installieren.
# pacman -Syu texlive


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.
== Editoren ==
Einige LaTeX-Editoren können viele Dinge, wie zum Beispiel das Kompilieren, vereinfachen, und bieten darüber hinaus auch Zusatzfunktionen wie Syntaxhervorhebung oder Rechtschreibprüfung an.
* {{Paket|kile}} ist der LaTeX-Editor des KDE-Projekts.
* {{Paket|gnome-latex}} ist ein LaTeX-Editor für den GNOME-Desktop.
* {{Paket|gummi}} ist ein side-by-side LaTeX-Editor.
* [[LyX]] ist ein eigenständiger WYSIWYM-Editor, der als LaTeX-Frontend fungiert.
* {{Paket|texmacs}} ist ein eigenständiger WYSIWYM-Editor, der sich in der Bedienung an Emacs orientiert.
* {{Paket|texmaker}} ist ein plattformübergreifender LaTeX-Editor, der in Aufbau und Bedienung kile ähnelt (da vom gleichen Entwickler). Enthält jedoch nur Qt5, keine KDE-Ahängigkeiten.


== TeX und LaTeX unter Arch-Linux ==
Daneben lassen sich auch normale Editoren gut konfigurieren:
* [[gedit]]: Das Paket [https://www.archlinux.de/packages/extra/x86_64/gedit-plugins gedit-plugins]enthält die Zusatz-Funktion SyncTeX, mit deren Hilfe sich LaTex- und PDF-Dateien über gedit und evince synchronisieren lassen.
* [[vim]]: Es sollte zusätzlich das Paket [https://www.archlinux.de/packages/community/x86_64/vim-latexsuite vim-latexsuite]installiert werden.
* [[emacs]]: Es sollte zusätzlich das Paket [https://www.archlinux.de/packages/community/x86_64/auctex auctex]installiert werden.


=== Was muss ich installieren: Pakete ===
== Dokumentation ==


Unter Arch gibt es die TeXlive-Distribution, Release 2009 (2010 in Testing) fertig paketiert. tetex, bis vor kurzem noch in [extra], gibt es nur noch im [[AUR]]. Die umfangreiche Dokumentation zu Texlive gibt es paketiert im [community]-Repo.
Zu LaTeX (weniger zum reinen, "plain" TeX) gibt es eine Fülle von Dokumentationen.  


Ich werde aus dem folgenden Grund nicht auf tetex eingehen:  
Wichtige Links dazu:
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.


Ich kenne keine andere Linux-Distribution, die hinsichtlich TeX/LaTeX aktueller ist als Arch. Geplant ist außerdem ein Paket in [community], mit dem man sich selbst PKGBUILDs generieren kann. Dadurch kann man sich die noch aktuelleren CTAN-Sourcen installieren.
* [http://mirrors.ibiblio.org/CTAN/info/german/LaTeX2e-Kurzbeschreibung/l2kurz.pdf allgemeine Kurzanleitung zu LaTeX]
* [https://ctan.org/?lang=de Einstieg ins CTAN, das Comprehensive TeX Archive Network]
* [https://golatex.de/ Deutschsprachiges LaTeX Forum]


=== Paketgruppen ===
Es gibt folgende Gruppen.
====texlive-most(-doc)====
Ein ziemlich komplettes System, in texlive-most-doc sind die Dokus dazu enthalten.
====texlive-lang(-doc)====
Weitere Sprachen.
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.
=== Dokumentation ===
TeXlive2008 enthält eine neues, erheblich schnelleres texdoc. texdoc und texdoctk sind zwei voneinander unabhängige Programme, 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 in texlua geschrieben. texlua ist ein Symlink von luatex, und das wiederum eine Erweiterung/Weiterentwicklung von pdftex. texdoc gibt man einen Suchstring mit, z.B. den Namen eines LaTeX-Paketes. 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; welche, kann man mit Hilfe der Konfigurationsdatei texdoc.cnf beeinflussen.
Genaueres erfährt man, fals man das Paketchen texlive-texdoc-doc aus dem AUR installiert hat, mittels
<pre>
texdoc texdoc
</pre>
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. Immerhin versteht das texdoc aus TeXlive 2008 die regulären Ausdrücke, die auch Lua versteht.
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:
[[Bild: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.
Leider ist in der FAQ nicht mehr alles aktuell. Gerade bei den Fonts tut sich in letzter Zeit einiges. Aktueller ist die englischsprachige FAQ http://www.tex.ac.uk/cgi-bin/texfaq2html .
===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)
<pre>
% 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
</pre>
Zur Pflege dieser Konfigurationsdatei kann man das Skript texconfig (Benutzer) oder texconfig-sys (systemweit) verwenden.
Der TEXMFDIST Baum sollte Dateien vorbehalten bleiben, die durch die [Extra]-Pakete von TeXlive installiert werden. Für Pakete aus dem AUR sollte der TEXMF Baum vorbehalten bleiben. Dateien, die man selber vom CTAN holt, gehören in den  TEXMFVAR Baum. Darüber hinaus können Benutzer einen eigenen Baum in ihrem Homeverzeichnis pflegen (TEXMFHOME).
===F: Was muss ich für deutsche Texte beachten?===
Als documentclass sollte eine der Koma-Klassen benutz werden. Diese sind an deutsche Gewohnheiten angepasst.
Die Namen sind:
* '''scrartcl''' (anstatt article)
* '''scrreprt''' (anstatt report)
* '''scrbook''' (anstatt book)
Einer der folgenden Einträge sollte mit in die LaTeX-Präambel d.i. alles was vor \begin{document} kommt:
Bei neue deutscher Rechtschreibung (mit Kommentaren, die kann man natürlich weglassen):
<pre>
\usepackage[T1]{fontenc}    % T1 ist eine Fontkodieren mit 256 Zeichen, geeignet für westeuropäische Sprachen.
                            % lässt man dies weg, bekommt man eine Kodierung mit 127 Zeichen, und dann trennt 
                            % TeX deutsche Texte nicht richtig
\usepackage[utf8]{inputenc}  % Erste Wahl, da Arch UTF-8 verwendet. Bekommt man ein Dokument aus einer
                            % anderen Quelle, kann da etwas anderes stehen (latin1, ansinew), und das kann
                            % dann durchaus richtig sein.
\usepackage[ngerman]{babel}  % Einstellungen für neue deutsche Rechtschreibung
</pre>
Bei alter deutscher Rechtschreibung:
<pre>
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
</pre>
Wobei utf8 nur verwendet werden sollte, wenn die Datei auch in UTF-8 kodiert ist. Ansonsten muss man die entsprechende Zeichenkodierung angeben. Wahrscheinlich wird dies latin1, ansinew oder latin9 sein.
'''Achtung:''' Bei Dokumenten, die durch verschiedene Personen bearbeitet werden, die verschiedene Betriebssysteme verwenden, muss gewährleistet sein, dass alle Teildokumente gleich kodiert sind. Ist dies nicht der Fall, gibt es Fehlermeldungen. Hier kann ein Tool wie recode helfen.
<pre> recode latin1..utf8 <dateiname> </pre> konvertiert von latin1 nach utf8,
<pre> recode latin1..latex <dateiname> </pre> konvertiert nach LaTeX, ersetzt also zum Beispiel ä durch \"a.
===F: Wie kann ich eine neue documentclass hinzufügen?===
Es ist nicht schwer, neue Pakete oder Klassen zur eigenen Installation hinzuzufügen.
Zunächst sollte man sich sicher sein, ob das Paket nicht schon vorhanden ist. Dabei hilft
* http://wiki.archlinux.org/index.php/Texlive-core diese Wiki-Seite oder
* kpsewhich.
kpsewhich sucht auf den gleichen Wegen nach Dateien wie auch tex.
Mit <pre>kpsewhich --help</pre> bekommt man angezeigt, wonach man suchen könnte. Zum Beispiel:
<pre># kpsewhich akletter.cls
/usr/share/texmf-dist/tex/latex/akletter/akletter.cls
</pre>
Das -dist im Pfad deutet darauf hin, dass akletter bei der offiziellen Distribution dabei war.
So wird es mit vielen Paketen und Klassen sein, denen man in Mailinglisten, LaTeX-Foren oder
sonstwo begegnet. Sollte dann doch mal eines dabei sein, dass nicht in TeXlive enthalten ist:
Manches gibt es im AUR:
* http://aur.archlinux.org/packages.php?ID=7721  abntex
* http://aur.archlinux.org/packages.php?ID=14449 biblatex
* http://aur.archlinux.org/packages.php?ID=15177 biblatex-dw
* http://aur.archlinux.org/packages.php?ID=6096 hlatex (koreanisch)
* http://aur.archlinux.org/packages.php?ID=6097 hlatex-fonts (koreanische Fonts)
* http://aur.archlinux.org/packages.php?ID=16504 concordance
* http://aur.archlinux.org/packages.php?ID=15613 thesis und thema, zwei Dokumentenklassen
(Die Liste ist möglicherweise unvollständig. Wer im AUR ein Paket findet, trage es doch bitte hier ein.)
Wenn man auch dort nicht fündig wird, ist [http://tug.ctan.org/], [http:///www.dante.de] oder einer
der CTAN-Mirror erste Anlaufstelle. TeXlive speist sich daraus.
Manche Pakete sind allerdings neuer als in TeXlive oder dürfen dort aus lizenzrechtlichen Gründen nicht mit aufgenommen werden. Diese kann man sich vom CTAN als Zipfile oder dateiweise herunterladen.
Dann verteilt man die ausgepackten oder einzeln heruntergeladenen auf einen der Bäume
<pre>~/texmf                          # für einen einzelnen Benutzer
/usr/local/share/texmf/              # local, aber systemweit
</pre>
Dabei gehören *.sty oder *.cls-Dateien unter
<pre>
~/texmf/tex/latex/(neuesVerzeichnisMitPaketnamen)</pre>
bzw.
<pre>
/usr/local/share/texmf/tex/latex/(neuesVerzeichnisMitPaketnamen)
</pre>
Meist ist noch Doku dabei, die entsprechend unter
<pre>
~/texmf/doc/(neuesVerzeichnisMitPaketnamen)</pre>
bzw.
<pre>
/usr/local/share/texmf/doc/(neuesVerzeichnisMitPaketnamen)
</pre>
untergebracht werden sollte. Je nach Verwendungszweck können noch weitere Verzeichnisse anzulegen sein. Es sollte eine README-Datei oder etwas ähnliches dabei sein, die genaueres verrät.
Man kann sich, wenn man unsicher ist, auch die Verzeichnisstruktur unter /usr/share/texmf-dist anschauen und es analog machen.
Anschließend muss als root
<pre># texhash</pre>
ausgeführt werden, damit TeX seine Dateisuchbäume neu generieren kann.
===F: Wie kann ich die Rechtschreibung überprüfen lassen?===
Da man die TeX Dateien normalerweise nur mit einem Texteditor bearbeitet, kann das Problem bei umfangreicheren Dokumenten auftreten, dass man überprüfen will ob man sich vielleicht das eine oder andere mal vertippt hat. Einfach geht das bei OpenOffice über das Menü.
Aber wie macht man das jetzt bei einer Textdatei ohne die Textdatei mit OpenOffice oder ähnlichen großen Programmen öffnen und bearbeiten zu müssen. Dafür gibt es das Programm '''Aspell'''.
Um eine Textdatei (oder hier *.TeX) zu überprüfen muss man natürlich zu erst Aspell inklusive der benötigten Wörterbücher installieren. Das geht mittels
pacman -S aspell aspell-de
Eine Datei wird wie folgt überprüft:
aspell -c datei.endung
Die Oberfläche von aspell ist jetzt selbsterklärend.
[[Kategorie:Büro]]
[[Kategorie:Büro]]
[[en:TeX Live]]

Aktuelle Version vom 11. Januar 2024, 20:38 Uhr

TeX (gesprochen "Tech") ist ein Textsatzsystem, das sich vor allem im Hochschulbereich großer Beliebtheit erfreut. Es eignet sich besonders gut zum Setzen von größeren Dokumenten mit buch-artigem Erscheinungsbild. Entwickelt wurde es von dem amerikanischen Mathematik- und Informatikprofessor Donald E. Knuth. 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 anstatt wie bei TeX üblich nach visuellen Gesichtspunkten. Während TeX sehr schwer bedienbar ist, gestaltet sich dies bei LaTeX deutlich einfacher. LaTeX ist mittlerweile an vielen Universitäten ein Standard zum Schreiben von wissenschaftlichen Arbeiten. Aufgrund von CTAN, einer umfassenden Paketdatenbank, gibt es aber auch noch viele weitere Verwendungsmöglichkeiten wie das Erstellen von Liederbüchern oder Präsentationen.

Installation

Die wichtigsten Komponenten für TeX/LaTeX sind zusammengefasst in zwei Paketgruppen:

  • texlive enthält Die wichtigsten Komponenten von TeXLive
  • texlive-lang enthält Sprachunterstützungen für Sprachen, die nicht das lateinische Alphabet verwenden

Möchte man hauptsächlich deutschsprachige Dokumente verfassen, reicht es aus, texlive zu installieren.

# pacman -Syu texlive

Editoren

Einige LaTeX-Editoren können viele Dinge, wie zum Beispiel das Kompilieren, vereinfachen, und bieten darüber hinaus auch Zusatzfunktionen wie Syntaxhervorhebung oder Rechtschreibprüfung an.

  • kile ist der LaTeX-Editor des KDE-Projekts.
  • gnome-latex ist ein LaTeX-Editor für den GNOME-Desktop.
  • gummi ist ein side-by-side LaTeX-Editor.
  • LyX ist ein eigenständiger WYSIWYM-Editor, der als LaTeX-Frontend fungiert.
  • texmacs ist ein eigenständiger WYSIWYM-Editor, der sich in der Bedienung an Emacs orientiert.
  • texmaker ist ein plattformübergreifender LaTeX-Editor, der in Aufbau und Bedienung kile ähnelt (da vom gleichen Entwickler). Enthält jedoch nur Qt5, keine KDE-Ahängigkeiten.

Daneben lassen sich auch normale Editoren gut konfigurieren:

  • gedit: Das Paket gedit-pluginsenthält die Zusatz-Funktion SyncTeX, mit deren Hilfe sich LaTex- und PDF-Dateien über gedit und evince synchronisieren lassen.
  • vim: Es sollte zusätzlich das Paket vim-latexsuiteinstalliert werden.
  • emacs: Es sollte zusätzlich das Paket auctexinstalliert werden.

Dokumentation

Zu LaTeX (weniger zum reinen, "plain" TeX) gibt es eine Fülle von Dokumentationen.

Wichtige Links dazu: