[Trennmuster] Spezialmusteranwendung

Keno Wehr wehr at abgol.de
So Jun 19 21:39:36 CEST 2022


Liebe Trennmuster-Interessierte,

vielen Dank für die Rückmeldungen zum autotype-Paket.
Ein Teil der Verbesserungsvorschläge ist in der neuen Version 0.3 
berücksichtigt worden:
https://codeberg.org/wehr/autotype

Anderes habe ich zunächst zurückgestellt, da ich mich bei dieser Version 
vor allem auf eine Innovation konzentriert habe, nämlich einen 
Trennalgorithmus mit gewichteten Trennstellen (Sprachoption 
hyphenation=weighted). Hierfür werden drei Arten von Trennstellen 
unterschieden: Primär-, Sekundär- und Tertiärtrennstellen und mit 
unterschiedlichen Penalties (30, 60, 90) versehen. Die Werte sind 
willkürlich gewählt und aus keiner Versuchsreihe entstanden. Die Muster 
für Primär- und Sekundärtrennstellen werden mit autotype ausgeliefert, 
die Tertiärtrennstellen sind durch die gewöhnlichen Muster aus hyph-utf8 
abgedeckt.
Für Bindestrichwörter habe ich mich für folgendes Vorgehen entschieden: 
An den Bindestrichen liegen Primärtrennstellen. Anders als beim 
Standardalgorithmus kann aber auch innerhalb der Wortteile getrennt 
werden; hier sind alle Trennstellen tertiär. Sekundärtrennstellen gibt 
es in Bindestrichwörtern nicht.

Eine erste Möglichkeit, sich die Wirkung des neuen Algorithmus 
anzusehen, ist die Datei weighted-hyph-Kant.tex im Verzeichnis tests. 
Hier wird die Einleitung zu Kants Kritik der reinen Vernunft in der 
linken Spalte mit dem herkömmlichen Trennalgorithmus und in der rechten 
Spalte mit gewichteten Trennstellen gesetzt. Die Unterschiede sind nicht 
groß, das Ergebnis mit gewichteten Trennstellen aber doch leicht besser. 
Viel mehr wird man wohl auch nicht erreichen können. Der Preis ist 
allerdings hoch: Die Übersetzung dauert bei mir mit dem gewichteten 
Algorithmus achtmal so lange wie mit dem normalen. Javier Bezos hatte 
mir einst aus Performance-Gründen von einem Trennalgorithmus in Lua 
abgeraten und hier Recht behalten.

Wenn jemand mit den Penalty-Werten spielen will, muss er direkt die 
Zeilen 48 bis 50 in autotype.lua ändern. Eine Schnittstelle ist momentan 
nicht vorgesehen.

Weil es leicht zu machen war, habe ich zusätzlich noch die Option 
hyphenation=primary implementiert, mit der nur an Primärtrennstellen 
getrennt wird. (Das dauert etwa viermal so lange wie normal.) Große 
Praxisrelevanz sehe ich dafür aber nicht.

Dann gibt es noch eine Option, die alle Trennstellen markiert, auch wenn 
sie nicht zur Trennung genutzt werden (mark-hyph). Das funktioniert wie 
beim Paket showhyphens mit kleinen farbigen Strichen an den 
Trennstellen. Autotype nutzt allerdings drei verschiedene Farben, um 
Trennstellen unterschiedlicher Güte zu markieren. Wenn man sich damit 
den einen oder anderen Text ansieht, merkt man, dass die Fehlerquote bei 
den Primär- und Sekundärtrennstellen höher liegt als bei den tertiären. 
Das liegt daran, dass die Muster, die hierfür aus der Wortliste gewonnen 
werden, naturgemäß weniger verallgemeinerbar sind, da die gesamte 
Wortstruktur einfließt.

Die Version 0.3 führt auch eine konsequentere 
Schlüssel-Wert-Schnittstelle ein. Statt noligbreak heißt die Option 
jetzt ligbreak=off, statt no-long-s long-s=off. ligbreak und ligbreak=on 
etc. sind äquivalent.

Das von Günter beschriebene Problem mit den Ligafaktur-Schriften (ZWNJ 
als Teil von Eingabeligaturen) kann jetzt mit der Schriftoption 
ligbreak-method=kern angegangen werden. Ich bin mir noch nicht sicher, 
ob diese Option bleibt, denn ich sehe mittlerweile kaum noch einen Sinn 
in der Verwendung der Bindehemmer. Sie sind zwar für die Verhinderung 
von Ligaturen zuständig, doch das gilt vor allem bei direkter 
Nutzereingabe. Wenn man sowieso im Nachhinein in die Liste der 
eingegeben Zeichen eingreift, wie es autotype für den Ligaturaufbruch 
tut, können die Ligaturen auch anders unterdrückt werden (z.B. durch 
Kerning). Bevor ich hier eine Entscheidung treffe, muss ich aber die 
Wechselwirkung zwischen den verschiedenen Ligaturaufbruchmethoden und 
dem Standard-Kerning der Schrift noch genauer untersuchen.

Ansonsten habe ich die Anleitung etwas verbessert und einige 
Literaturhinweise zum Fraktursatz mit TeX hinzugefügt. Auch gibt es in 
den Anwendungsbeispielen zur long-s-Option jetzt ein Beispiel zu den 
Ligafaktur-Schriften.

Auf lange Sicht sollen noch die Spezialtrennungen {ck/k=k} etc. 
unterstützt werden. Vorher muss aber die vorhandene Funktionalität 
konsolidiert werden. Dafür sind Rückmeldungen natürlich wieder sehr 
willkommen!

Kürzlich ist auf dem CTAN eine Reihe mikrotypographischer Pakete vom 
Thomas Kelkel aufgetaucht, darunter auch eines zum Ligaturaufbruch 
(ligtype). Die Konkurrenz schläft also nicht.

Schöne Grüße
Keno



Mehr Informationen über die Mailingliste Trennmuster