Moin, Ich schreibe gerade an einer Präsentation über Word und Latex. Ja die Präsent. ist in PowerPoint erstellt worden. :) Meine Frage bezieht sich auf den technischen Hintergrund. Was passiert bei der Übersetzung des Codes? Welche Dateien werden angelegt. Wie erfolgt dieses Prozedere? Danke :) gefragt 29 Sep '15, 13:56 PeterKoller |
LaTeX selbst ist ein Format für die Maschine TeX. Ruft man das Programm Ein LaTeX-Dokument ist aufgebaut in Vorspann oder Präambel und Hauptteil oder Körper. Die Präambel definiert in erster Linie die Form, während der Hauptteil maßgeblich für den Inhalt ist. In der Regel beginnt die Präambel mit dem Laden einer Dokumentklasse. In der Dokumentklasse werden Anweisungen definiert, die wesentlich für die Form des Dokuments sind. Darauf folgen Anweisungen zum Laden von Paketen. Pakete erweitern die Fähigkeiten von Klassen. Weitere Definitionen und Einstellungen können folgen. Während der Verarbeitung des Hauptteils, dessen Satzanweisungen entfernt mit HTML-Anweisungen zu vergleichen sind, werden außerdem Informationen für zukünftige Verarbeitungsläufe aufgesammelt. Beispielsweise werden Informationen zu Querverweisen so konserviert, aber auch Informationen zu den Inhalten von Verzeichnissen. Auch Informationen zu verwendeten Quellen oder anzulegenden Stichworten im Stichwortverzeichnis werden in externen Dateien abgelegt. Gleichzeitig wird Seite für Seite die PDF-Datei geschrieben. Vorteil dieses Vorgehens ist, dass sie eher wenig Speicher benötigt. Nicht das gesamte Dokument muss im Speicher gehalten werden, nur die gültigen Definitionen, die aktuelle Seite und der aktuelle Absatz. Ein sehr wesentliches Merkmal von LaTeX ist auch, dass es keinen einfachen Zeilenumbruch durchführt, sondern immer komplette Absätze nach einstellbaren Parametern umbricht. Wieviele und welche Hilfsdateien es gibt, hängt sehr maßgeblich von Dokument selbst bzw. den verwendeten Klassen und Paketen ab. Zwar kann LaTeX nur 16 Dateien gleichzeitig lesen und nur 16 Dateien gleichzeitig schreiben, die Gesamtzahl der (nacheinander geschriebenen oder gelesenen) Dateien ist jedoch unbegrenzt. Der jeweils nächste LaTeX-Lauf arbeitet ganz genauso, wobei die Informationen einiger Hilfsdateien beim Übergang von der Präambel zum Hauptteil gelesen werden. Diese Hilfsdateien enthalten in dem Fall ebenfalls TeX-Anweisungen. Andere Hilfsdateien wie die für den Index, werden von externen Programmen zwischen den LaTeX-Läufen verarbeitet. Die externen Programme schreiben andere Hilfsdateien, die wiederum aus TeX-Anweisungen bestehen. Einige der Hilfsdateien werden auch erst bei bestimmten Aktionen beispielsweise durch die Anweisungen zur Ausgabe eines Verzeichnisses eingelesen. Der internen Verarbeitung in TeX, also dem Compiler, der sowohl die LaTeX-Datei, als auch das Format verarbeitet, ist auf vielen Dutzend Seiten in The TeXbook dokumentiert. Dabei enthält TeX wie jeder Interpreter oder Compiler einen Scanner und einen Tokenize als Vorderteil (aka Mund). Daran knüpft sich bei TeX die eigentliche Satzmaschine an, die sozusagen den Bauch darstellt. Je nach TeX gibt es unterschiedliche Backends entweder für DVI-Dateien, PDF-Dateien oder erweiterte DVI-Dateien. TeX liest Dateien immer sequentiell. Die Ausgabe erfolgt ebenfalls sequentiell. Allerdings erfolgt die Ausgabe einer Seite erst, wenn die Seite komplett aufgebaut ist. Weil Absätze immer im Ganzen umbrochen werden und Seitenumbrüche zwischen Absätzen auch verboten werden können, können dabei auch mehrere Seiten auf einmal ausgegeben werden und erst bei der Ausgabe selbst ist TeX bekannt, welche Teile welcher Absätze auf welchen Seiten ausgegeben werden. Man spricht deshalb von einer asynchronen Ausgabe. Da zum Zeitpunkt der Ausgabe die Absätze der Seite bereits fertig umbrochen sind, hat dies Auswirkungen auf jegliche Bezüge zur aktuellen Seitennummer. Diese benötigen ggf. einen Umweg über die bereits erwähnten Hilfsdateien uns stehen somit erst beim nächsten LaTeX-Lauf als Rückschau zur Verfügung. Davon ausgenommen sind lediglich Kopf und Fuß der Seite, die erst während des Seitenumbruchs erstellt werden. Daraus ergibt sich wiederum, dass Informationen, die vom Seiteninhalt in den Kopf gelangen sollen, über spezielle Mechanismen ausgetauscht werden müssen, um wirklich auf die richtige Seite zu gelangen. Wichtig ist auch, dass LaTeX nicht von sich aus, so viele Läuft durchführt, bis ein Dokument einen unveränderlichen Zustand erreicht. Das wäre auch nicht wünschenswert, da ein Dokument nicht zwingend einen finalen Zustand erreichen muss. LaTeX gibt allerdings in der Log-Datei, die über auch über den Verlauf der Tätigkeit informiert, Hinweise, ob aus seiner Sicht ein weiterer LaTeX-Lauf erforderlich ist. Spezielle LaTeX-Editoren oder LaTeX-Build-Prozessoren verarbeiten solche Informationen üblicherweise. Die Haupt-Hilfsdatei mit Endung Vereinfacht als ASCII-Art dargestellt, wäre das also etwas wie:
Wird biber statt bibtex verwendet, kommen weitere Dateien hinzu. Ebenso kommen weitere Dateien und ggf. weitere Aufrufe von externen Programmen hinzu, falls zusätzliche Verzeichnisse beispielsweise für Listings, Namensindex, Glossar etc. verwendet werden. Wie die Grafik zeigt, entsteht also insbesondere bei jedem Lauf eine Ausgabedatei (pdf oder dvi ). Bis zum finalen LaTeX-Lauf zeigt diese jedoch nur einen Zwischenstand an, in dem beispielsweise Querverweise oder Verzeichnisse noch nicht korrekt sind.
Als Literatur sei neben The TeXbook auch TeX by Topic erwähnt. In beiden Büchern ist neben den oben erwähnten drei Stufen der Verarbeitung auch noch sehr ausführlich die Stufe der Expansion erklärt, die noch vor der Satzmaschine stattfindet, und tatsächlich den Anwendern anfänglich oft die meisten Rätsel aufgibt. beantwortet 29 Sep '15, 15:17 saputello @saputello perfekt
(29 Sep '15, 15:23)
PeterKoller
@PeterKoller: Noch lange nicht. Das ist nur ein ganz kleiner und noch sehr unscharfer Ausschnitt.
(29 Sep '15, 15:37)
saputello
Spannendes Thema: Wie zitiert man eine TeXwelt-Antwort? :-)
(29 Sep '15, 15:41)
Johannes
@saputello @Johannes könnte ich diese Grafik auf der Seite 4 verwenden? Was sagt ihr als Experten dazu? http://www.statistik.lmu.de/~carolin/texkurs/ss07kurs.pdf
(30 Sep '15, 11:41)
PeterKoller
@PeterKoller: Die finde ich sehr irreführend. Das sieht so aus, also würde
(30 Sep '15, 11:54)
saputello
(30 Sep '15, 12:10)
Herbert
@Herbert Wo ist das jetzt ein Widerspruch zu dem, was ich oben geschrieben habe?
(30 Sep '15, 12:18)
saputello
@PeterKoller: Ich habe übrigens langsam den Eindruck, dass wir hier Deine Aufgabe für Dich erledigen sollen, also Dir Deine Arbeit machen. Das wäre nicht gut. Du solltest das schon verstanden haben. Schließlich musst Du während der Präsentation auch Fragen beantworten können. Wenn Dich nur der Datenfluss interessiert, also welche Dateien werden erzeugt und was passiert weiter damit: Das erklärt fast jede LaTeX-Einführung.
(30 Sep '15, 12:31)
saputello
@saputello: Nirgends, mein Kommentar war eine Ergänzung!
(30 Sep '15, 12:47)
Herbert
@Johannes wie jede Onlinequelle, würde ich sagen, in der URL Fragen- und Antwort-ID: http://texwelt.de/wissen/fragen/14506#14513
(01 Okt '15, 09:16)
cgnieder
Das war mehr ein vergiss nicht die Antwort zu zitieren verbunden mit einem: Wer ist
(01 Okt '15, 18:07)
Johannes
Ergebnis 5 von 11
show 6 more comments
|
Hier kommt mal eine Zusammenstellung, welches "Programm" was macht. "links to" ist eigentlich nur korrekt für *nix, Windows kann das so nicht in dieser einfachen Form: Open in Online-Editor
Program name links to comment (used option) ----------------------------------------------------------------------------------- tex tex the original TeX, only dvi etex pdftex dvi mode eplain pdftex format eplain in dvi mode latex pdftex format latex in dvi mode pdftex pdftex pdf mode or dvi mode (-output-format dvi) pdflatex pdftex format latex in pdf or dvi mode (-output-format dvi) luatex luatex in pdf or dvi mode (-output-format dvi) lualatex luatex format latex in pdf or dvi mode (-output-format dvi) dviluatex luatex dvi mode dvilualatex luatex format latex in dvi mode xetex xetex in pdf or xdv mode (-no-pdf) xelatex xetex format latex in pdf or xdv mode (-no-pdf) texexec pdftex/xetex cont-en format in pdf or dvi mode (--dvi) context luatex cont-en format in pdf mode xmltex pdftex xml parser with dvi output pdfxmltex pdftex xml parser in pdf or dvi mode (-output-format dvi) jadetex pdftex Jade/OpenJade in dvi mode pdfjadetex pdftex Jade/OpenJade in pdf or dvi mode (-output-format dvi) mtex pdftex special format for polish in dvi mode pdfmtex pdftex special format for polish in pdf or dvi mode (-output-format dvi) utf8mex pdftex special format for polish in dvi mode cslatex pdftex special format for czech/slovak in dvi mode pdfcslatex pdftex special format for czech/slovak in pdf or dvi mode (-output-format dvi) csplain pdftex special plain format for czech/slovak in dvi mode pdfcsplain pdftex special plain format for czech/slovak in pdf or dvi mode (-output-format dvi) aleph aleph TeX with unicode for multiligual in dvi mode lamed aleph aleph with format latex in dvi mode amstex pdftex special format in pdf or dvi mode (-output-format dvi) texsis pdftex special format for physic papers in pdf or dvi mode (-output-format dvi) beantwortet 30 Sep '15, 12:16 Herbert Ob Link oder Kopie ist egal. Man kann auch unter Unix eine Kopie von
(30 Sep '15, 12:25)
saputello
Nein, das ist für das Verständnis nicht egal! Durch die Links wird es meiner Meinung nach viel klarer, was es heißt, wenn man sagt: "LaTeX := TeX + Format LaTeX"
(30 Sep '15, 12:50)
Herbert
Es ist für die Funktion egal. Wie gesagt: Man kann auch unter *nix mit Kopien oder Hardlinks statt Softlinks arbeiten. Softlinks sind da kein Muss.
(30 Sep '15, 13:48)
saputello
Natürlich ist es egal! Sonst hätte ich ja unter Windows andere Ergebnisse. Es ist aber nicht egal, wenn ich jemandem erklären will, was man sich so unter TeX, LaTeX, ConTeXt, ... vorzustellen hat. Und nur darum geht es mir!
(30 Sep '15, 13:54)
Herbert
Aber wichtig ist doch, welche Engine es ist und nicht, ob die Engine kopiert und umbenannt, hart verlinkt (und umbenannt) oder soft verlinkt (und umbenannt) wird. Wichtig ist, dass der Dateiname entscheidend dafür ist, welches Format automatisch geladen wird, während das eigentlich Programm immer das gleiche ist.
(30 Sep '15, 15:56)
saputello
ich hoffe ich habe keine Lawine losgetreten ... Danke für all die interessanten Antworten @Herbert @saputello @Johannes
(30 Sep '15, 16:21)
PeterKoller
@PeterKoller: Keine Sorge. Wir können ggf. auch ertragen, wenn wir mal nicht einer Meinung sind. Letztlich ist das eine didaktische Frage, bei der es auch auf die konkreten Umstände ankommt. Unterschiedliche Ansätze vertragen oder benötigen ggf. auch unterschiedliche Sichtweisen oder umgekehrt. ;-)
(30 Sep '15, 16:48)
saputello
@saputello: Genau das will ja sagen: Der Linux-Nutzer kann sofort sehen, welche Engine genutzt wird (wenn er ins Dateiverzeichnis sieht), der Windows-Nutzer nicht unbedingt.
(30 Sep '15, 17:12)
Herbert
Ergebnis 5 von 9
show 4 more comments
|
Das ist schwer zu beantworten, wie genau willst du es beschrieben haben? Im Grunde gibt es mehrere Stufen und jede kann sehr ausführlich besprochen/beschrieben werden. Du hast als erstes die tex-Dateien die dein Dokument beschreiben beim ersten Durchlauf werden die Verweise (label, section ref footnode etc.) aus dem Dokument in die aux-Datei(en) geschrieben BibTex liest die aux-Datei und erstellt die bib-Datei(en) die Referenzen werden dann in die bbl-Datei geschrieben. Im Zweiten Durchlauf werden die aux und text-Dateien wieder gelesen und zusammen geführt (wenn man es so nennen möchte) um die Querverweise zu verbinden und die Zieldatei zu schreiben. Das ist aber jetzt nur eine sehr grobe Beschreibung jeden einzelnen Schritt bzw. die Erstellung der Dateien kann man ausführlicher beschreiben. beantwortet 29 Sep '15, 14:30 loro ...klingt recht umfangreich. Ich dachte dafür gibt es irgendwo eine anschauliche Grafik die das auch optisch beschreibt. Am liebsten wäre mir eine genaue Beschreibung da es für mich sonst zu abstrakt wird. @loro
(29 Sep '15, 15:15)
PeterKoller
|