[Trennmuster] Skript zum Erstellen einer Wortliste für Ligatursatzmuster

Guenter Milde milde at users.sf.net
Do Aug 11 08:20:08 CEST 2016


Hi Lukas,

ich freue mich, daß da eine schon lange angedachte Nutzung der
"kategorisierten" Trennstellen Wirklichkeit wird.


> Eine saubere Lösung ist es, innerhalb von deutschem Text die Ligaturen
> mit dem dafür vorgesehenen Zeichen, nämlich einem Bindehemmer
> (Unicode-Zeichen U+200C ZERO WIDTH NON-JOINER), dort zu unterdrücken,
> wo sie nicht hingehören. Das führt dann zum beabsichtigten Ergebnis,
> und zwar sowohl für die OpenType-Standardeinstellung
> (Standardligaturen ja, Schmuckligaturen und historische Ligaturen
> nein) als auch für abweichende Einstellungen, die der Benutzer
> auswählt. Auch wenn die Schriftart sehr exotische Schmuckligaturen
> enthalten sollte, kann man mit dem Bindehemmer das richtige Ergebnis
> erziehen.

Für die Papierausgabe auf jeden Fall der richtige Weg.
Korrekt implementierte Programme sollten auch bei der Suche etc. den
Ligaturhemmer ignorieren.

Problematisch kann es werden, wenn aus so gesetzten elektronischen
Dokumenten (epub, PDF, HTML) via drag-and-drop Text entnommen und
anderswo verarbeitet wird.

  Beispiel: Die Paketbeschreibungen auf www.ctan.org/pkg/ sind mit 
  bedingten Trennstrichen "angereichert". Wenn ich sie in die Kommentare
  meiner Pakete oder ein E-Mail einfüge stören diese bei der Betrachtung im
  traditionellen Texteditor erheblich.
  
Insofern kann eine Beschränkung auf die erforderlichen Ligaturtrenner
(bzw. bei CTAN auf Haupttrennstellen in langen Wörtern) durchaus hilfreich
sein.  

...

> Deshalb habe ich ein Skript für Scribus-CTL geschrieben. Das Skript
> ist auch in die Entwicklerversion von Scribus-CTL aufgenommen worden
> (https://github.com/HOST-Oman/scribus/blob/ctl/scribus/plugins/scriptplugin/scripts/Ligatursatz.py)
> und ich hoffe natürlich, dass es es auch in die endgültige Version
> schafft. Das Skript fügt im Text fehlende Bindehemmer ein und löscht
> Bindehemmer an falschen Stellen. Und die Information, wo Bindehemmer
> hingehören, die holt sich das Skript aus einem eigens dafür erzeugten
> Ligatursatz-Bindehemmer-Patgen-Muster. (Im Grundsatz: Dort, wo in der
> Wortliste „<“, „>“ und „=“ auftreten, werden Ligaturen unterdrückt.
> Nicht jedoch dort, wo „-“ auftritt.)

Das müßte in der überwiegenden Mehrzahl der Fälle genau das Richtige sein:


1. Eine Silbengrenze verbietet nicht die Ligatur, wenn sie nicht mit einer
   Morphemgrenze zusammenfällt.

   Bsp.: Af-fe, Fal-le, Res-te, hef-tig

2. KEINE Ligatur steht in der Wortfuge von Zusammensetzungen.
   Das gilt auch für Vorsilben/Präfixe.
   Bsp.: straf=frei, Auf<lage     

3. Zwischen Beugungsendungen (-te, -ten) und Endsilben (-lein, -lich, -los)
   und dem restlichen Wortteil werden ebenfalls keine Ligaturen gesetzt.
   Bsp.: ich haf>te, Eltern haf>ten, Häuf>lein, höf>lich, mittel>los

   Dagegen werden bei mit "i" beginnenden Suffixen (-ig, -in, -ich, -isch)
   Ligaturen gesetzt, da hier die Suffixgrenze nicht mit der
   Sprechsilbengrenze übereinstimmt. 
   Bsp.: af-fig, häu-fig, völ-lig, Freun-din, nei-disch, 
   
Die Ligatur-Regeln sollten automatisch erfüllt sein, wenn an allen Stellen wo
in der Wortliste die "höherwertigen" Trennzeichen "<" "|" und ">" stehen die
Ligaturbildung unterbunden wird.


> Gebt mir noch ein bisschen Zeit, dann kommt auch das Python-Skript,
> das aus der Wortliste die Eingabedatei für Patgen erzeugt … Auch dort
> freue ich mich dann über Rückmeldungen.

Pattern für diese Trennungen können bereits mit den "make"-Regeln

 "dehyphn-x-major"   de
 "dehypht-x-major"   de-1901
 "dehyphts-x-major"  de-CH-1901

(und den dazugehörigen Perl-Skripten) erstellt werden.

Ggf. lassen sich kleinere Pattern-Files generieren, wenn die Auswahl der
Trennstellen im patgen-Eingabefile auf Kombinationen beschränkt wird, 
die Ligaturen zulassen (Auf<lage, aber nicht Aus<lage). Ob sich dieser
Mehraufwand lohnt ist zu prüfen, insbesondere wenn alle Kombinationen
berücksichtigt werden, die im Fraktursatz üblich sind.

Zur Kontrolle lohnt auch ein Abgleich mit Björn Hackes
Ligaturinformationen in "igerman98-20131206/ligature/" bzw. dem
dazugehörigen Skript "rmligs".

Ob falsche Ligaturtrennungen dann in der Quelle "wortliste" oder im
Extraktionsskript oder über eine Ausnahmeliste korrigiert werden sollen,
können wir dann hier auf der Liste diskutieren.

Gruß und Dank,

Günter

----- End forwarded message -----



Mehr Informationen über die Mailingliste Trennmuster