Digitale Typografie
Die digitale Typografie beschäftigt sich mit den Methoden der Informatik, die zur Lösung von Problemstellungen aus dem Bereich der Typografie beitragen. Die Vorlesung setzt außer den Grundkenntnissen in der Informatik nichts voraus. Entsprechend beginnt die Vorlesung mit einer Einführung in die Typografie zunächst mit Hilfe zweier Programmiersprachen, PostScript und MetaPost, die eine nähere Beschäftigung mit geometrisch definierten Flächen und der Rasterung erlauben. Danach folgt eine kurze Einführung in das Regelwerk der Typografie, damit ein Verständnis für die Problemstellungen der Typografie gewonnen wird. Auf der Basis dieser Voraussetzungen ist dann eine intensivere Beschäftigung mit verschiedenen Algorithmen und Techniken aus dem Bereich der Typografie möglich. Die Vorlesung ist sehr praxisorientiert und die Übungen sind integraler Bestandteil der Veranstaltung.
Inhalt
- Von der geometrisch definierten Fläche zum Raster mit Einführungen in die Sprachen PostScript, MetaFont/MetaPost und der näheren Inspektion diverser Repräsentierungen von Schriftschnitten (Type 3, Type 1, TrueType)
- Einführung in die Typografie
- Typografische Datenstrukturen und Algorithmen
Termine
Voraussichtliche Zeiten, die sich noch ändern können:
- Vorlesung: Donnerstag, 14–16 Uhr, Helmholtzstraße 18, Raum E.20. Um die die durch Feiertage ausfallenden Vorlesungstermine am 5. und 26. Mai auszugleichen, finden einige Vorlesungen an Übungsterminen statt. Der erste solche Termin ist Freitag, der 15. April. Der zweite Ausgleichstermin ist am 10. Juni.
- Übungen: Freitag, 14–16 Uhr, Helmholtzstraße 22, Raum E.18. Am 6. und 27. Mai finden keine Übungen statt. Ebenso sind keine Übungen am 3. Juni. Am 10. Juni wird der Übungstermin für die Vorlesung verwendet. Am 8. und 15. Juli finden keine Übungen mehr statt. Das letzte Übungsblatt wird am 14. Juli in der Vorlesung kurz besprochen.
Voraussetzungen
Vorausgesetzt werden die Kenntnisse aus einer Grundvorlesung für Informatik. Insbesondere sollten elementare Algorithmen und Datenstrukturen bekannt sein und praktische Erfahrungen mit einer Programmiersprache bestehen (z.B. Java).
Prüfungen
Die Vorlesung ist ein Wahlpflichtmodul im Modulhandbuch der Master-Studiengänge Wirtschaftsmathematik, Informatik und Medieninformatik. Vorleistungen gibt es keine. Prüfungen finden mündlich statt zu individuell vereinbarten Terminen.
Vorlesungen
Begleitend zur Vorlesung werden die Folien hier veröffentlicht:
- 14. April 2016 (Syllabus, Einführung)
- 15. April 2016 (Einführung in PostScript)
- 21. April 2016 (Kurven); Vorlesungsbeispiel: bezier.ps. Als Datei herunterladen und dann am Ende des PostScript-Programms die Funktion PlotBezierPath verwenden mit ihren drei Parametern c_array, step und t. Über c_array lässt sich ein Array mit Kontrollpunkten spezifizieren und implizit wird darüber auch der Grad der Bézierkurve festgelegt. Der Parameter step legt die Schrittweite für t aus dem Intervall [0, 1] fest, an denen C(t) berechnet wird (kann beispielsweise auf 0.01 festgelegt werden). Und mit t wird festgelegt, für welches C(t) die Konstruktion nach Casteljau zeichnerisch demonstriert wird. Beispiel: gsave [[100 100] [150 250] [420 350] [450 100]] 0.01 0.2 PlotBezierPath grestore
- 28. April 2016 (Schriftschnitte in PostScript); Vorlesungsbeispiele: torniello.eps (ein einfacher Type-3-Schriftschnitt nach Francesco Torniello), glyph-outline.eps (Visualisierung des Pfads eines Zeichens), glyph-outline2.eps (mit Richtungsangaben)
- 12. Mai 2016 (Einführung in MetaPost)
- 2. Juni 2016 (Rasterung); Vorlesungsbeispiel: freetype-raster.tar.gz (kleine Demo zum Rastern mit der freetype-Bibliothek)
- 9. Juni 2016 (Einführung in die Typografie)
- 16. Juni 2016 (Knuth’sche Schachtelsysteme)
- 23. Juni 2016 (Algorithmen zur Zerlegung von Paragraphen); Vorlesungsbeispiel: paragraphs.tar.gz (kleiner Werkzeugkasten, der die Graphen erzeugt, die dem Optimierungsalgorithmus unterliegen)
- 30. Juni 2016 (Trennungen von Wörtern)
- 7. Juli 2016 (Type-1-Schriften, PDF-Format)
- 14. Juli 2016 (TrueType-Schriften)
- Alle Folien in einer PDF-Datei (Stand: 14. Juli 2016)
Übungen
Melden Sie sich bitte für die Teilnahme in den Übungen bei SLC an.
- Blatt 1 (Abgabe bis zum 22. April; Beispiellösungen: meeting.eps, faces.eps)
- Blatt 2 (Abgabe bis zum 29. April; Beispiellösungen: flowers.eps, tulips.eps)
- Blatt 3 (Abgabe bis zum 13. Mai); Beispiellösungen: B.eps, C.eps, H.eps und type3.eps
- Blatt 4 (Abgabe bis zum 20. Mai); Beispiellösungen: triangle1.mp, triangle2.mp, z120.mp
- Blatt 5 (Abgabe bis zum 3. Juni); Beispiellösung: progsprachen.mp
- Blatt 6 (Abgabe bis zum 17. Juni)
- Blatt 7 (Abgabe bis zum 24. Juni); Beispiellösung: TableGenerator.java
- Blatt 8 (Abgabe bis zum 1. Juli); Vorlagen: TestPar.java, TestHyphenatedPar.java; Beispiellösung: TriangleLineBreaker.java, TestTPar.java, TestHyphenatedTPar.java
- Blatt 9 (Abgabe bis zum 8. Juli); Vorlagen: zweig-buchmendel-9.txt (einzelner in UTF-8 kodierter Paragraph aus der Erzählung „Buchmendel“ von Stefan Zweig), mk_dehypht_rules.pl (Perl-Skript zum Konvertieren von dehypht.tex aus der TeX-Distribution in ein Format, das für den HyphenationTableLoader akzeptabel ist; damit ist ein Trennen deutscher Wörter möglich mit ungewichteten Trennungsregeln zum Vergleich); Beispiellösung: HyphenationWordList.java, HyphenationWordListLoader.java, SequenceWeightedHyphenator.java, TestHyphenatedPar.java, TestHyphenatedParWithWeights.java, TestLoader.java, Makefile
Materialien
- MetaPost Dokumentation
- PostScript Language Reference Manual
- Alphabet von Francesco Torniello
- Vorlesungsbibliothek: typo.tar.gz (Quellen), typo.jar (JAR-Archiv), Dokumentation (aktualisiert am 1. Juli 2016) – Hinweis: Die neueste Fassung unterstützt beliebige Unicode-Zeichen soweit sie in dem angegebenen Schriftschnitt enthalten sind. Damit das beispielsweise für deutschsprachige Texte funktioniert, muss der Eingabetext in UTF-8 gesetzt und die Locale entsprechend konfiguriert sein. Wenn Kodierung und Locale nicht miteinander übereinstimmen, kommt es zu Fehlern.
Kontakt
Dr. Andreas F. Borchert
Helmholtzstr. 20
Raum 1.22