201214Okt

Typeset: Verbesserter Blocksatz mit JavaScript

Im Printbereich gehört das Setzen und Gestalten von Text innerhalb eines Layouts zum Alltag: Laufweite, Zeilenabstand, Grundlinienversatz und Einzüge können hier manuell und sehr genau in DTP-Anwendungen wie InDesign oder QuarkXPress eingestellt werden. Im Web bestehen durch CSS grundsätzlich auch diese Möglichkeiten, allerdings gibt es hier durch die Browser-Engines Grenzen und Unterschiede. So lässt sich durchaus mit der CSS-Deklaration "text-align:justify;" ein Blocksatz erzeugen, doch Einfluss auf die entstehenden Lücken zwischen Wörtern hat man als Webdesigner nicht.
Wenn es wirklich auf einen guten Blocksatz und womöglich auch noch auf Silbentrennung im Web ankommt, lohnt sich ein Blick auf das JavaScript-Projekt Typeset, das den Knuth-Plass-Algorithmus zur Erzeugung von Zeilenumbrüchen nutzt.

Typeset - TeX line breaking algorithm in JavaScript

Auf der Seite des Projekts finden sich verschiedene Anwendungsbeispiele, die unter Anderem auch das Verhältnis von Zeichen zu entstehenden Leeräumen zeigen. Im Gegensatz zur CSS-Variante können durch den Einsatz von Typeset wesentlich bessere Ergebnisse erzielt werden. Eine Demonstration findet sich beispielsweise auf dieser Seite. Zudem ermöglicht das Skript auch das Erzeugen von abstrakten Text-Layouts, wodurch die Zeilen entlang einer geometrischen Form ausgerichtet werden können. Details zur Implementierung finden sich wieder bei GitHub.