latex:hintergrund

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
latex:hintergrund [09.03.2013 17:41]
Thomas Schlager angelegt
latex:hintergrund [10.03.2013 14:51] (aktuell)
Thomas Schlager [Hintergrundwissen]
Zeile 1: Zeile 1:
 ====== Hintergrundwissen ====== ====== Hintergrundwissen ======
  
-Auf dieser Seite erläutern wir Hintergrundinformationen,​ die zum besseren Verständnis diverser Themen dienen. ​In diesem ​Bereich ​+Auf dieser Seite erläutern wir Hintergrundinformationen,​ die zum besseren Verständnis diverser Themen dienen. ​Leider muss man in diesem ​Zusammenhang immer wieder etwas weiter ausschweifen.
  
-====== LaTeXpdfLaTeX? psLaTeX? XeLaTex? LuaTeX? ======+===== "​latex"​ oder "​pdflatex"​? =====
  
 +Die Unterschiede zwischen diesen beiden Kommandos liegen im Detail. Es ist sogar so, dass beide Kommandos symbolische Links auf das gleiche Programm -- nämlich ''​pdftex''​ -- sind:
  
-====== Der wiederholte LaTeX-Aufruf ​======+<​code>​ 
 +$ ls -la $(which latex) 
 +lrwxrwxrwx 1 root root 6 12. Jän 2010  /​usr/​bin/​latex -> pdftex 
 +$ ls -la $(which pdflatex) 
 +lrwxrwxrwx 1 root root 6 12. Jän 2010  /​usr/​bin/​pdflatex -> pdftex 
 +</​code>​ 
 + 
 +[[http://​www.pdftex.org|pdfTeX]] ist die logische Weiterentwicklung und Vereinigung von ''​TeX''​ (Donald Knuth) und ''​eTeX''​ (Peter Breitenlohner). LaTeX wiederum ist Eingabesprache und Textsatz-System,​ die um diese Technologien gesponnen wurden. Eine Makro-Paket sozusagen. Historie und Ablauf der Entwicklung lassen sich über Suchmaschinen mit einigem Leseaufwand verfolgen. 
 + 
 +''​pdfTeX''​ ist im Gegensatz zu seinen Vorgängern in der Lage, **direkt** PDF-Dateien zu erstellen. Dadurch lassen sich viele der in PDF verfügbaren Features nutzen. Darüber hinaus hat man ''​pdfTeX''​ mit der Fähigkeit ausgestattet,​ DVI-Dateien erstellen zu können: 
 + 
 +  * ''​latex''​ -> erzeugt DVI-Dateien 
 +  * ''​pdflatex''​ -> erzeugt PDF-Dateien 
 + 
 +//​Entscheidet man sich für ''​pdflatex''​ können Pakete, die auf Konvertierung von DVI zu PostScript basieren, nicht verwendet werden (z.B. PSTricks). Auch das direkte einbetten von PostScript-Grafiken ist unmöglich (sie können aber in verträgliche Formate umgewandelt werden). ​ Als Alternative zur Erzeugung von Grafiken mit PSTricks wurde PGF/TikZ entwickelt.//​ (vgl. [[http://​de.wikipedia.org/​wiki/​PdfTeX]]) 
 + 
 +Einsetzbare Grafik-Formate:​ 
 + 
 +  * ''​latex''​ -> ps, eps, tiff 
 +  * ''​pdflatex''​ -> jpeg, png, pdf 
 + 
 +Da beide Kommandos ''​pdfTeX''​ verwenden, lassen sich auch beide Formate damit generieren. Für die Ausgabeformate sind dennoch die erwähnten Einschränkungen gültig: 
 + 
 +<code latex> 
 +  pdflatex -output-format dvi datei.tex 
 +</​code>​ 
 + 
 +=== latex oder pdflatex? === 
 + 
 +Den einzig "​richtigen"​ Weg gibt es nicht. Bisher haben wir bewusst die Verwendung von ''​pdflatex''​ forciert, weil es die moderne Vorgehensweise ist. Es gibt aber durchaus Situationen,​ die die Verwendung von ''​latex''​ fordern, beispielsweise dann wenn Pakete wie //​pstricks//​ und //psfrag// eingesetzt werden oder Abbildungen im ''​EPS''​-Format vorliegen. Unter Umständen wollen Sie auch Ihren bestehenden Workflow nicht ändern und an bewährten Programmen wie Ihrem ''​DVI''​-Anzeige-Programm festhalten. In solchen Fällen ist ein gemischtes Vorgehen anzuraten:​ 
 + 
 +  - Verwenden Sie bei ''​\includegraphics''​-Befehlen keine Dateiendungen. Damit wird die Auswahl der richtigen Grafik LaTeX überlassen,​ auch wenn ''​latex''​ und ''​pdflatex''​ gemischt werden. 
 +  - Einzubindende Grafiken können in mehreren Formaten vorliegen. Sie können beispielsweise ''​epstopdf''​ für die Konvertierung von ''​EPS''​ zu ''​PDF''​ verwenden. 
 +  - Sie können das Dokument während der Arbeit mit ''​latex''​ kompilieren und Ihre bisherige Software einsetzen. Die Finalversion kann dann mit ''​pdflatex''​ generiert werden. 
 + 
 +===== Der wiederholte LaTeX-Aufruf =====
  
 In diversen anderen Abschnitten wird immer wieder erwähnt, dass der Kompilier-Vorgang mehrmals durchzuführen ist. Dieser Natur gehen wir hier kurz auf den Grund. LaTeX (unabhängig der Variante) agiert wie ein Compiler, der die Eingabesprache (LaTeX) in die Sprache des Ausgabeformats (z.B. PDF) übersetzt. In diversen anderen Abschnitten wird immer wieder erwähnt, dass der Kompilier-Vorgang mehrmals durchzuführen ist. Dieser Natur gehen wir hier kurz auf den Grund. LaTeX (unabhängig der Variante) agiert wie ein Compiler, der die Eingabesprache (LaTeX) in die Sprache des Ausgabeformats (z.B. PDF) übersetzt.
Zeile 22: Zeile 58:
 {{ :​latex:​iteration.png?​nolink |LaTeX-Iterationen}} {{ :​latex:​iteration.png?​nolink |LaTeX-Iterationen}}
  
-Nun gilt es zu klären, was dies für Ihren Arbeitsalltag bedeutet. Klar ist, dass jedes Dokument zur **endgültigen Fertigstellung** mindestens zwei Mal kompiliert werden muss - nämlich nach jeder Änderung. Während des Arbeitsalltags ist dies allerdings nicht nötig, da Sie aller Voraussicht nach Ihr Dokument schrittweise erweitern und dadurch ständig fast-aktuelle Meta-Dateien vorliegen.+Nun gilt es zu klären, was dies für Ihren Arbeitsalltag bedeutet. Klar ist, dass jedes Dokument zur **endgültigen Fertigstellung** mindestens zwei Mal kompiliert werden muss - nämlich nach jeder Änderung. Während des Arbeitsalltags ist dies allerdings nicht nötig, da Sie aller Voraussicht nach Ihr Dokument schrittweise erweitern und dadurch ständig fast-aktuelle Meta-Dateien vorliegen. Auf neu hinzugefügte Elemente kann im direkt darauffolgenden Kompilier-Vorgang nicht verwiesen werden.
  
 Zu klären ist auch, welche Elemente in einem Dokument überhaupt von dieser Zwei-Schritte-Systematik betroffen sind. Da auch viele Funktionen von Erweiterungspaketen in diese Kategorie fallen, ist es an dieser Stelle unmöglich, alle aufzulisten. Aus den grundlegenden Funktionen sind betroffen: Zu klären ist auch, welche Elemente in einem Dokument überhaupt von dieser Zwei-Schritte-Systematik betroffen sind. Da auch viele Funktionen von Erweiterungspaketen in diese Kategorie fallen, ist es an dieser Stelle unmöglich, alle aufzulisten. Aus den grundlegenden Funktionen sind betroffen:
  
-  * Inhaltsverzeichnis+  * Verzeichnisse
   * Markierungen und Referenzen (Querverweise,​ auch Seitenverweise)   * Markierungen und Referenzen (Querverweise,​ auch Seitenverweise)
   * Digitale Sprungpunkte (Hyperlinks)   * Digitale Sprungpunkte (Hyperlinks)
Zeile 37: Zeile 73:
 Um hier die Vollständigkeit zu wahren, erwähnen wir die ganze Wahrheit. **In manchen Fällen sind auch zwei Kompilier-Vorgänge von LaTeX nicht ausreichend.** Dies betrifft vor allem lange Dokumente, in seltenen Fällen aber auch kürzere. Angenommen Sie kopieren eine bestehende, längere LaTeX-Eingabedatei in einen neuen Ordner, ein neues LaTeX-Projekt. Nun kompilieren Sie ein erstes Ausgabedokument. Sie stellen fest, dass keine Querverweise existieren und das Inhaltsverzeichnis leer ist. Sie kompilieren daher das Dokument ein zweites Mal. Querverweise werden angezeigt, das Inhaltsverzeichnis ist gefüllt. Sie drucken oder versenden Ihr (möglicherweise sehr wichtiges) Dokument. Um hier die Vollständigkeit zu wahren, erwähnen wir die ganze Wahrheit. **In manchen Fällen sind auch zwei Kompilier-Vorgänge von LaTeX nicht ausreichend.** Dies betrifft vor allem lange Dokumente, in seltenen Fällen aber auch kürzere. Angenommen Sie kopieren eine bestehende, längere LaTeX-Eingabedatei in einen neuen Ordner, ein neues LaTeX-Projekt. Nun kompilieren Sie ein erstes Ausgabedokument. Sie stellen fest, dass keine Querverweise existieren und das Inhaltsverzeichnis leer ist. Sie kompilieren daher das Dokument ein zweites Mal. Querverweise werden angezeigt, das Inhaltsverzeichnis ist gefüllt. Sie drucken oder versenden Ihr (möglicherweise sehr wichtiges) Dokument.
  
-Nun Stellen ​Sie fest, dass alle Seitenangaben der Querverweise und im Inhaltsverzeichnis falsch sind. Hat LaTeX hier Probleme, die man aus anderen Textverarbeitungsprogrammen kennt? Nein. Entmystifizieren wir das Problem: alle Veränderungen im Dokument, die ein Anwachsen oder Schrumpfen von Seiten im Ausgabedokument gegenüber der Letztversion bewirken, führen in diesem Sinne potentiell zu Fehlern. Das Ausgabedokument und die Meta-Dateien sind während des Kompilier-Vorgangs "​asynchron"​. Erst das Dokument des nächsten Kompilier-Vorgangs stellt die Fehler richtig. Typische Phänomene, die solches Verhalten bewirken:+Nun stellen ​Sie fest, dass alle Seitenangaben der Querverweise und im Inhaltsverzeichnis falsch sind. Hat LaTeX hier Probleme, die man aus anderen Textverarbeitungsprogrammen kennt? Nein. Entmystifizieren wir das Problem: alle Veränderungen im Dokument, die ein Anwachsen oder Schrumpfen von Seiten im Ausgabedokument gegenüber der Letztversion bewirken, führen in diesem Sinne potentiell zu Fehlern. Das Ausgabedokument und die Meta-Dateien sind während des Kompilier-Vorgangs "​asynchron"​. Erst das Dokument des nächsten Kompilier-Vorgangs stellt die Fehler richtig. Typische Phänomene, die solches Verhalten bewirken:
  
   * Ein Verzeichnis wächst oder schrumpft um eine Seite.   * Ein Verzeichnis wächst oder schrumpft um eine Seite.
Zeile 47: Zeile 83:
 Je länger Ihr Dokument wird (z.B. mehrere Hundert Seiten), desto größer ist die Chance solcher Effekte. Kompilieren Sie längere Dokumente bei Fertigstellung daher sicherheitshalber drei oder gar vier Mal, um sicherzustellen dass sich keine Verschiebungen mehr ergeben. Je länger Ihr Dokument wird (z.B. mehrere Hundert Seiten), desto größer ist die Chance solcher Effekte. Kompilieren Sie längere Dokumente bei Fertigstellung daher sicherheitshalber drei oder gar vier Mal, um sicherzustellen dass sich keine Verschiebungen mehr ergeben.
  
-//​Randnotiz:​ in diesem Kontext ist auch die Betrachtung externe Programmewie bibtex, biber oder makeindex notwendig. Auch Sie bewirken manchmal sprungartige Änderungen im Ausgabedokument. Betrachten Sie also den Einsatz externer Programme wie eine potentielle Änderung im Ausgabedokument.//​+//​Randnotiz:​ in diesem Kontext ist auch die Betrachtung externe Programme wie bibtex, biber oder makeindex notwendig. Auch sie bewirken manchmal sprungartige Änderungen im Ausgabedokument. Betrachten Sie also den Einsatz externer Programme wie eine potentielle Änderung im Ausgabedokument.//​
latex/hintergrund.1362847270.txt.gz · Zuletzt geändert: 09.03.2013 17:41 von Thomas Schlager