[Trennmuster] selektive Ligaturwahl
Stephan Hennig
sh-list at posteo.net
Mi Dez 3 18:41:48 CET 2014
Am 03.12.2014 um 00:43 schrieb Mico Loretan:
> Im Englischen gibt es übrigens auch Fälle, wo ein einsilbiges (und
> somit nicht trennbares) Wort eine Wortfuge enthält und deshalb
> Ligaturen nicht verwendet werden sollten, so etwa die ft-Ligatur in
> "fifth" und "twelfth".
Solche Wörter könnten in der Wortliste etwa als
fif>.th bzw.
fif>...th
ausgezeichnet werden: Das Zeichen > steht für eine Suffixtrennung, die
Punkte für (unterschiedlich stark) zu vermeidende bzw. unzulässige
Trennungen.
> Somit sind Silben-Trennung und Ligatur-Unterdrückung nahe Verwandte,
> aber nicht gerade ein-eiige Zwillinge.
Mein "identisch" bezog sich auf das zugrundeliegende mathematische
Problem. Innerhalb eines Zeichenstromes sollen Stellen/Orte aufgefunden
werden, die nur umständlich in Regeln zu fassen sind.
> \nolig{flich}{f|lich}
>
> Diese einfache Regel unterdrückt die fl-Ligatur in begrifflich,
> beruflich, brieflich, glimpflich, behilflich, höflich, käuflich,
> sträflich, tariflich, trefflich, unerschöpflich, verwerflich, und
> vielen weiteren Wörtern. Diese Regel ist aber ein bisschen zu
> grosszügig, d.h. nicht genügend restriktiv, weil sie die fl-Ligatur
> auch in Wörtern wie Pflicht, pflichtgemäss, verpflichten, usw.
> unterdrückt. Anstatt die einfache aber zu grosszügige Regel mit
> vielen mehr restriktiven Regeln zu ersetzen, bietet das Paket die
> einfache Ausnahme-Regel
>
> \keeplig{flicht}
>
> Sie findet Verwendung in den Pflicht-enthaltenden Wörtern, aber auch
> in "flicht", "einflicht", und "verflicht" (dritte Person Singular von
> flechten, einflechten, und verflechten). Falls nötig, kann man
> Ausnahmen zu \keeplig Regeln bilden via noch restriktiveren \nolig
> Regeln; d.h. \nolig und \keeplig könnten im Prinzip verschachtelt
> werden. Das selnolig Paket macht aber von dieser
> Verschachtelungs-Möglichkeit z.Z. nicht Gebrauch. Stattdessen werden
> zwei oder drei weitere \nolig Regeln eingesetzt, damit die fl-Ligatur
> in einem Wort wie "Sumpflicht" doch noch unterdrückt wird.
Wie wird bei nicht verschachtelten Regeln die Priorität festgelegt? Die
längste Regel gewinnt?
> Alle \nolig Regeln könnten, prinzipiell, auch in einem Opentype
> feature file definiert werden. (Ein kleiner Vorzug von selnolig ist
> allerdings, dass es auch mit Nicht-Opentype Schriften funktioniert.)
> Eine Umsetzung in ein feature file wäre aber doch recht mühsam, weil
> in Lua recht freie pattern matches erlaubt sind und die \nolig und
> \keeplig Regeln davon frei Gebrauch machen.
Schon klar. Es ging mir allgemein um die Mächtigkeit des Ansatzes. Das
mit den verschachtelten Regeln habe ich zwar nicht restlos verstanden,
solche Regeln ließen sich aber durch die OpenType-Syntax meines Wissens
nicht abbilden. Das genügt mir vorerst.
> Die nächste Version von selnolig wird auf jeden Fall sowohl die
> babel-Methode als auch die Duffner-Methode als Optionen anbieten. Je
> nach der Schrift die im Dokument angewandt wird, wird hoffentlich
> eine der drei Methoden gut genug sein. :-)
Ich spreche dich auch aus genau den Grund an, dass ich überhaupt nicht
entscheiden möchte, wie genau eine bestimmte Ligatur verhindert werden
sollte. Ich möchte mich eher dem Auffinden solcher Stellen widmen.
> Ich werden mir also gewiss die links genau anschauen und mir
> überlegen wie ich sie für Ligatur-Unterdrückungen verwenden kann. Es
> wäre schon grossartig falls die Arbeit der Erstellung der rund
> tausend Ligatur-Regeln automatisiert und vereinfacht werden könnte.
Grundsätzlich könnte man mit patgen sicher auch Ligaturmuster für
ausgewählte Buchstabenkombinationen errechnen, die nur zwei
Level/Bewertungen berücksichtigen und aus dementsprechend langen
Zeichenketten bestehen.
Um jedoch einem Missverständnis vorzubeugen, die Muster, die ich in der
letzten E-Mail beschrieben habe, sind keine (Nicht-)Ligaturmuster,
sondern sie zeigen /sämtliche/ Wortfugen an. Zum Beispiel auch die in
'ein-ander', obwohl eine na-Ligatur reichlich ungewöhnlich wäre. Der
Mustersatz ist dadurch zwar ziemlich groß (100 kB, ca. 17.000 Muster).
Allerdings können so problemlos auch st- oder tz-Ligaturen behandelt
werden (siehe die letzten beiden Absätze in
examples/luatex/break-ligatures/break-ligatures.tex im
Padrinoma-Repositorium bzw. in der PDF-Ausgabe). Da du fk- und
fft-Ligaturen erwähntest, werde ich die auch noch als Beispiele
aufnehmen. Welche Schrift bietet diese Ligaturen?
> Ich muss allerdings in den nächsten zwei Wochen noch viel beruflich
> auch Reisen gehen, und während den Festtagen werde ich ebenfalls
> nicht viel Zeit zum Programmieren haben. So werde ich wohl erst im
> Januar richtig Zeit finden um die nächste Version von selnolig
> fertigzustellen.
Kein Problem, wir können alle nur arbeiten, wenn wir Zeit haben. Im
Padrinoma-Paket fehlt zur Zeit auch noch die Möglichkeit, zur Laufzeit
Ausnahmen à la \hyphenation definieren zu können.
Viele Grüße,
Stephan Hennig
Mehr Informationen über die Mailingliste Trennmuster