Latex3

Gummi3

Das LaTeX wurde ursprünglich von Leslie Lamport geschrieben und von einer Gruppe von Freiwilligen auf die heute aktuelle Website LaTeX2? weiterentwickelt. Diesen Monat werden wir uns noch einmal mit den Möglichkeiten von LaTeX3 beschäftigen und einen Generator für Blind- und Lorem-Ipsum-Texte programmieren. Es ist geplant, dass 153 LTEX3 LATEX3 in Zukunft der Nachfolger von LATEX 2- wird. Seit 1993 hat das LaTeX3-Projektteam die nun "aktuelle" Version LaTeX 2?

entwickelt und einen neuen Standard geschaffen. Am 1. Dezember 1991 veröffentlichten Frank Mittelbach und andere das LaTeX3-Projekt.

In LaTeX3

Dieser Abschnitt enthält Packages mit Arbeiten für das LaTeX-Verbesserungsprojekt. Wrapper-Paket für experimentelles LaTeX3. Vorlage für LaTeX-Thesis an der Fudan University. Dokumentation in der Quelle für InTeX 3 entfernen. Experimentelle LaTeX3-Konzepte. Konventionen für die LaTeX3-Programmierung. Optionsverarbeitung mit LaTeX3-Schlüsseln. Hochwertige LaTeX3-Konzepte. Möglichkeiten der regulären Ausdrücke für das Programm Latext.

Erste Veröffentlichungen des LaTeX-Projekts. Schnittstelle mit der LaTeX3 Gleitkomma-LaTeX3-Einheit. Fraktionen auf Split-Level unter LaTeX2?*. Eine Schnittstelle auf hoher Ebene zur Deklaration von Aufträgen für ein Dokument.

Die neuen Verfahren für die kommende Dokumentengenerationen

Jeder, der als LaTeX-Anwender erscheint, liest oft Satzstücke wie "Das gibt es noch? Dafür gibt es viele Ursachen, aber es ist bedauerlich, dass viele noch nie erlebt haben, wie das codebasierte Textsatz-System LeTeX die Effektivität und QualitÃ?t der Dokumenterstellung erhöhen kann. Hinzu kommt, dass die derzeit an den meisten Universitäten verwendeten Latext-Dokumente noch genauso gut ausfallen wie vor über 20 Jahren.

Mit der neuen Version bietet Ihnen das Programm nun noch mehr flexible Anzeigemöglichkeiten, die einfacheren Möglichkeiten zur Generierung von Grafiken (z.B. TikZ/pgf) und die UnterstÃ??tzung von OTF-Schriften in XeLaTeX und LuaLateX. Neben diesen immer häufiger vorkommenden Ergänzungen ermöglichen die Neuentwicklungen auch den Einsatz von Programmierungsmechanismen in LTeX. Abgesehen von der Einbindung der Scripting-Sprache Luna in LuaTeX bietet das LaTeX3-Projektteam eine weitere Option.

Die Verbreitung von digitalen Dokumenten in SGML und PDF mit Hypertextelementen hat viele der Voraussetzungen für die Entwicklung von LaTeX3 geschaffen. Somit kann es auch verwendet werden, um andere Klartextformate als normalen TeX-Code in expl3 zu lesen und dementsprechend zu analysieren. Der genaue Hintergrund der Entwicklung von expl3 ist auch in der Beschreibung und auf der Seite des Projekts im Detail zu ergründen.

In diesem Beitrag werden die zuvor nutzbaren LaTeX3-Funktionen in L3in2e (LaTeX3 in LaTeX2e) vorgestellt und die Prozedur mit der Nutzung von Lua in LucaTeX verglichen. Der LaTeX3 ist noch in der Entwicklungsphase, aber seit langem als Package für LaTeX2e erhältlich. Die Hauptunterschiede zu LauLaTeX bestehen darin, dass LaTeX3 auf unterschiedlichen Niveaus beginnt, die an die Funktionsweise von LaTeX angepaßt sind.

Der Level, der am meisten von der LaTeX2e-Verwendung abhängt, ist die Programmierungsebene, die das LaTeX2e Paket expl3 durch den nachfolgenden Kommando liefert: Zur Entkopplung der Programmierungsebene verwendet expl3 eine eigene Satzsyntax, die es dem Benutzer ermöglicht, in die Erweiterung von Macros und deren Argumenten einzugreifen. Der LaTeX-Entwickler von LaTeX, Leserinnen und Leser und Leserinnen, hat die Tatsache zusammengefasst, dass die Implementierung der neuen Schreibweise nicht ganz so leicht ist: "Ich nehme an, dies ist einer von mehreren Dutzend Fehlern, die im Laufe der Jahre auftauchen würden, wenn jemand dumm genug wäre, zu versuchen, '_' in Befehlsnamen zuzulassen.

\ExpressSyntaxOn: Enable synthesis, \int_new:N \g_MyModule_item_int: Create integer variabel, \int_gset:Nn. Nn fü Nn fü g:_MyModule_item_int { 42 }: variabel, \ExplSyntaxOff: Deaktiviert die Synchronisation wieder. Das Wechseln führt auch dazu, dass das Programm Leerstellen innerhalb dieser Schreibweise ausblendet. Abgesehen von der Unwissenheit über Leerstellen verändert die Funktion Erkennen von Leerstellen die Signifikanz des Unterstreichens, indem sie es ermöglicht, dass er in Makro-Namen vorkommt.

In LaTeX3 kann diese Schreibweise verwendet werden, um ein Macro mit verschiedenen Ausbaustufen für seine Parameter zu definieren. Dadurch wird eine durchgängigere Bedienung der Funktionalitäten möglich. exp13 erleichtert die Manipulation der Erweiterung. Mit LaTeX3 ist nicht nur eine gezielte Erweiterung, sondern auch ein tieferes Verstehen des dahinter liegenden TeX-Mechanismus möglich.

Zuerst findet die Erklärung einiger Macros statt: Es handelt sich nun bei jedem Macro um eine Form von Box, deren Inhalte für Lotex bis zur Erweiterung unterdrückt werden. Weil dieses Macro nur Texte beinhaltet, ist keine weitere Erweiterung möglich. Ob in TeX oder LaTeX3, Sie sollten von der Befehlszeile aus kompilieren, um die Debugging-Ausgabe zu verwenden:

Die Ausgabe des Inhalts der folgenden Gruppierung erfolgt ohne Erweiterung um den Paramter n. Der Prozess kann dann mit Eingabetaste fortgesetzt und mit X abgebrochen werden. Weil \tl_show:n nur als nicht erweiternde Version vorliegt, müssen zunächst Versionen für die Erweiterung mit den Paramter o, f und x angelegt werden. Bis auf die Behandlung des Parameters verhält sich nun jede Variation gleich.

\Durch das Anlegen einer Variante werden zunächst Variationen des Macros \tl_show:n erstellt, so dass auch die anderen existieren. Bis auf die Behandlung des Parameters benehmen sich nun alle vier Variationen ident. Dies ist bis auf das eingebaute Space-Zeichen zur besseren Ablesbarkeit mit der Makrodefinition gleichzusetzen. Mit einer einfachen Erweiterung ersetzt des Compilers das Macro durch den Deklarationstext.

Dies bedeutet eine doppelte Erweiterung. Der limitierende Punkt ist jedoch, dass das Macro nur einmal erweiterbar ist, es beinhaltet keinen weiteren geschlossenen Kasten, sondern ein exponiertes Textelement, das sich nicht weiter ausdehnt. Damit wird eine komplette Erweiterung abgebrochen, wenn eines der Macros keine weitere Ausbaustufe hat. Das Verfahren ist in diesem Falle gleichbedeutend mit einer doppelten Ausdehnung.

\tl_show:x dagegen betreibt eine konsequente Erweiterung. Daraus folgt folgendes: Da für die Output als letzten Arbeitsschritt sowieso eine sorgfältige Erweiterung erforderlich ist, erscheint die Steuerung dieser zunächst überflüssig. Zusätzlich zu den Spezifikations-Parametern für die Erweiterung von Macros gibt es vier weitere Variationen, die spezifischere Möglichkeiten für die Verwendung von Variabeln bieten.

Im zweiten Teil des Latextutorials des xxx wurden diese mit Hilfe von exemplarischen Ansätzen erklärt. Eine weitere Funktion in expl3 sind die größeren Makro-Namen. Dies erscheint zunächst ineffektiv, macht den Quelltext aber viel lesefreundlicher und macht es möglich, die Vergabe von Macros durch eine festgelegte Namenstruktur zu erleichtern. Damit wird die neue Schreibweise nach dem ersten Training wesentlich einfacher und bietet eine einheitliche Oberfläche für die bisher verwendete Kombination von TeX- und LaTeX-Befehlen.

Makronamen und Variablen sollten immer einen Namensbestandteil haben, der dem jeweiligen Baustein zuordnet. Der Baustein ist gewissermaßen die Herkunftsbezeichnung und vereinfacht das Finden der Dokumentationen des Macros. Für primitive Macros ist es immer der Name des Programms. Zum Beispiel starten alle von LuaTeX vorgestellten Macros mit \luatex_. Daher wird mit dem Macro \int_set:Nn aus dem Ganzzahlmodul eine ganze Zahl gesetzt, während \str_set:Nn für Zeichenketten verwendet wird.

Die Benennungsstruktur und die Definition der Argumentspezifikation sind in Teil 2 des Tutorials iX zu diesem Thema näher beschrieben. Für die Speicherung von Daten stellt expl3 mehrere Dateitypen vor, die für die Entwicklung zunächst seltsam anmuten mögen. Das Dollarsymbol innerhalb einer Zeichenkette löst also keinen Mathematikmodus aus, sondern wird lediglich ausgedruckt. In einer Token-Liste bleibt das Charakter jedoch seine ursprüngliche Aussage.

Die Konstruktionen sind bereits in purem TeX vorhanden, haben aber eine einheitliche Ausgestaltung. In LaTeX2e haben Zähler z. B. immer nur einen einzigen Dateinamen, aber die Länge wird wie ein Macro erstellt: In expl3 ergibt sich folgendes: Allerdings gibt es zusätzliche Funktionalitäten, die auf den jeweiligen Datensatz abgestimmt sind, so dass es z.B. im Box-Modul kein Pendant zu \int_add:Nn gibt.

Vor der Online-Suche nach den Anweisungen sollten Entwickler überprüfen, welche Versionen sie mitbringen. expl3 bietet dem Dateityp Stream zwei Varianten: ior zum Lesen von Emails und iow zum Beschreiben. Dadurch ist es möglich, neben der eigentlichen Ausgabedatei im PDF-Format auch andere Dokumente wie XMP-Metadaten zu verfassen, die das pdfx-Paket z.B. für die Erstellung von PDF/A-Dateien oder für die Ausgabe im XML-Format benötigt. In diesem Fall ist es möglich, die Daten im Format XML zu speichern.

Als Beispiel sei das Package Iwarp genannt, das über dieses Verfahren die Generierung von HTML-Ausgaben für Textdateien anlegt. Es kann auch als Werkzeug zum Erzeugen von epub-fähigen Dokumenten verwendet werden. Zusätzlich zur weiteren Dateiausgabe können die Input-Streams auch zum Lesen von externen Informationen verwendet werden. expl3 verfügt über einen einfachen Mechanismus zum zeilenweisen Lesen und Bearbeiten von Dokumenten.

Eine exemplarische Darstellung finden Sie in den Code-Beispielen für den dritten Teil des Lotex-Tutorials von if if und auf der Webseite des Autors. Für die automatische Erstellung flexiblerer Unterlagen sind jedoch Verfahren zur Gleitkommazahlenberechnung notwendig. expl3 bietet in seinem Modul 1 fp die Möglich-keit, Zahlenberechnungen bis zur doppelten Messgenauigkeit durchzuziehen. Mit diesen Verfahren können z.B. Längendefinitionen umgerechnet und die Wertangaben der hinterlegten Größen für Kalkulationen verwendet werden.

Obwohl die Erstellung von pdf- und TikZ-Berechnungen durch Till Tantau auch innerhalb dieser Arbeitsumgebung durchgeführt werden kann, ist die von expl4 bereitgestellte Satzstellung viel verständlicher und kann auch ohne pdf verwendet werden. Darüber hinaus kann die Aufbereitung besser an die Anforderungen von LeTeX angepasst werden. Beim Arbeiten mit expl3 taucht immer die Problematik auf, warum nicht entweder eine Scriptingsprache in TeX einbetten, wie es bei Lua für LuaTeX der Fall ist, oder TeX-Code mit einer beliebigen Programmiersprache generieren.

Die Mischung unterschiedlicher Sprachversionen ist jedoch mit Gefahren verbunden, da TeX eine andere Schreibweise hat als gewöhnliche Programmversionen. Durch die Erstellung von Scriptdateien und die Verkürzung von Lua-Aufrufen in LuaTeX kann das Phänomen weitgehend gelöst werden, ist aber nach wie vor ein Gefahrenfaktor. Zudem unterscheidet sich Luas Ansatz grundlegend von dem der LaTeX3-Programmierung.

Damit sind beide Vorgehensweisen gerechtfertigt und erlauben sogar Kombinationsmöglichkeiten, die zu einem attraktiven Wechselspiel führen. Allerdings ist die Nutzung von Lua durch den Kompilierer eingeschränkt, und da TeX bereits Turing complete ist, erscheint es nahe liegend, Steuerstrukturen unmittelbar in TeX zu verwenden. Das LaTeX3 ist eindeutig auf dem richtigen Weg.

Die Projektmannschaft von LaTeX3 macht ausgezeichnete Fortschritte bei der Aufrechterhaltung eines alten Programms, und es ist noch viel zu tun. Die Projektarbeit erfordert Beachtung, denn man kann mit Hilfe von LeTeX viel mehr tun, als nur schöne Rechenausdrücke zu erstellen. Bei expl3 können Sie neben der unübertroffenen Bildqualität der Knuth-Satzalgorithmen die neuen Verfahren zur Arbeitserleichterung und damit zur Schaffung der nächsten Dokumentengeneration einsetzen, die nicht immer auf die Druckausgabe ausgerichtet ist. xxnischer Berater ist selbständig. xxnischer Berater.

Ihre Spezialität ist die Erstellung von flexiblen Vorlagen und führt Einzelschulungen innerhalb und außerhalb des naturwissenschaftlichen Umfelds durch.

Mehr zum Thema