5
1

Ich frage mich und euch, ob es sinnvoll ist, zunächst die "TeX-Basics" zu erlernen, um später auf die weiter entwickelte LaTeX-Sprache umzusteigen. Es gibt dazu drei Ziele/Probleme:

  1. Das Erhalten des großen Werks von D.E. Knuth und dessen Erhalt als eines "Mindeststandards".
  2. Das Überwinden von fehlerhaften, umständlichen und veraltenden Techniken
  3. Die fortschreitenden "Metaformulierungen" von TeX-Basics, die manchmal mehr Einarbeitung erfordern, als sie die Basics erfordern würden.

Ich stelle die Frage deshalb, weil ich in vielen andern Umgebungen, Makro- und Programmiersprachen die Erfahrung gemacht habe, daß vieles auf sehr alten und bislang unübertroffenen Grundlagen beruht, die lediglich aus der "Maschinensprache" progressiv in eine "Menschensprache" übersetzt wurden, aber ab einem gewissen Level dem Anwender mehr Lernaufwand abfordern, als es die Grundlagen tun. Oft gerät man auch an den Punkt, daß man die entwickelten Sprachen nicht mehr versteht, weil man die Grundlagen nicht kennt.

Ich habe den Eindruck, daß die hervorragenden Entwicklungen die Grundlagen zerstören, es wäre schade um diese. Aus meiner Sicht gibt es zuwenig Möglichkeiten, die komplizierten Basics zu erlernen, vielleicht kann man hier mehr Informationen dazu erhalten und einbringen.

(Diese Frage bezieht sich auch auf: TeX-Code in LaTeX – Ist „Down-Compatibility“ noch möglich?)

gefragt 29 Aug '13, 01:19

ctansearch's gravatar image

ctansearch
(ausgesetzt)
Akzeptiert-Rate: 18%

bearbeitet 30 Aug '13, 12:02

saputello's gravatar image

saputello
11.1k154365


Ich bin der Meinung, dass die Mehrheit der LaTeX-Anwender oder der ConTeXt-Anwender, also ein Dokument-Autor, die TeX-Ebene nicht verstanden haben muss. Diese Formate und die dafür verfügbaren Erweiterungen sind so mächtig, dass ein Anwender nur noch selten wirklich auf die TeX-Ebene zurückgreifen muss. Wenn es denn erforderlich ist, kann er oder sie den Rat eines Experten oder einer Expertin einholen. Allein damit ist es nicht sinnvoll mit TeX auf unterster Ebene einzusteigen.

Ich will das gerne etwas weiter ausführen:

Natürlich ist es für das Verständnis von LaTeX (leider) manchmal nützlich, wenn man ein paar Grundlagen von TeX verstanden hat. Dazu zähle ich die Tatsache, dass TeX eine Makrosprache ist. Ein tiefes Verständnis von TeX ist allerdings nicht einfach zu vermitteln und macht aus dem Hügel der Lernkurve einen K2. Wie schwer dieses Verständnis ist, hast Du doch selbst bei Deinen Fragen nach der Reservierung von Registern gemerkt. Es hat mehrere Themen benötigt, um Dir zu vermitteln, dass es bei Zugriff über die Registernummern keine zuverlässige Methode gibt, Register exklusiv zu reservieren, ja dass die ganze Anforderung von Registern auf TeX-Primitiven-Ebene gar nicht möglich ist, sondern erst durch die Format-Ebene (egal ob plainTeX, LaTeX oder ConTeXt) realisiert wird und deren Einhaltung eine reine Konvention ist.

Mit dieser überhöhten Lernkurve wären auch die moderneren TeX-Formate wie ConTeXt oder das noch nicht als Format verfügbare LaTeX3 nicht vermittelbar. Es wäre also sogar unzweckmäßig, das zu verlangen.

Bei ConTeXt wird übrigens zur Eingabe neben einer Eingabe in TeX-Syntax eine XML-Eingabe ermöglicht. Damit existiert eine sinnvolle Abstrahierung, bei der ein Anwender überhaupt kein TeX mehr können muss. Bei LaTeX3 wird ebenfalls ein Schichtenmodell eingeführt, das von TeX abstrahiert. Man darf gespannt sein, ob das schlussendlich bei LaTeX3 als Format bis in die Anwenderebene fortgesetzt wird. In dem Fall wäre theoretisch durch Austausch der Primitiven-Ebene sogar ein Austausch von TeX durch eine andere Maschine mit anderem Befehlssatz möglich. In diesem Fall wird dann also nichts mehr gewonnen, wenn man zuerst TeX gelernt hat.

Für LaTeX-Entwickler, also Form-Ersteller, sieht es ein wenig anders aus. Wer tatsächlich LaTeX-Pakete erstellt oder auch nur komplexe Vorlagen für die Verwendung von LaTeX, sollte ein etwas tieferes Verständnis von LaTeX haben. Dazu ist ein zunehmend vertieftes Verständnis von TeX von beachtlichem Vorteil. Das heißt aber nicht, dass ein LaTeX-Entwickler erst einmal TeX vollständig verstanden haben muss. Das heißt lediglich, dass er einmal grob mit den wichtigsten Grundlagen wie Expansion, Unterschied zwischen Makros und Registern, Zeichenklassen und einigen wenigen mehr befasst haben sollte, um dann von Fall zu Fall Einzelfragen vertiefen zu können. Gute Literatur dazu ist leider spärlich. Empfehle kann ich jedoch »TeX by Topic« und natürlich »The TeXbook«. Letzteres ist jedoch eher für Software-Entwickler als für Software-Anwender geschrieben.

Das bedeutet aber nicht, dass jemand, der als Ziel hat, irgendwann einmal selbst LaTeX-Pakete oder ConTeXt-Pakete zu entwickeln, gleich mit der schweren Kost des TeXbooks beginnen muss. Er kann unbesorgt zunächst mit LaTeX beginnen; sich dann umsehen, was es bereits an Paketen gibt; dann Schritt für Schritt durch Studium von Quellcode von Paketen unter Zuhilfenahme der bereits erwähnten Literatur zu einem tieferen Verständnis gelangen.

Wie hart der Weg ist, mit TeX und plainTeX statt mit LaTeX oder ConTeXt zu beginnen, habe ich übrigens selbst erfahren. Vor ca. 25 Jahren, als ich begonnen habe, hatte ich keine andere Wahl, als plainTeX. LaTeX hatte ich damals nicht. Ich habe mich dann ein Jahr lang mit plainTeX herumgequält. Es hat Monate gedauert, bis ich halbwegs das an Befehlen zusammen hatte, was ich für einfache wissenschaftliche Arbeiten benötigte. Selbst nach dem einen Jahr gab es aber praktisch kein neues Dokument, bei dem ich nicht wieder mit der Programmierung von Makros einsteigen musste. Dann stieß ich auf die erste Version von LaTeX und es war eine Offenbarung, was bereits mit den Standardstyles (so hießen damals Klassen und Pakete) möglich war. Heute, mit LaTeX2e beginne ich kaum noch ein Dokument damit, dass ich grundlegende Makros programmiere. Ich definiere mir lediglich noch semantische Markup-Befehle. Den Rest erledige ich zunächst über Auswahl von Klasse, einigen Paketen und davon bereitgestellten Einstellungen. Das verlagert den Zeitaufwand, den ich für ein Dokument habe, erheblich von der Form zum Inhalt. So soll es sein.

Übrigens würde ich auch nach 25 Jahren nicht behaupten, dass ich TeX komplett verstanden hätte. Auch ich muss immer wieder zum TeXbook greifen, wenn ich spezielle Dinge im Bereich der Entwicklung von Form erreichen will. Aber auch ein komplettes Verständnis von TeX würde noch nicht bedeuten, dass man jede Form einfach mal so eben aus dem Ärmel schüttelt. Es ist eine Illusion zu glauben, dass jemand, der Maschinencode auf Hexcode- oder Binärebene beherrscht, damit ohne Anwendung von Assemblern und höheren Programmiersprachen und doch effizient eine Textverarbeitung schreiben kann. Bei TeX ist es nicht anders. Darüber hinaus: Vor der Implementierung steht ein Design. Vor dem Design steht eine Spezifikation. Vor der Spezifikation steht eine Idee. Parallel zu all diesen Schritten steht die Dokumentation. Diese Dinge sind tatsächlich aufwändiger als die Implementierung. Verzichtet man auf einen dieser Schritte, so hat man am Ende vielleicht ein irgendwie funktionierendes Ergebnis. Tragfähig ist es aber nicht.

Was nun die Würdigung von Knuth' Arbeit anbelangt: Ich glaube nicht, dass es respektlos ist, sich nicht mit der untersten TeX-Ebene zu beschäftigen. Ich betrachte vielmehr die Formate und dazu verfügbaren Erweiterungen und deren Verwendung als logische Fortführung seiner Arbeit. Gleichzeitig ist es ein Weg, seiner Arbeit Bestand zu verleihen. TeX als Sprache für jederman hat hingegen ausgedient. Ginge es nur darum, diese Sprache als Würdigung der Arbeit eines Menschen zu erhalten, dann wäre das eine Aufgabe für ein Computermuseum. Das ist nicht die Aufgabe eines Anwenders. Ich arbeite ja auch nicht mehr mit einer Zuse.

Davon abgesehen: Knuth Werk besteht nicht nur in TeX. TeX war vielmehr ein Vehikel, um sein Werk zu publizieren.

Ich verwende übrigens ein anderes Werk von Knuth, das zu seiner Zeit genial war und in Teilaspekten noch immer ist, praktisch überhaupt nicht mehr: Metafont. Allerdings verwende ich grundlegende Ideen und Ergebnisse, die daraus entstanden sind, in anderer Form noch immer. Sollte ich nun aus Respekt vor dem Werk mein Metafont-Wissen weiter pflegen und sogar weiter verbreiten? Ich denke, es ist in Knuth' Sinn, wenn ich meine Zeit stattdessen auf innovative Ideen und der Bewahrung von Grundlagenwissen konzentriere. Denn darin bestand auch sein Hauptwerk und natürlich werde ich ihm darin kaum je das Wasser reichen können.

Damit zerstören die Entwicklungen auch nicht die Grundlagen, sondern im Gegenteil: Sie bewahren sie oder sie überholen sie und bewahren damit den Grundgedanken hinter den Grundlagen.

Permanenter link

beantwortet 29 Aug '13, 08:46

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 30 Aug '13, 11:36

1

@saputello: Ein sehr schöner und interessanter Text, der eine Allgemeingültigkeit in sich trägt, der ich mich anschließen kann.

(30 Aug '13, 20:56) Frink
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×37
×22

gestellte Frage: 29 Aug '13, 01:19

Frage wurde gesehen: 10,990 Mal

zuletzt geändert: 30 Aug '13, 20:56