[Trennmuster] Trenn-stel-len=ab-frage=skript

Stephan Hennig mailing_list at arcor.de
Mi Aug 7 21:33:43 CEST 2013


WARNING: This e-mail has been altered by MIMEDefang.  Following this
paragraph are indications of the actual changes made.  For more
information about your site's MIMEDefang policy, contact
MIMEDefang Administrator's Full Name <postmaster at dante.de>.  For more information about MIMEDefang, see:

            http://www.roaringpenguin.com/mimedefang/enduser.php3

An attachment of type text/plain, named showhyphens-latex.sh was removed from this document as it
constituted a security hazard.  If you require this document, please contact
the sender and arrange an alternate means of receiving it.


An attachment of type text/plain, named showhyphens-lualatex.sh was removed from this document as it
constituted a security hazard.  If you require this document, please contact
the sender and arrange an alternate means of receiving it.

-------------- nächster Teil --------------
Am 06.08.2013 15:00, schrieb Georg Pfeiffer:

> Hallo, nach dem ich nun selbst Trennmuster generieren und einsetzen
> kann, suche ich eine Möglichkeit, mögliche Trennstellen (von außen)
> skriptweise abzufragen.

Was hast du denn vor?  Nur Sichtkontrolle oder noch mehr?


> TeX::Hyphen verspricht, das zu tun, tut aber nicht zuverlässig. Auch
> wenn man ihm die richtige Trennmusterdatei zuweist, trennt es falsch,
> wo LaTeX richtig trennt. Gibt es nicht eine alternative Möglichkeit?

Zum einen kannst du das Kommando \showhyphens in LaTeX verwenden.  Ich
habe zwei Skripten angehängt, welches als Parameter eine UTF-8-kodierte
Eingabedatei, die die zu trennenden Wörter enthält.  Die Wörter werden
jeweils mit LaTeX & Babel bzw. LuaLaTeX & Polyglossia getrennt und die
entsprechenden Zeilen mittels awk aus der LOG-Datei herausgefischt. Bei
LaTeX & Babel ist die Ausgabekodierung daher T1 (Cork).  (Per recode
könnte man das noch in UTF-8 wandeln.)

Alternativ kannst du auch das Perl-Skript skripte/apply-pattern.pl
verwenden.  Dieses lässt die Wörter direkt durch patgen trennen.
Voraussetzung ist, dass eine Musterdatei in Latin-1-Kodierung vorhanden
ist.  Man kann zum Beispiel dehypht-x/pattern.8 verwenden:

>   perl skripte/apply-pattern.pl dehypht-x/pattern.8 daten/german.tr < in > out

Zu beachten ist, dass beide Wege unter Umständen zu unterschiedlichen
Ergebnissen führen.  LaTeX bzw. Babel/Polyglossia enthalten einige
Fehler, die manchmal die Trennung beeinflussen.

1. Zum Beispiel werden, wenn falsche Ligaturen im Quelltext
   durch "| ausgezeichnet werden, \lefthyphenmin und
   \righthyphenmin nicht immer korrekt berücksichtigt und
   Ligaturen durchaus getrennt, obwohl sie wegen hoher
   hyphenmin-Werte ungetrennt bleiben sollten.

2. Bei Verwendung der Kürzel für die Dreikonsonantenregel trennt
   Babel im hinteren Wortteil zum Beispiel gar nicht:

     Kunststo"ffensterrahmen  =>  Kunst-stoff-fensterrahmen

   Polyglossia trennt wiederum beide Wortteile unabhängig
   voneinander:

     Kunststo"ffensterrahmen  =>  Kunst-stoff-fen-ster-rah-men

   Beide Trennungen sind jedoch falsch.  Den Mustern nach sollte

     Kunst-stoff-fenster-rah-men

   getrennt werden, die irreführende Trennung Kunststoffen-
   sterrahmen also entfallen.  Mit LaTeX ist das bisher nicht
   möglich.


> Etwa mit Lua oder so?

Irgendwo hatte ich noch eine Implementierung des Trennalgorithmus in
Lua.  Wenn ich es wiederfinde, melde ich mich.

Viele Grüße,
Stephan Hennig



Mehr Informationen über die Mailingliste Trennmuster