[Trennmuster] Kombinierende Zeichen in der TeX Eingabe

Guenter Milde milde at users.sf.net
Di Nov 7 14:54:24 CET 2023


Hallo Werner,

Am  2.11.23 schrieb Werner LEMBERG:

> > Gegenwärtig trennen die aktuellsten Muster bei mir "Aether" als
> > "Ae-ther".

> Das kann eigentlich nicht sein.  Ich habe gerade nachgeschaut: in der
> Eingabeliste für `patgen`, die während der Mustererstellung erzeugt
> wird, befindet sich ganz korrekt »Aether« (ohne Trennung). 

Das "hyphenation.py" Skript verwendete eine veraltete Musterdatei.
Ist jetzt korrigiert und nun habe auch ich "Aether" ohne Trennung.


> >> Warum ein langer Name?  Das Laden der Trennmuster findet innerhalb
> >> von `\begingroup ... \endgroup` statt; ich sehe daher keinerlei
> >> Notwendigkeit, die Datei unnötig größer zu machen.
> > 
> > Als self-documenting code. Aber vielleicht nicht ganz so lang...

> Also das tut ein Kommentar auch vor der trivialen Definition von `\x`.

Aber den sieht man 12500 Zeilen weiter unten nicht mehr...


Ein Problem mit einer solchen Hilfsfunktion ist, dass andere Programme
(OpenOffice, Android, ...) sich daran verschlucken.
Die "hyphenation.org" Gruppe hat schreibt dazu:

  Before a new "pattern-revolution" starts,
  please try to follow some guidelines if possible:
  
  - \lccode is *forbidden*, and I really mean it
  - all the patterns should be in UTF-8
  - the only "allowed" TeX commands in patterns are: \patterns, \hyphenation,
    and if you really cannot do without, also \input and \message
  - in particular, please no \catcode or \lccode changes,
    they belong to loadhyph-foo.tex,
    and no \lefthyphenmin and \righthyphenmin,
    they have no influence here and belong elsewhere
  - \begingroup and/or \endinput is not needed
  - feel free to do whatever you want inside comments
  
  We know that TeX is extremely powerful, but give a stupid parser
  at least a chance to read your patterns.

  --- https://github.com/hyphenation/tex-hyphen/blob/master/hyph-utf8/doc/generic/hyph-utf8/HISTORY


> > Meine Idee wäre eine Funktion, die 
> > 
> > * mehrere Muster als Leerzeichen-getrennten String als Argument
> >   annimmt,
> > * dieses in einzelne Muster zerlegt
> > * für jedes Muster eine Übersetzung nach einer Code-Tabelle vornimmt
> >   und
> >   - wenn alle Zeichen übersetzt werden können das Resultat ausgibt
> >   - wenn ein Zeichen nicht übersetzt werden kann, dieses Muster
> >     überspringt.
> >   
> >   Bsp: \UtfAchtToTeEins{grün Škoda λογο groß}
> >        → gr"fdn gro"ff
> > 
> > Die Funktion `\text_titlecase_all:n(n)` schreibt alle Wörter des
> > Arguments mit großem Anfangsbuchstaben. D.h. es gibt eine Funktion,
> > die ähnliche Aufgaben wie meine Zielfunktion ausführt:
> > - Zerlegen der Eingabe an Leerzeichen
> > - Ersetzen von Zeichen
> > Ihre Definition könnte ggf. bei der Implementierung meiner
> > Zielfunktion als Vorbild oder Ausgangspunkt dienen.  Ein
> > LaTeX3-Experte möglicherweise helfen...

> Die Idee klingt nett, ist aber meiner Meinung nach völlig fehl am
> Platze im Rahmen von Trennmustern.  Wir können einfach nicht
> voraussetzen, daß beim Laden von Trennmustern stets die
> LaTeX3-Maschinerie zur Verfügung steht!

Soviel ich weiß, ist der l3kernel inzwischen Voraussetzung in jeder LaTeX
Installation. Das hilft natürlich nicht mit "plain", aber unterstützen wir
das noch?

Aber die Muster "wortweise" zu lesen und zu verarbeiten sollte auch mit
"primitivem" TeX möglich sein...

Günter



Mehr Informationen über die Mailingliste Trennmuster