[Trennmuster] Kombinierende Zeichen in der TeX Eingabe
Guenter Milde
milde at users.sf.net
Di Okt 31 21:44:28 CET 2023
Am 31.10.23 schrieb Werner LEMBERG:
> > → pdfTeX geht nicht mit kombinierenden Zeichen.
> Doch, doch, das geht, ...
> > Nicht mit 8-bit TeX, da sind kombinierende Zeichen nicht definiert
> > und werden (mit Fehlermeldung) ignoriert.
> ... denn das ist kein technisches Hindernis, man könnte durchaus eine
> Zeichenkodierung erschaffen, wo kombinierende Zeichen enthalten sind, ...
Jein.
Mit \DeclareUnicodeCharacter{0308}{\combiningDiaeresis} kann für
kombinierende Zeichen ein LICR Makro definiert werden.
Damit ist es aber immer noch "auf der falschen Seite":
Mit NFSS kann für "\einMakro a" eine spezielle Behandlung definiert werden,
z.b.
\DeclareTextComposite{\einMakro}{L1D}{a}{136}
oder
\DeclareTextCompositeCommand{\einMakro}{L1D}{a}{\'a}
aber für "a\einMakro" geht das nicht (jedenfalls nicht, ohne a "aktiv" zu
machen, was zu anderen Problemen führt)
Was geht, ist die Kombination zu einem Zeichen mit dem Ligatur-Mechanismus im
Font zu erledigen. In LGR klappt das z.B. für das sub-iota: a| → ᾳ
(In LGI auch für andere Diakritika.)
Allerdings handelt man sich auch Nachteile ein, wie z.B. fehlende
Unterschneidungen (vgl. Dokumentation zum "teubner" Paket).
Und für Deutsch müsste erst eine neue Fontkodierung mit entsprechenden
Ligaturen erfunden und umgesetzt werden, denn
> > In der Font-Kodierung T1 gibt es keine Entsprechung für die
> > kombinierenden Zeichen.
> ... aber wer tut sich das an :-)
Jeder, der deutschen Text mit 8-bit TeX setzt und nicht gerade OT1 nimmt (wo
die Trennfehler vorprogrammiert sind) oder eine neue 8-bit Fontkodierung
erfinden und dann noch Fonts dafür schreiben will.
> > Patterns wie "a(U+0308)1ro(U+0308)" müssten beim Erstellen einer
> > Formatdatei für 8-bit TeX aussortiert werden.
> Ja.
> > Wie der jetzige Muster-Lader des hyph-utf8 Projekts mit unbekannten
> > Zeichen im Mustersatz umgeht weiß ich nicht.
> Was bei uns in einer Datei ist, nämlich `mantel.1`, ist in 'hyph-utf8'
> auf zwei Dateien aufgeteilt (pro Muster), z.B. `loadhyph-de-1996.tex`
> und `conv-utf8-ec.tex`. Die `loadhyph-*`-Dateien (bzw. `mantel.1`)
> könnten erweitert werden, in dem beispielsweise ein Makro `\x` für
> Nicht-UTF-8-Kodierungen definiert wird, welches das Muster entfernt:
> ```
> \def\x#1{}
> ```
> Alle Muster mit kombinierenden Zeichen werden dann damit markiert:
> ```
> .är6schl
> \x{.a<U+0308>r6schl}
> ```
Für die Musterdatei wäre es sauberer, wenn das Aussortieren des gesamten
Musters erfolgt, sobald ein undefiniertes Zeichen erkannt wird
(anstelle von \errmessage{Hyphenation pattern file `@FILE_NAME at -@DATE at .tex'
corrupted!}%).
```
.är6schl
.a<U+0308>r6schl
```
Günter
Mehr Informationen über die Mailingliste Trennmuster