2 # Dieses Perl-Skript wendet die TeX-Trennmusterdatei $1 auf den Datenstrom
3 # an, wobei $2 als Translationsdatei benutzt wird (das ist diejenige Datei,
4 # die `patgen' als viertes Argument benötigt).
6 # Folgende Zeichen werden vor der Weiterverarbeitung aus der Eingabe
11 # Ist Option `-1' nicht gegeben, werden Trennungen direkt nach dem ersten
12 # und vor dem letzten Buchstaben in der Ausgabe entfernt, wie z.B. bei
13 # deutschen Trennungen erforderlich.
15 # Dieses Skript benützt patgen, nicht TeX! Die Trennmusterdatei darf daher
16 # keine TeX-Konstrukte (Makros u.ä.) enthalten.
18 # Aufruf: perl apply-pattern.pl trennmuster german.tr < eingabe > ausgabe
21 # Dieses Perl-Skript extrahiert einfache Wortlisten aus der
22 # »wortliste«-Datenbank im Langformat (oder ähnlichen Dateien mit gleichem
23 # Dateiformat), die beispielsweise als Eingabedateien für »patgen« verwendet
28 # perl extract-tex.pl [Optionen...] [liste1 liste2 ...] > input.patgen
30 # Die Eingabedateien müssen in UTF-8 kodiert sein; ist keine Eingabedatei
31 # angegeben, verwendet das Skript die Standardeingabe. Beispiele:
33 # perl extract-tex.pl -l < ../wortliste > wortliste.ref.latin9
34 # perl extract-tex.pl -t ../wortliste > wortliste.trad.utf8
38 # perl extract-tex.pl -1 ...
39 # perl extract-tex.pl -t -1 ...
40 # perl extract-tex.pl -s -1 ...
42 # liefern jeweils die gleiche Ausgabe wie
44 # sprachauszug.py -l de-1996,de-1996-x-versal ...
45 # sprachauszug.py -l de-1901,de-1901-x-versal ...
46 # sprachauszug.py -l de-CH-1901,de-1901 ...
53 # -s Option »-t« wählt die traditionelle deutsche Rechtschreibung aus,
54 # Option »-s« die traditionelle (deutsch)schweizerische Rechtschreibung.
55 # Wenn weder »-s« noch »-t« gesetzt ist, wird die reformierte deutsche
56 # Rechtschreibung ausgewählt.
58 # -x Ignoriere Optionen »-g«, »-u« sowie »-1« und gib die
59 # sprachspezifischen Felder unbearbeitet aus (inklusive Kommentare).
61 # -g Gib Wörter mit gewichteten Trennstellen aus. Optional kann ein
62 # ganzzahliges Argument angegeben werden: Wert 0 gibt alle gewichtete
63 # Trennstellen aus inklusive »-« (das ist der Standardwert), Wert 1 nur
64 # die Trennstellen mit der höchsten Wichtung (ohne »-«), Wert 2 die
65 # Trennstellen mit der höchsten und zweithöchsten Wichtung (ohne »-«),
68 # Beachte, dass bei nahe beieinanderstehenden Trennstellen derzeit keine
69 # zusätzliche Wichtung vorgenommen wird. Beispielsweise ist in dem Wort
73 # die Trennung »abbe-rufen« schlecht, weil ganz nahe der optimalen
74 # Trennstelle (nach »ab«). Das Skript gibt trotzdem diese Trennstelle
77 # -u Verhindere die Ausgabe von Wörtern mit Markern für unerwünschte
78 # Trennungen (z.B. »An<=al-.pha=bet«). Wenn nicht gesetzt, werden als
79 # ungünstig markierte Trennstellen entfernt (z.B. »An<=alpha=bet«).
81 # -U Gebe Wörter mit Nicht-ASCII-Zeichen auch in Umschrift aus (z.B.
82 # »loe-sen«, »Haen-de«). Ausgenommen davon sind Wörter mit »ß«, weil
83 # die entsprechenden Formen mit »ss« bereits in der Wortliste enthalten
86 # -1 (Ziffer 1) Verhindere einbuchstabige Trennungen. Ist die Option
87 # gesetzt, wird die erste dieser Trennungen unterdrückt, falls beide
88 # Trennstellen gleichwertig sind (z.B. »eu-ro-päi-sche« statt
89 # »eu-ro-pä-i-sche«), anderenfalls bleibt die stärkere erhalten (z.B.
90 # »päd<ago-gisch« statt »pä-d<a-go-gisch«).
92 # -v Verhindere die Ausgabe von Versalformen, wo »ß« durch »ss« ersetzt
95 # -l (Kleinbuchstabe L) Konvertiere die Ausgabe von UTF-8 nach latin-9.
98 # -*- coding: utf-8 -*-
100 # Dieses Skript generiert deutsche Trennmuster.
104 # sh make-full-pattern.sh words.hyphenated german.tr
107 # Fügt mehrere Wortlisten zu einer sortierten Gesamtliste der einfachen
108 # (ungetrennten) Wörter)zusammen.
110 # Eingabe: ein oder mehrere Dateinamen.
111 # Ausgabe ist nach stdout.
113 diff-patgen-input.awk
114 # Dieses Skript liest eine DIFF-Datei der Patgen-Eingabelisten (siehe
115 # Skript diff-patgen-input.sh) und zerlegt sie in Wörter,
117 # * die neu hinzugefügt,
119 # * deren Trennung korrigiert und
120 # * deren Klein- und Großschreibung korrigiert
122 # wurde. Die Wörter werden in Dateien der Form <Eingabedatei>.<ext>
123 # gespeichert. <ext> ist entsprechend 'added', 'removed', 'case' oder
124 # 'hyph'. Beim Aufruf des Skripts muss die Variable 'ftr' mit dem Namen
125 # der Translate-Datei für Patgen vorbelegt werden:
126 # gawk -v ftr=<translate datei> ...
129 # -*- coding: utf-8 -*-
131 # Dieses Skript erzeugt Differenzbilder (diff) für die
132 # Patgen-Eingabelisten zwischen zwei angegebenen Commits. Wird nur ein
133 # Commit angegeben, wird als Zielcommit "master" verwendet. Die
134 # Ausgabedateien werden als Dateien
136 # dehyph*-x/<Start-Commit-Hash>-<Ziel-Commit-Hash>.diff
138 # in Verzeichnissen gespeichert, die der jeweiligen Rechtschreibung
139 # entsprechen. Start- und Ziel-Commit können in jeder gültigen
140 # Git-Syntax angegeben werden. Für die Dateinamen werden die
141 # entsprechenden abgekürzten alphanumerischen Commit-Hashes
145 # $ sh prepare-wordlist.sh < Textdatei
147 # listet alle Wörter mit mindestens vier Buchstaben, die keine römischen
148 # Zahlen sind, aus einer gegebenen Textdatei auf und …
150 # $ sh prepare-wordlist.sh < Textdatei | grep -Fixvf Prüfliste
152 # … prüft sie gegen eine ebenfalls gegebene Prüfliste von bekannten Wörtern.
153 # Eine solche Prüfliste kann beispielsweise mit
155 # perl extract-tex.pl ../wortliste | sed 's/-//g' > wortliste.ref
160 Syntax-Test der Wortliste. Benötigt ``texlua`` als Interpreter.
162 Aufruf: ``texlua validate.lua < ../wortliste``
164 -h, --help print help
165 -s, --statistics output record statistics
168 Sortiere eine oder mehrere Dateien im "Wortliste-Format".
170 Aufruf: siehe ``./sort.py -h``
172 Die `locale` Kodierung muss auf "utf8" gesetzt sein, z.B. "de_DE.utf8".
173 Unter Windows kann ggf. auch der Aufruf mit "python -X utf8" helfen.
178 ./sort.py <../wortliste > ../wortliste.sortiert
180 Zusammenfügen und sortieren:
181 ./sort.py liste.c liste.a liste.b > liste.abc
183 Einsortieren in die nach Alphabet gesplitteten Dateien „wl-a“ bis „wl-z“:
184 ./sort.py neu.todo wl-* --split -o wl-
186 Einsortieren und Patch erstellen:
187 ./sort.py ../wortliste neu.todo --diff -o ../wortliste.patch
189 Sortiere die Wortliste und erstelle einen Patch im "unified diff" Format.
190 Anwenden des Patches: ``patch wortliste < wortliste-sortiert.patch``
192 Für einen Test der inneren Konsistenz der Wortliste
193 (Doppeleinträge, Übereinstimmung Schlüssel-Trennmuster) siehe
194 skripte/python/werkzeug.py.
197 Wandlung zwischen Lang- und Kurzformat der Wortliste (8-Spalten/5-Spalten)
199 Aufruf: siehe ``./umformatierung.py -h``
203 umformatierung.py -k ../wortliste > ../wlst
205 umformatierung.py ../wlst > ../wortliste.roundtrip
209 Perl-Module und Skripte zur Arbeit mit der Wortliste. Siehe
213 Python-Module, Hilfsdateien und experimentelle Skripte zur Arbeit mit der
214 Wortliste. Siehe python/MANIFEST
217 Lua-Module und Hilfsdateien zur Arbeit mit der Wortliste. Enthält
218 u.a. eine formale Beschreibung zulässiger Wörter und Datensätze in der
219 Wortliste. Siehe lua/MANIFEST.