[Trennmuster] Skript zum Erstellen einer Wortliste für Ligatursatzmuster
Lukas Sommer
sommerluk at gmail.com
So Aug 14 18:00:28 CEST 2016
Hier der Inhalt der log-Datei (scheint von der Mailig-Liste
herausgefiltert zu werden):
The following entries with ambigouos morphem boundaries have been ignored:
Bahnhofstrasse;-2-;-3-;-4-;-5-;Bahn=hof[==stra-ss/s==tras-s]e;Bahn=hof[==s/s==]tras-se;Bahn=hof[==s/s==]tras-se
Bahnhofstrassen;-2-;-3-;-4-;-5-;Bahn=hof[==stra-ss/s==tras-s]en;Bahn=hof[==s/s==]tras-sen;Bahn=hof[==s/s==]tras-sen
Bettuch;-2-;Be[t=t/{tt/tt=t}]uch;Bet=tuch
Bettuche;-2-;Be[t=tu-/{tt/tt=t}u.]che;Bet=tu-che
Bettücher;-2-;Be[t=tü-/{tt/tt=t}ü.]cher;Bet=tü-cher
Bettüchern;-2-;Be[t=tü-/{tt/tt=t}ü.]chern;Bet=tü-chern
Bettuches;-2-;Be[t=tu-/{tt/tt=t}u.]ches;Bet=tu-ches
Bettuchs;-2-;Be[t=t/{tt/tt=t}]uchs;Bet=tuchs
Biberbettuch;-2-;Bi-ber==be[t=t/{tt/tt=t}]uch;Bi-ber==bet=tuch
Biberbettuche;-2-;Bi-ber==be[t=tu-/{tt/tt=t}u.]che;Bi-ber==bet=tu-che
Biberbettücher;-2-;Bi-ber==be[t=tü-/{tt/tt=t}ü.]cher;Bi-ber==bet=tü-cher
Biberbettüchern;-2-;Bi-ber==be[t=tü-/{tt/tt=t}ü.]chern;Bi-ber==bet=tü-chern
Biberbettuches;-2-;Bi-ber==be[t=tu-/{tt/tt=t}u.]ches;Bi-ber==bet=tu-ches
Biberbettuchs;-2-;Bi-ber==be[t=t/{tt/tt=t}]uchs;Bi-ber==bet=tuchs
Druckerzeugnis;-2-;Dru[{ck/k-k}er=/ck=er<.]zeug>nis;Dru[-cker=/ck=er<.]zeug>nis
Druckerzeugnisse;-2-;Dru[{ck/k-k}er=/ck=er<.]zeug>nis-se;Dru[-cker=/ck=er<.]zeug>nis-se
Druckerzeugnissen;-2-;Dru[{ck/k-k}er=/ck=er<.]zeug>nis-sen;Dru[-cker=/ck=er<.]zeug>nis-sen
Druckerzeugnisses;-2-;Dru[{ck/k-k}er=/ck=er<.]zeug>nis-ses;Dru[-cker=/ck=er<.]zeug>nis-ses
erbrecht;er[<b/b=]recht
ersterbe;er[<st/st=]er.be
ersterben;er[<st/st=]er.ben
ersterbend;er[<st/st=]er.bend
ersterbende;er[<st/st=]er.ben-de
ersterbendem;er[<st/st=]er.ben-dem
ersterbenden;er[<st/st=]er.ben-den
ersterbender;er[<st/st=]er.ben-der
ersterbendes;er[<st/st=]er.ben-des
ersterbt;er[<st/st=]erbt
erstritt;er[<st/st=]ritt # Erst-Ritt
erstritten;er[<st/st=]rit-ten
Fussballehre;-2-;-3-;-4-;-5-;Fuss=ba[ll==/{ll/ll==l}]eh-re;Fuss=ball==eh-re;-8-
Fußballehre;-2-;Fuß=ba[ll==/{ll/ll==l}]eh-re;Fuß=ball==eh-re
Fussballehren;-2-;-3-;-4-;-5-;Fuss=ba[ll==/{ll/ll==l}]eh-ren;Fuss=ball==eh-ren;-8-
Fußballehren;-2-;Fuß=ba[ll==/{ll/ll==l}]eh-ren;Fuß=ball==eh-ren
Gastrasse;Ga[s=t/st=]ras-se # Gastrasse/Gaſtrasse
Gastrassen;Ga[s=t/st=]ras-sen # Gastrassen/Gaſtrassen
griffest;-2-;gri[f-f/{ff/ff=f}]est;grif-fest # griff+fest / du griffest
Grossachsen;-2-;-3-;-4-;-5-;Gross=ach-sen;Gross=ach-sen;Gro[ss=/{ss/ss=s}]ach-sen
Hochgeschwindigkeitstrasse;-2-;-3-;-4-;-5-;Hoch<ge<schwin-dig>keit[=stra-ss/s=tras-s]e;Hoch<ge<schwin-dig>keit[=s/s=]tras-se;Hoch<ge<schwin-dig>keit[=s/s=]tras-se
Hochgeschwindigkeitstrassen;-2-;-3-;-4-;-5-;Hoch<ge<schwin-dig>keit[=stra-ss/s=tras-s]en;Hoch<ge<schwin-dig>keit[=s/s=]tras-sen;Hoch<ge<schwin-dig>keit[=s/s=]tras-sen
Irreligion;-2-;I[{rr/rr=r}/r<r]e.li-gi-on;Ir<re-.li-gi-on # Irrglaube
vs. Unglaube
Irreligionen;-2-;I[{rr/rr=r}/r<r]e.li-gio-nen;Ir<re-.li-gio-nen
irreligiös;-2-;i[{rr/rr=r}/r<r]e.li-gi-ös;ir<re-.li-gi-ös
irreligiöse;-2-;i[{rr/rr=r}/r<r]e.li-giö-se;ir<re-.li-giö-se
irreligiösem;-2-;i[{rr/rr=r}/r<r]e.li-giö-sem;ir<re-.li-giö-sem
irreligiösen;-2-;i[{rr/rr=r}/r<r]e.li-giö-sen;ir<re-.li-giö-sen
irreligiöser;-2-;i[{rr/rr=r}/r<r]e.li-giö-ser;ir<re-.li-giö-ser
irreligiöses;-2-;i[{rr/rr=r}/r<r]e.li-giö-ses;ir<re-.li-giö-ses
Kindersatz;Kin[-der=/d=er<.]satz
Kindersatzes;Kin[-der=/d=er<.]sat-zes
kindertragend;kin[-der=/d=er<.]tra-gend
kindertragende;kin[-der=/d=er<.]tra-gen-de
kindertragendem;kin[-der=/d=er<.]tra-gen-dem
kindertragenden;kin[-der=/d=er<.]tra-gen-den
kindertragender;kin[-der=/d=er<.]tra-gen-der
kindertragendes;kin[-der=/d=er<.]tra-gen-des
Leinenbettuch;-2-;Lei-nen==be[t=t/{tt/tt=t}]uch;Lei-nen==bet=tuch
Leinenbettuche;-2-;Lei-nen==be[t=tu-/{tt/tt=t}u.]che;Lei-nen==bet=tu-che
Leinenbettücher;-2-;Lei-nen==be[t=tü-/{tt/tt=t}ü.]cher;Lei-nen==bet=tü-cher
Leinenbettüchern;-2-;Lei-nen==be[t=tü-/{tt/tt=t}ü.]chern;Lei-nen==bet=tü-chern
Leinenbettuches;-2-;Lei-nen==be[t=tu-/{tt/tt=t}u.]ches;Lei-nen==bet=tu-ches
Leinenbettuchs;-2-;Lei-nen==be[t=t/{tt/tt=t}]uchs;Lei-nen==bet=tuchs
Musikerleben;Mu-si[-ker=/k=er<.]le-ben
Musikerlebens;Mu-si[-ker=/k=er<.]le-bens
Nachbarskater;Nach-bar[s=/=s]ka-ter
Nachtraum;Nach[<t/t=]raum
Nachträume;Nach[<t/t=]räu-me
Nachträumen;Nach[<t/t=]räu-men
Nachtraumes;Nach[<t/t=]rau-mes
Nachtraums;Nach[<t/t=]raums
Nachtritt;Nach[<t/t=]ritt
Nachtritte;Nach[<t/t=]rit-te
Prägraten;Prä[<g/g=]ra-ten
Prime;Pri[-/]me # Prime (musik.) vs. Prime (typogr.)
Schiffstau;Schiff[s=/=s]tau
Schiffstaue;Schiff[s=/=s]taue
Schiffstauen;Schiff[s=/=s]tau-en
Schiffstaues;Schiff[s=/=s]tau-es
Schiffstaus;Schiff[s=/=s]taus
schliffest;-2-;schli[f-f/{ff/ff=f}]est;schlif-fest
Schrottanker;-2-;Schro[tt=/{tt/tt=t}]an-ker;Schrott=an-ker
Schrottankern;-2-;Schro[tt=/{tt/tt=t}]an-kern;Schrott=an-kern
Schrottankers;-2-;Schro[tt=/{tt/tt=t}]an-kers;Schrott=an-kers
Spiegelei;Spie-ge[>l/l=]ei
Staubecken;-2-;Stau[=b/b=]e{ck/k-k}en;Stau[=be-/b=e]cken
Testerkennung;-2-;Te[-ster=/st=er<.]ken-nung;Tes[-ter=/t=er<.]ken-nung
Wachstube;Wach[=s/s=]tu-be
Wachtraum;Wach[=t/t=]raum
Wachträume;Wach[=t/t=]räu-me
Wachträumen;Wach[=t/t=]räu-men
Wachtraumes;Wach[=t/t=]rau-mes
Wachtraums;Wach[=t/t=]raums
Wales;Wa[-/]les
The following entries with unclassified hyphenation points have been ignored:
The following entries with inconsistencies between different
orthographies have been ignored:
achttausendste;-2-;acht-tau-send-ste;acht=tau-sends-te
achttausendstem;-2-;acht-tau-send-stem;acht=tau-sends-tem
achttausendsten;-2-;acht-tau-send-sten;acht=tau-sends-ten
achttausendster;-2-;acht-tau-send-ster;acht=tau-sends-ter
achttausendstes;-2-;acht-tau-send-stes;acht=tau-sends-tes
dreitausendste;-2-;drei-tau-send-ste;drei=tau-sends-te
dreitausendstem;-2-;drei-tau-send-stem;drei=tau-sends-tem
dreitausendsten;-2-;drei-tau-send-sten;drei=tau-sends-ten
dreitausendster;-2-;drei-tau-send-ster;drei=tau-sends-ter
dreitausendstes;-2-;drei-tau-send-stes;drei=tau-sends-tes
fünftausendste;-2-;fünf-tau-send-ste;fünf=tau-sends-te
fünftausendstem;-2-;fünf-tau-send-stem;fünf=tau-sends-tem
fünftausendsten;-2-;fünf-tau-send-sten;fünf=tau-sends-ten
fünftausendster;-2-;fünf-tau-send-ster;fünf=tau-sends-ter
fünftausendstes;-2-;fünf-tau-send-stes;fünf=tau-sends-tes
neuntausendste;-2-;neun-tau-send-ste;neun=tau-sends-te
neuntausendstem;-2-;neun-tau-send-stem;neun=tau-sends-tem
neuntausendsten;-2-;neun-tau-send-sten;neun=tau-sends-ten
neuntausendster;-2-;neun-tau-send-ster;neun=tau-sends-ter
neuntausendstes;-2-;neun-tau-send-stes;neun=tau-sends-tes
siebentausendste;-2-;sie-ben-tau-send-ste;sie-ben=tau-sends-te
siebentausendstem;-2-;sie-ben-tau-send-stem;sie-ben=tau-sends-tem
siebentausendsten;-2-;sie-ben-tau-send-sten;sie-ben=tau-sends-ten
siebentausendster;-2-;sie-ben-tau-send-ster;sie-ben=tau-sends-ter
siebentausendstes;-2-;sie-ben-tau-send-stes;sie-ben=tau-sends-tes
sodass;-2-;-3-;so=dass;so-dass
viertausendste;-2-;vier-tau-send-ste;vier=tau-sends-te
viertausendstem;-2-;vier-tau-send-stem;vier=tau-sends-tem
viertausendsten;-2-;vier-tau-send-sten;vier=tau-sends-ten
viertausendster;-2-;vier-tau-send-ster;vier=tau-sends-ter
viertausendstes;-2-;vier-tau-send-stes;vier=tau-sends-tes
zehntausendste;-2-;zehn-tau-send-ste;zehn=tau-sends-te
zehntausendstem;-2-;zehn-tau-send-stem;zehn=tau-sends-tem
zehntausendsten;-2-;zehn-tau-send-sten;zehn=tau-sends-ten
zehntausendster;-2-;zehn-tau-send-ster;zehn=tau-sends-ter
zehntausendstes;-2-;zehn-tau-send-stes;zehn=tau-sends-tes
zweitausendste;-2-;zwei-tau-send-ste;zwei=tau-sends-te
zweitausendstem;-2-;zwei-tau-send-stem;zwei=tau-sends-tem
zweitausendsten;-2-;zwei-tau-send-sten;zwei=tau-sends-ten
zweitausendster;-2-;zwei-tau-send-ster;zwei=tau-sends-ter
zweitausendstes;-2-;zwei-tau-send-stes;zwei=tau-sends-tes
Am 14.08.16 schrieb Lukas Sommer <sommerluk at gmail.com>:
> Hallo zusammen.
>
> 1.)
> Dass Listen für die Haupttrennstellen bereits mit „make“ erzeugt
> werden können, war mir gar nicht bewusst. Danke für den Hinweis!
> Schlussendlich habe ich das Node.js-Skript trotzdem nach Python
> portiert. Einerseits glaube ich, dass es durchaus praktisch sein kann,
> für die Ligaturmuster ein eigenes Skript zu haben. So können
> Feinjustierungen vorgenommen werden, ohne dass bestehende Anwendungen
> dadurch berührt würden. Andererseits hatte ich einen etwas anderen
> Ansatz gewählt: nur ein einziges Ligaturmuster für alle Varianten
> (alte/neue Rechtschreibung, deutsche/schweizer S-Regel). Das geht auch
> ganz gut. Das Skript arbeitet folgendermaßen:
>
> ‣ Uneindeutige Einträge (= alle Eintrage, die „[“ enthalten) werden
> einfach ignoriert.
> ‣ Unklassifizierte Einträge (= alle Einträge, die U+00B7 MIDDLE DOT
> „•“ enthalten) werden einfach ignoriert.
> ‣ Inkonsistente Einträge (= alle Einträge, die nicht in allen
> Rechtschreibvarianten dieselben Positionen für „<“, „>“ und „=“ haben)
> werden einfach ignoriert.
> ‣ Alle anderen Einträge werden verwendet.
>
> Dabei werden in der Praxis nur sehr wenige Einträge ignoriert. Für die
> aktuelle Wortliste habe ich die Log-Datei angehängt. Die
> inkonsistenten Einträge sind lediglich ein paar Zahlwörter und das
> Wort „sodass“. Deshalb glaube ich, dass man mit nur einem einzigen
> Muster gut alle Varianten abdecken kann.
>
> 2.)
> Das Ziel des Skripts ist es, eine einfach zu handhabende Lösung für
> Scribus anzubieten, die standardkonform ist und wirklich alles
> abdeckt. Daher bietet es sich an, mit nur einem Muster alle
> Sprachvarianten und alle theoretisch denkbaren Ligaturen (auch
> Schmuckligaturen und Schreibschriften und Fraktur) abzudecken – einige
> Schriftarten bieten tatsächlich sehr ungewöhnliche Ligaturen. Das neue
> Scribus bewegt den Textcursor nach Graphem-Clustern, was das Arbeiten
> mit dem Bindehemmer einigermaßen komfortabel macht. Dass einige andere
> Programme (Texteditoren, Word …) den Bindehemmer teilweise fehlerhaft
> interpretieren, stört mich da wenig. Davon abgesehen hat auch Scribus
> selbst noch Schwierigkeiten bei der Rechtschreibprüfung und der
> Worttrennung, wenn Bindehemmer vorhanden sind. (Übrigens gibt es wohl
> tatsächlich eine ISO-Norm, die ein Ersatzzeichen für den Bindehemmer
> definiert. Es ist auf Wikipedia
> [https://de.wikipedia.org/wiki/Bindehemmer] zu bestaunen.
>
> 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
> Im Moment hat die Wortliste allerding nicht „haf>te“, sondern
> „haf-te“. Bei Beugungsendungen wird also momentan die Ligatur nicht
> unterdrückt. Mich stört das nicht. Wenn man „er kauft“ mit Ligatur
> setzt (die Beugungsendung „t“ ist nicht durch einen Bindehemmer
> abgetrennt, aber auch keine eigene Silbe), dann halte ich auch „er
> kaufte“ mit Ligatur für vertretbar …
>
> 4.)
>> An welcher Stelle fügst du die Bindehemmer
>> ein? Bietet Scribus Zugriff auf interne
>> Datenstrukturen oder änderst du die
>> Eingabedatei?
> In der Tat bietet Scribus Zugriff auf interne Datenstrukturen. In
> Scribus-Dokumenten gibt es Textrahmen. Denen liegt ein Textinhalt zu
> Grunde, der „Story“ genannt wird. Es können sich auch mehrere
> verkettete Textrahmen dieselbe Story teilen. Scribus bietet vollen
> Zugriff auf diese Datenstruktur. (Die Daten sind in UTF16 kodiert. Der
> Index zählt nicht die Zeichen, sondern die UTF16-Codeunits. Alle
> Operationen beziehen sich jedoch auf ganze Zeichen und nicht auf halbe
> Surrogate-Paare – das führt schon mal zu etwas seltsamen Resultaten.)
>
> --
> Lukas Sommer
>
--
Lukas Sommer
Mehr Informationen über die Mailingliste Trennmuster