Einführung in das Textsatzsystem (L A )TEX Vorlesung über (LA)TEX im Sommersemester 2009 univer@tati+ studii heydelbergen@+ Arno Trautmann Heidelberg Vorlesung 12, 3. Juli 2009
Teil XII Typographische Feinheiten Pakete selbst schreiben Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 24 / 49
...1 Was ist Mikrotypographie?...2 Paket microtype...3 Erstellen eigener Pakete und Klassen...4 Was bleibt? Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 25 / 49
normale Typographie Nachtrag Setzen echter Anführungszeichen: statt mit TEX: \glqq \grqq mit LATEX und babel: `" '" (" ist active char in babel und wird auch für andere Zwecke verwendet) mit XƎLATEX: Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 26 / 49
Zweispaltiger Satz Nachtrag Dokumentoption twocolumn setzt zweispaltig Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 27 / 49
Zweispaltiger Satz Nachtrag Dokumentoption twocolumn setzt zweispaltig Umgebungen figure* und table* gehen über beide Spalten Vorsicht mit Reihenfolge bei Verwendung mit und ohne *! Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 27 / 49
Mailinglisten Nachtrag tex-d-l deutschsprachige Mailingliste texhax internationale Liste newsgroups: (d.)c.t.t. (Benötigt Zugang zum Usenet, z. B. über Uni Heidelberg) Umgangsformen beachten! Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 28 / 49
Typographie Makro- und Mikrotypographie Makrotypographie: Anordnung von Text auf einer Seite Textumbruch und Absatzausrichtung Anordnung von Bildern, konsistente Abstände passende Wahl von Schriften (Kerning) Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 29 / 49
Mikrotypographie typographische Feinheiten auf Buchstaben- oder Subbuchstabenniveau : character protrusion font expansion the adjustment of interword spacing additional kerning hyphenatable letterspacing (tracking) possibility to disable all or selected ligatures. (Aus der microtype-dokumentation) Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 30 / 49
Mikrotypographie typographische Feinheiten auf Buchstaben- oder Subbuchstabenniveau : character protrusion font expansion the adjustment of interword spacing additional kerning hyphenatable letterspacing (tracking) possibility to disable all or selected ligatures. (Aus der microtype-dokumentation) Das typolexikon bietet eine ausführlichere Definition Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 30 / 49
typokurz Dokument typokurz.pdf gibt kurze, übersichtliche Anleitung zu typographischen Tips im Internet unter dem Namen zu finden Textauszeichnungen, Striche, Abkürzen etc. Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 31 / 49
microtype Paket microtype kümmert sich um alle mikrotypographischen Effekte benötigt pdftex als Engine für alle Features: aktuelle Engine (pdftex > 1.40) LuaTEX Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 32 / 49
Die minimale Klasse minimal.cls \NeedsTeXFormat{LaTeX2e} \ProvidesClass{minimal}[2001/05/25 Standard LaTeX minimal class] \renewcommand\normalsize{\fontsize{10pt}{12pt}\selectfont} \setlength{\textwidth}{6.5in} \setlength{\textheight}{8in} \pagenumbering{arabic} \pagestyle{empty} % but no page numbers are printed because: % this is actually already in the kernel Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 33 / 49
Eine absolut minimale Klasse \renewcommand\normalsize{\fontsize{10}{12}\selectfont} Definition von \normalsize entscheidend! Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 34 / 49
Klassen Laden normalerweise Klassen nicht from scratch schreiben \LoadClass{scrartcl} lädt scrartcl mit allen Einstellungen der Klasse danach weitere Funktionalität/Einstellung möglich Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 35 / 49
Klassen Laden normalerweise Klassen nicht from scratch schreiben \LoadClass{scrartcl} lädt scrartcl mit allen Einstellungen der Klasse danach weitere Funktionalität/Einstellung möglich Pakete einbinden: \RequirePackage{paket} statt \usepackage{paket} Befehle definieren: \DeclareRobustCommand statt \newcommand restlicher Code wie im normalen LATEX-Dokument nützlich: \AtBeginDocument{}, \AtEndDocument{} Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 35 / 49
literate programming Programmcode sollte mit Dokumentation zusammen geschrieben werden möglichst viele Kommentare zum Code schreiben! Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 36 / 49
literate programming Programmcode sollte mit Dokumentation zusammen geschrieben werden möglichst viele Kommentare zum Code schreiben! viele Kommentare bremsen TEX aus Klasse schreiben: Code+Dokumentation Klasse verwenden: reinen Code dafür: DocStrip Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 36 / 49
DocStrip Programm DocStrip entfert alle Kommentare aus einem TEX-Dokument selbst in TEX implementiert Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 37 / 49
DocStrip \documentclass[english]{ltxdoc} \begin{document} \DocInput{mathphysletter.dtx} \end{document} % Programmcode \protect \char "2026\relax Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 38 / 49
Code Code muss immer in der folgenden Umgebung eingeschlossen sein: % \begin{macrocode} \DeclareRobustCommand\Kuchen{\kuchen@ist@lecker} % \end{macrocode} Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 39 / 49
dtx und ins.dtx-datei enthält Code und Dokumentation.ins-Datei enthält Anweisungen zur Codeerzeugung Kompilieren der.dtx liefer Dokumentation, Kompilieren der.ins Klasse/Paket Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 40 / 49
zukünftige Entwicklung nähere Zukunft: LuaTEX Paketerstellen auf Basis der Skriptsprache lua Standardprogrammieraufgaben wesentlich einfacher als mit TEX Einbinden externer Bibliotheken einfach möglich Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 41 / 49
zukünftige Entwicklung nähere Zukunft: LuaTEX Paketerstellen auf Basis der Skriptsprache lua Standardprogrammieraufgaben wesentlich einfacher als mit TEX Einbinden externer Bibliotheken einfach möglich ferne Zukunft: LATEX3 Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 41 / 49
L A TEX3 geplanter, neuer LATEX-Kernel Sinn: Abstraktion von TEX Vereinfachung oft verwendeter Strukturen zum Programmieren Lernen aus Fehlern/Problemen von LATEX 2ε Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 42 / 49
L A TEX3 Befehlsstruktur Stelle des @ wird vom _ eingenommen alle Befehle bekommen strukturiert vergebene Namen Namenskollisionen ausgeschlossen, da Benennung nach Modulen Angabe von Argumenten, getrennt durch Doppelpunkt Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 43 / 49
L A TEX3 Befehlsstruktur Syntax für Parameter: \access_module_description_type Syntax für Funktionen: \hmodule_description:arg-spec Bsp.: \seq_push:nn siehe texdoc expl3 Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 44 / 49
L A TEX3 Sinn wrapper für alle TEX-Primitiven leichteres Programmieren durch strukturierte Befehle nachvollziehbare Befehlsnamen Überladen von Funktionsnamen Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 45 / 49
Was man mitnehmen sollte wofür ist LATEX gut, wann sollte man es verwenden und warum ist es oft besser als andere Systeme? wie ist der prinzipielle Aufbau eines LATEX-Dokumentes? wo kann es Probleme geben bei unterschiedlichen Systemen? wo findet man Hilfe? was ist typographisch schön und was ist schön? was verbessert die Lesbarkeit? Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 46 / 49
I hope to die before I have to use Microso Word. Donald E. Knuth, 02. 10. 2001 in Tübingen. Arno Trautmann (Heidelberg) Einführung in das Textsatzsystem (LA)TEX Vorlesung 12, 3. Juli 2009 47 / 49