Titel |
4 |
Inhaltsverzeichnis | 6 |
Vorwort | 8 |
1. Einleitung | 10 |
1.1 Das aktuelle Programm LuaTEX | 11 |
1.2 Lua-Code in TEX | 14 |
1.2.1 \directlua | 15 |
1.2.2 \latelua | 18 |
1.2.3 \luaescapestring | 21 |
1.2.4 Expansion | 22 |
1.2.5 Tipps und Tricks | 24 |
1.3 TEX-Code in Lua | 27 |
1.3.1 tex.print | 28 |
1.3.2 tex.sprint | 28 |
1.3.3 tex.tprint | 28 |
1.4 Anwendungen | 29 |
1.4.1 Tabellen | 29 |
1.4.2 Eingabepuffer zum Zwischenspeichern | 31 |
1.4.3 Grafische Elemente | 32 |
2. Schriften | 34 |
2.1 Schriftkodierungen | 34 |
2.2 Schriften laden | 36 |
2.2.1 Fontloader | 37 |
2.2.2 LuaTEX | 45 |
2.2.3 LuaLATEX | 48 |
2.2.4 Virtuelle Fonts | 49 |
2.3 Schriften mit fontspec benutzen | 49 |
3. LuaTEX – Interna | 50 |
3.1 Versionsinformationen | 50 |
3.2 Unicodeunterstützung | 51 |
3.3 LuaTEX-spezifische Primitive (Makros) | 52 |
3.4 Erweiterte Tabellen | 57 |
3.5 Attribut-Register | 58 |
3.6 Catcode-Tabellen | 58 |
3.6.1 \catcode | 59 |
3.6.2 \initcatcodetable | 59 |
3.6.3 \savecatcodetable | 59 |
3.6.4 \catcodetable | 60 |
3.7 Knotentypen | 60 |
3.8 Ausgeben der Knotenliste | 62 |
3.9 Aufbau der Knotentypen | 65 |
3.9.1 Textknoten | 65 |
3.10 Manipulation der Knotenliste | 66 |
3.10.1 Knotenwerte verändern | 66 |
3.10.2 Knoten löschen | 67 |
3.10.3 Knoten einfügen | 67 |
3.11 Lua-Funktionen für verkettete Listen | 68 |
4. Callbacks | 76 |
4.1 Basisfunktionen | 77 |
4.2 Paket luatexbase | 79 |
4.3 Liste der Callbacks | 82 |
4.3.1 File discovery callbacks | 82 |
4.3.2 File reading callbacks | 84 |
4.3.3 Data processing callbacks | 86 |
4.3.4 Node list processing callbacks | 87 |
4.3.5 Information reporting callbacks | 91 |
4.3.6 PDF-related callbacks | 92 |
4.3.7 Font-related callbacks | 93 |
4.4 Anwendungen | 93 |
4.4.1 Fonts | 93 |
4.4.2 Zeilenmanipulation | 94 |
4.4.3 Absatzumbruch | 95 |
4.4.4 Zeichenmanipulation und »Bounding Box« | 101 |
4.4.5 Beseitigung von »Leerzeichen« | 105 |
4.4.6 Beseitigung aller Zwischenräume | 105 |
4.4.7 Trennungen beeinflussen | 106 |
5. Mathematik | 108 |
5.1 Mathematikstil | 108 |
5.2 Mathematische Zeichen im Unicode | 109 |
6. Pakete | 114 |
6.1 Das Paket luatex-hyphen | 114 |
6.2 Das Paket interpreter | 116 |
6.3 Das Paket luaxml | 118 |
6.4 Das Paket lua-visual-debug | 119 |
6.5 Das Paket chickenize | 120 |
6.6 Das Paket luabibentry | 123 |
6.7 Das Paket luacode | 124 |
6.8 Das Paket luainputenc | 127 |
6.9 Das Paket spelling | 128 |
6.10 Das Paket lua-check-hyphen | 128 |
6.11 Das Paket fontspec | 129 |
6.11.1 Paketoptionen | 130 |
6.11.2 Fontmakros | 131 |
6.11.3 Schriftauswahl durch Schriftnamen | 132 |
6.11.4 Schriftauswahl durch Dateinamen | 133 |
6.11.5 Schriftfamilien | 135 |
6.11.6 Mathematikschriften | 136 |
6.11.7 Schriftoptionen | 137 |
6.11.8 TEXnisches | 139 |
6.12 Das Paket unicode-math | 140 |
6.12.1 Eingeschränkte Definitionsbereiche | 141 |
6.12.2 Verschiedene Versionen vorhalten | 143 |
6.12.3 Exponenten und Indizes | 144 |
6.12.4 Mathematikstile | 144 |
6.12.5 Fettschrift – Bold | 144 |
6.12.6 Sans-Serif-Schrift – Sans | 145 |
6.12.7 Sonderzeichen | 146 |
6.12.8 Übersicht über die verschiedenen Makros | 152 |
6.13 Das Paket luatexja | 152 |
7. METAPOST | 154 |
7.1 METAPOST in Lua | 154 |
7.2 Die mplib Bibliothek | 155 |
8. Kurzeinführung in Lua | 158 |
8.1 Die Sprache | 158 |
8.1.1 Syntax | 158 |
8.1.2 Schlüsselwörter | 159 |
8.1.3 Symbole | 160 |
8.1.4 Zeichenketten | 160 |
8.1.5 Zahlenliterale | 161 |
8.1.6 Zuweisungen | 161 |
8.1.7 Kontrollstrukturen | 162 |
8.1.8 Operatoren | 163 |
8.1.9 Tabellen | 164 |
8.1.10 Funktionen | 164 |
8.2 Bibliotheken | 165 |
9. Beispiele | 166 |
9.1 Fonts | 166 |
9.1.1 Ein Versal-ß | 166 |
9.1.2 Unicodeeingabe |
166 |
9.1.3 Unterschiedliches Kerning | 167 |
9.1.4 Verschiedene Sans-Serif-Schriften | 167 |
9.1.5 Ligaturen abschalten | 167 |
9.1.6 Schreibrichtungen | 167 |
9.1.7 Zeichenmanipulationen | 168 |
9.2 API | 169 |
9.3 Verschiedenes | 173 |
9.3.1 Ausgabeformatierung | 173 |
9.3.2 Numerische Berechnungen | 173 |
9.3.3 Externe Textquellen | 174 |
9.3.4 TEX-System bestimmen | 175 |
9.3.5 Dateipfad bestimmen | 175 |
Anhang | 176 |
A.1 LuaTEX-Referenz | 176 |
A.1.1 Allgemein | 176 |
A.1.2 Attribute | 176 |
A.1.3 Catcode-Tabellen | 177 |
A.1.4 Dateinamen | 177 |
A.1.5 Grafiken und Formulare | 177 |
A.1.6 Standardmäßig geladene Lua-Module | 177 |
A.1.7 Erweiterungen für Strings (Zeichenketten) | 177 |
A.1.8 Operating system extensions | 178 |
A.1.9 Lua file system extensions | 178 |
A.1.10 Callback table | 178 |
A.1.11 Epdf table | 181 |
A.1.12 Font table | 186 |
A.1.13 Font loader table | 187 |
A.1.14 Image table | 187 |
A.1.15 Kpathsea table | 188 |
A.1.16 Language table | 189 |
A.1.17 Lua table | 189 |
A.1.18 Metapost table | 190 |
A.1.19 Node table | 190 |
A.1.20 Pdf table | 192 |
A.1.21 Status table | 192 |
A.1.22 Typesetting table | 194 |
A.1.23 Texconfig table | 197 |
A.1.24 IO table | 198 |
A.1.25 Token table | 198 |
A.2 Von pdfLATEXnach LuaLATEX | 199 |
Literaturverzeichnis | 202 |
Index der Befehle und Begriffe | 206 |
Personen | 225 |