FrühjahrsSommertagung 2022 (DANTE 2022)
Rahmendaten
Tagungsdatum: | 23.–25. Juni 2022 |
Tagungsort: | Magdeburg, OVGU |
Tagungsbericht: | DTK 3/2022 |
Beiträge
Alle Beiträge stehen unter CC BY-SA 4.0 zur Verfügung, sofern nicht auf den Folien selbst anders vermerkt.
Doris Behrendt: „Das CrypTool-Buch – TEX nische Details“
Das CrypTool-Buch (CTB) ist ein Open-Source-Projekt, das Texte verschiedener Autoren zu Themen aus der Kryptografie in einem großen PDF vereinigt und dazu zahlreiche Codebeispiele – hauptsächlich mit SageMath – bereithält.
Außerdem gibt es zu allen behandelten Verfahren Hinweise, wie man sie in den verschiedenen Software-Varianten der CrypTool-Familie (dazu gehören CrypTool 1, CrypTool 2, JCrypTool und CrypToolOnline) ausprobieren kann.
Im Vortrag werden Bernhard Esslinger und ich das CTB vorstellen und zwar sowohl von der inhaltlichen Seite als auch von der TEX nischen.
Das Buch gibt es seit dem Jahr 2000. Es liegt in zwei Sprachen (Englisch und Deutsch) vor, hat mittlerweile über 600 Seiten und das Setzen der Datei dauert – je nach Rechner – zwischen 8 und 30 Minuten. Es enthält einen umfassenden Literaturteil, einen Index, zahlreiche Verzeichnisse, Graphiken, Tabellen, Listings, Fußnoten, sehr viel Mathematiksatz, sprich, wer LATEX mag, kann sich hier so richtig austoben.
Ich selber bin im Jahr 2018 zum CrypTool-Team dazugestoßen und habe seitdem zusammen mit Bernhard Esslinger, der das CrypTool-Projekt leitet, die TEX -Dateien überarbeitet. Die Autoren der damals vorhandenen Kapitel des CTB hatten teilweise wenig LATEX-Kenntnisse gehabt, außerdem hatten sie oft nicht die mittlerweile verfügbaren Pakete wie z.B. BibLATEX verwendet, da es die zur Zeit der Entstehung der Texte noch nicht gab.
Meine Aufgabe war (und ist) es, die TEX -Datei auf einen aktuellen Stand zu bringen und das Layout zu verbessern, außerdem inhaltlich Korrektur zu lesen, die Codebeispiele zu testen, die Links aktuell zu halten und Lösungen für die Zweisprachigkeit zu finden.
Auf der kryptografischen Seite werden wir kurz einen Blick auf die Inhalte des CTB werfen, einige SageMath-Codebeispiele vorführen, CrypTool 2 zeigen und natürlich die Webseite des CrypTool-Projekts, die auch schnelles WebAssembly einsetzt. Auf der TEX nischen Seite werden wir verschiedene Vorher-Nachher-Vergleiche anstellen, über Probleme berichten, auf die wir gestoßen sind und wie wir sie gelöst haben.
Adelheid Bonnetsmüller: „Erstellung von QR-Codes mit oder ohne Logo“
Adelheid Bonnetsmüller: Tutorium „Erste Schritte in MusixTEX “
Notensatz ist etwas, das nur wenige wirklich betrifft und so fristet dieser ein einsames Randgruppendasein. Vermutlich genau deswegen gibt es nur wenige „open source“ Anwendungen, die ein brauchbares Resultat erzeugen. Dabei gibt es auch für den nicht kommerziellen Nutzer durchaus immer wieder Anlässe. Der Anlass für mich, mich näher mit MusixTEX zu beschäftigen, waren verschiedene Anfragen: in den Gottesdienstfaltblätter für Hochzeiten oder Taufen, die ich setzen durfte, wollte ich die enthaltenen Lieder sauber setzen und nicht – wie leider so oft – einfach als (schlechte) Kopie einfügen. Auch für die Jugendseite der Verbandszeitung des Bayerischen Trachtenverbandes waren bereits einfach baierische Kinderlieder gefragt: gerade hier ist Professionalität wichtig.
Notensatz in MusixTEX ist zugegebenermaßen aufwendig, man fühlt sich auch als erfahrener LATEX-Nutzer zunächst wieder wie ein Anfänger, der fast jedes Kommando nachschauen muss. Dieser steinige Weg rentiert sich aber sehr – wenn man die Logik verstanden hat und die Kommandos für die verschiedenen Noten, Pausen und musikalischen Anweisungen intus hat, kann man in einer genialen Art auch komplexe Stücke wunderbar stimmig und vor allem professionell setzen.
Dieses Tutorium richtet sich an alle Musikbegeisterten, aber auch an die, die einfach mal sehen wollen, was man mit LATEX alles machen kann. Ob Anfänger oder Entwickler, spielt keine Rolle – auch wenn ich die Fragen der letzteren sicher nicht beantworten können werde.
Adelheid Bonnetsmüller: „Having Fun With LATEX IX“
In der Vortragsreihe „Having Fun with LATEX“, die sich über viele DANTE-Tagungen erstreckt, werden kleinere Pakete aus dem großen, weiten Universum des CTAN vorgestellt. Diese können entweder hilfreich, interessant oder einfach amüsant sein. Auf jeden Fall erfreut sich die Vortragsreihe steter Beliebtheit – allein schon, da man sieht, dass man mit TEX wirklich so ziemlich alles machen kann.
Wie man Kaffeeflecken ohne Kaffee zu verschütten auf seine Arbeitsblätter projiziert oder seine Mathematikskripte aufpeppen kann, wie man Lizenzsymbole und Würfel einfach setzen kann und sich Trennmuster und Kerning anzeigen lassen kann, wird in der 9. „Folge“ der Reihe gezeigt werden.
Ulrike Fischer: „Der neue Key/Value-Handler“
Ulrike Fischer: „Patchen ist easy“
In dem Vortrag werde ich zeigen, wie man Befehle patchen kann, was man beachten sollte, was schiefgehen kann und wann und wie man Patchen am besten vermeidet.
Patrick Gundlach: „Boxes and glue: TEX s Algorithmen neu implementiert“
TEX (und damit auch LATEX) hat sich als äußerst flexibles, vielseitiges und robustes Textsatzsystem über die Jahre sehr großer Beliebtheit gefreut. Die Flexibilität kommt nicht zuletzt durch die Fähigkeit, das Verhalten von TEX durch Programmierung zu verändern und durch die Weitsicht von Knuth, die einzelnen Elemente auf der Seite als kleine, rechteckige Bausteine zu erkennen die zu größeren Einheiten kombiniert und auch manipuliert werden können (box).
Die Entwicklung von LuaTEX ermöglichte erstmals in der langen Geschichte von TEX moderne Anwendungen durch einige Erweiterungen:
- Die Anzahl der Zeichen in Fonts ist nicht mehr auf 256 beschränkt. Damit fallen Krücken wie die Ausgabekodierung weg.
- Durch die Integration von Harfbuzz ist ein solider »Shaper« verfügbar. Damit können problemlos OpenType Features und komplizierte Schreibsysteme (z.B. Arabisch) ausgegeben werden.
- Das System kann mit Lua anstelle der doch sehr gewöhnungsbedürftigen eingebauten Makro-Sprache programmiert werden.
- Durch die clevere Unterstützung von PDF können nahezu alle PDF-Eigenschaften und Standards unterstützt werden.
Diese Erweiterungen nutze ich für das Programm »speedata Publisher«, das hauptsächlich für die vollautomatische Erstellung von Produktkatalogen und Datenblättern aus XML heraus gemacht ist.
Trotz der ganzen Errungenschaften von TEX bzw. von LuaTEX gibt es mehr oder weniger gravierende Nachteile:
- TEX und LuaTEX sind alles andere als modular aufgebaut. Einzelne Bereiche zu verändern ist besonders schwer, da TEX nicht dafür vorgesehen ist.
- Manche Dinge lassen sich nicht mit LuaTEX s Bordmitteln erreichen. Beispielsweise benötigt man für HTTPS-Requests eine externe Bibliothek. Dokumente im Katalogbereich beziehen ihre Bilder oftmals aus Bilddatenbanken, die über HTTPS angesprochen werden.
- Auch für andere Aufgaben greift man eher auf eine externe Bibliothek zurück, als das Rad neu zu erfinden. Beispielsweise sei hier ein XML-Parser oder eine Bibliothek für bidirektionalen Textsatz genannt.
- Parallelisierung von Aufgaben: moderne Prozessoren haben meist mehrere Prozessorkerne, die bei TEX brach liegen. Etliche Aufgaben in TEX könnte man parallel ausführen. Absätze könnte man mit verschiedenen Parametern umbrechen lassen und dann den »besten« auswählen. Schriftdateien zu laden und für die Einbettung in PDF (subsetting) vorzubereiten muss man nicht sequenziell erledigen. TEX bietet keine solchen Möglichkeiten.
- Das plattformübergreifende Verteilen von LuaTEX -Binaries wird durch die externen Abhängigkeiten schwer. Für einzelne Anwendungen möchte man nicht eine ganze TEX -Live-Installation mitliefern oder voraussetzen.
Die genannten Einschränkungen stören mich inzwischen sehr. Zur Ausgabequalität von TEX gibt es kaum vergleichbare Alternativen – insbesondere nicht im Opensource-Bereich. Daher bleibt eigentlich nichts anderes übrig, als TEX in einer »modernen« Programmiersprache neu zu implementieren. Vor etlichen Jahren gab es schon einmal einen solchen Versuch (NTS), doch der ist gescheitert. Nach langem Grübeln bzw. um meine Anforderungen an ein Textsatzsystem für Kataloge und Datenblätter zu erfüllen, bin ich zum Schluss gekommen, dass ich »nur« die Algorithmen und die Logik von TEX übernehme, aber nicht die Eingabesprache.
Boxes and glue
Boxes and glue ist eine Bibliothek geschrieben in der Programmiersprache Go. Der Name lehnt sich an das Modell von TEX mit den dehnbaren Leerräumen zwischen den rechteckigen Einheiten an. Die Entwicklung von boxes and glue ist schon recht weit fortgeschritten und beinhaltet unter anderem:
- Die kleinsten Einheiten von TEX (node) mit den Möglichkeiten, sie in einander zu schachteln (vbox, hbox)
- TEX s Absatzumbruchalgorithmus
- Die musterbasierte Silbentrennung
- Das einbinden von TrueType und OpenType Schriftarten und PNG, PDF und JPEG-Bildern.
- Textshaping mit Harfbuzz
Neben diesen grundlegenden Teilen gibt es noch eine weitere Bibliothek, die darauf Aufbaut. Sie bietet
- Lesen von XML-Dateien
- Interpretation von HTML und CSS
- Zusammenfassung von Schriftdateien in Familien mit einfacher Schriftauswahl
- Umgang mit Farben aller Art (RGB, CMYK, Sonderfarben)
- Tagged PDF
- …
Die Programmierschnittstelle (API) ist aber noch nicht fest. Die Entwicklung von boxes and glue wird parallel zur Weiterentwicklung des speedata Publishers betrieben (https://github.com/speedata/xts) und die Anforderungen hier bestimmen maßgeblich die Programmierschnittstelle von boxes and glue. Da es sich um eine Bibliothek handelt, gibt es keine feste Eingabesprache wie bei TEX . Insofern ist boxes and glue auch noch nicht für den (End-)Anwender geeignet.
Links:
NTS: https://en.wikipedia.org/wiki/New_Typesetting_System
Boxes and glue: https://github.com/speedata/boxesandglue
speedata Publisher: https://github.com/speedata/publisher/
xts: https://github.com/speedata/xts
Ralf Mispelhorn: „Ahnentafeln mit LATEX erstellen“
Seit Jahren beschäftige ich mich mit der Ahnengeschichte meiner
Vorfahren. Ich habe diese von meinem Vater übernommen.
Mit Hilfe des genealogytree-Pakets möchte ich zeigen, wie Ahnenbäume
mit LATEX erstellt werden können.
Günter Partosch: „Ein- und mehrsprachige Dokumente mit LATEX – das LATEX-Paket babel
Standardsprache für „originäres“ LATEX (ohne Sprachunterstützung) ist (amerikanisches) Englisch. Damit sind auch nur amerikanische Trennungen möglich; das aktuelle Tagesdatum wird in amerikanischer Schreibweise ausgegeben; eine Unterstützung, um Trennungen zu verbessern, fehlt; funktionelle Beschriftungen wie z.B. „List of Figures“ für ein Abbildungsverzeichnis oder „Preface“ für das Vorwort passen nicht für anderssprachige Texte; die Eingabe sprachspezifischer Zeichen, wie z.B. \“{a} für „ä“ oder \ss für „ß“ ist aufwändig.
Abhilfe bietet das LATEX-Paket babel. Mit seiner Hilfe lassen sich relativ einfach anderssprachige oder mehrsprachige Dokumente erstellen.
Im Vortrag werden die Möglichkeiten von babel vorgestellt. Zusätzlich wird gezeigt, wie Sie Änderungen an sprachrelevanten Einstellungen vornehmen oder Sprachen mit anderen Schriftsystemen behandeln können.
Marei Peischl: „expl3 – eine Einführung in LATEX3-Programmierung für fortgeschrittene LATEX-Nutzer:innen“ (Tutorium)
Viele Pakete nutzen heutzutage LATEX3-Mechanismen, ohne dass Nutzer:innen dies mitbekommen. Dies unterstützt die Grundidee von LATEX3 das „Programmer Interface“ von der Dokumentenstruktur und Layout abzuspalten. Die spezielle Syntax dieser Schnittstelle heißt expl3 und erweitert Makronamen um Sonderzeichen, wie Doppelpunkt und Unterstriche.
Diese alternative Syntax wirkt auf viele langjährige LATEX-Nutzerinnen oft kryptisch und irritierend. Dieses Tutorium möchte dies ändern und zeigt daher anhand praktischer Übungsbeispiele die Funktionsweise der Syntax sowie ihre wesentlichen Vorteile in der Verwendung von eigenen Makros.
Das Tutorium wechselt zwischen Vortragsblöcken und praktischen Übungen ab. Hierfür ist bei der Teilnahme ein eigenes Gerät mit einer aktuellen LATEX-Installation (bevorzugt TEX Live 2022) von Vorteil.
Heiner Richter: „Wie soll dat nur wigger jon… mit LATEX“
Ein Vortrag über die Anfertigung der jährlichen Handouts der Stralsunder Steuerwissenschafts- und Praxistage.
samcarter: „Das Ministerium für alberne Gangarten“
In diesem Kurzvortrag wird das „sillypage“ Paket vorgestellt und einige Beispiele gezeigt, wie sich Zahlen damit kreativ darstellen lassen und man sogar die Seitennummerierung ganzer Dokumente so ändern kann, dass jede Seite ein schmunzeln wert ist.
Jürgen Vorloeper: „Numerisches Rechnen mit LuaLATEX II – Anwendungen mit Python und PyLuaTEX “
Die in LuaLATEX integrierte Scriptsprache Lua ermöglicht es, numerische Berechnungen durchzuführen und die Ergebnisse im LATEX-Code weiterzuverarbeiten. Mit Hilfe der in Lua integrierten C-Schnittstelle lassen sich C-Bibliotheken einbinden, mit denen sich die Möglichkeiten prinzipiell beliebig erweitern lassen.
In der Praxis erfordert das Einbinden externer mathematischer C-Bibliotheken die Bereitstellung von Schnittstellen. Dies ist vielfach mit mühseliger Low-Level-Programmierung verbunden. Dies steigert sich, wenn anspruchsvolle wissenschaftliche Berechnungen angedacht sind, die zahlreiche externe Bibliotheken als Bausteine erfordern.
Im Bereich des wissenschaftlichen Rechnens gewinnen seit einigen Jahren Sprachen wie Python oder Julia an Bedeutung. Diese stellen umfangreiche und qualitativ exzellente mathematische Pakete bereit.
Mit der recht neuen Klasse PyLuaTEX von Tobias Enderle lässt sich mit wenig Aufwand Python-Code in LuaTEX verwenden. In diesem Vortrag werden Anwendungen dieser Klasse zur Erstellung von Dokumenten aus dem Bereich des numerischen Rechnens vorgestellt und weitere Einsatzmöglichkeiten aufgezeigt.
Dieser Vortrag ist als Fortsetzung (daher Teil II) des Vortrages „Numerisches Rechnen mit LuaLATEX“, gehalten auf der Frühjahrstagung 2021, angedacht.
Links:
- PyLuaTeX von Tobias Enderle
- Fundamental package for scientific computing with Python
- Fundamental algorithms for scientific computing in Python
Herbert Voß: „Gleitumgebungen für ganz- und doppelseitige Objekte“
Die sogenannten Gleitumgebungen gehören zu den Dingen, die im Zusammenhang mit LATEX zu vielen Missverständnissen führen. In diesem Vortrag wird nach einer kurzen Einführung in den Sinn von Gleitumgebungen gezeigt, wie man mithilfe des Pakets hvfloat die Anordnung von Gleitumgebungen im Zweiseiten- als auch Zweispaltensatz steuern kann. Dabei werden auch ganzspaltige, ganzseitige und doppelseitige Abbildungen/Tabellen beachtet.
Herbert Voß: „Externe Programme schreiben, ausführen und Ergebnis einfügen“
Beim Schreiben eines Buches beispielsweise zum Thema Java, wäre es
wünschenswert, wenn man alle Beispiele im LATEX-Dokument selbst komplett erstellt, als externe Dateien speichert und laufen lässt. Das Ergebnis des Externen Laufs wiederum automatisch in das Dokument mit ausgewählten Code-Bereichen einfügt. Dann hätte man die volle Kontrolle über alle Beispiele und das Manuskript selbst.
Herbert Voß: „Wie finde ich OpenType- und TrueType-Schriften auf meinem Rechner?“
Beim herkömmlichen (pdf)LATEX muss sich der Nutzer mehr oder weniger nicht um die Schriften kümmern; die Wahl eines entsprechenden Paketes reicht meistens.
Bei der Verwendung von OpenType- oder TrueType-Schriften kann dies etwas umständlicher sein, da auch Systemschriften genutzt werden können. Dabei muss man als Anwender auch wissen, welche Schriften eigentlich zur Verfügung stehen.
Uwe Ziegenhagen: „Beamer Themes“
In diesem Vortrag zeige ich, wie man a) eine Übersicht über nahezu alle Beamer-Themes einer TeX Live Installation bekommt und b) eigene Themes entwerfen kann.
Uwe Ziegenhagen: „Vom Netz ins PDF – myTinyTodo-Listen mit LATEX verarbeiten“
MyTinyTodo ist eine einfache, webbasierte TODO-Listenanwendung zum Selberhosten. In diesem Lightning Talk zeige ich MyTinyTodo und wie man die einzelnen Einträge einer Liste nach LaTeX exportieren kann.