[Trennmuster] Kombinierende Zeichen in der TeX Eingabe
Guenter Milde
g.milde at quantentunnel.de
Do Nov 2 18:04:41 CET 2023
Am 2.11.23 schrieb Werner LEMBERG:
> >> >> > oder Nachbearbeitung der Muster: ä1rö -> ä1rö, a(U+0308)1ro(U+0308)
> >> >> > (aus 1 mach 2)?
> >> >
> >> >> Wohl letzteres – das müßte doch eigentlich ausreichen, oder?
> >> >
> >> > Wie gesagt, es kann Probleme mit Umlauten am Wortanfang oder -ende
> >> > geben, da dann für den Trenn-Algorithmus 2 Zeichen am Rand stehen
> >> > und Ä-ther oder Windb- ö getrennt werden könnte.
> >
> >> Hmm. Inwieweit ist das anders als die Auflösung in »Aether« oder
> >> »Windboe«, was wir bereits haben?
> >
> > Ich dachte, die Umlaut-Ersatzschreibung wird vor dem Patgen-Lauf zur
> > Wort-Stichprobe dazugefügt...
> Ja. Falls Nachbearbeitung nicht adäquat funktioniert, fügen wir halt
> die Wörter mit Umlauten in allen NFC- und NFD-Kombinationen ein. Wenn
> `patgen` ein paar Sekunden länger braucht, tut mir das nicht weh.
Ich denke, Mischformen ("Flötento(U+0308)ne", etc.) müssen wir nicht
unbedingt berücksichtigen.
> > Jetzt stellt sich die Frage, ob Ae-ther korrekt ist.
> Meiner Meinung nach sollte das vollständig äquivalent zu »Ä-ther«
> behandelt werden, d.h., nach »Ae« kommt eine Gesangstrennstelle und
> sonst nichts. So machen wir das ja auch bereits, oder?
In der wortliste steht "Äther;Ä·ther".
Die Ersatzschreibung wird automatisch erzeugt und vor der Mustererzeugung
hinzugefügt.
Gegenwärtig trennen die aktuellsten Muster bei mir "Aether" als "Ae-ther".
Wenn wir Ae-ther nicht wollen, besteht Handlungsbedarf :(
> >> Ich habe darüber nachgedacht und keine Lösung gefunden, die einfach
> >> zu implementieren wäre, daher mein Vorschlag für ein `\x`-Makro,
> >> was ganz simpel ist. Fällt Dir was besseres ein?
> >
> > Nicht direkt, abgesehen von einem besseren Namen wie
> > \OnlyForUTFAcht.
> 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...
> > Ich glaube bei expl3 könnte etwas passendes dabeisein, zumindest
> > gibt es da eine Reihe interessanter Textverarbeitungsfunktionen. So
> > ist z.B. \MakeUppercase inzwischen vor "inputenc" angesetzt und
> > arbeitet mit der Unicode Datenbank.
> Was genau meinst Du? Soweit ich erkennen kann, hat expl3 nur
> Unterstützung, um NFD auszugeben (via `\codepoint_to_nfd:n`), aber
> nicht das Gegenteil.
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...
Mehr Informationen über die Mailingliste Trennmuster