Hallo Dennis!
Dennis Heidsiek schrieb:
Und da es in der deutschen Sprache kein einziges Wort mit Doppel-ß gibt
(¿Gegenbeispiel?) hatte ich eben die verrückte Idee, //über meine
Custom.ahk im Lang-ſ-Modus die automatische Ersetzung ßß→ſs mit
einzubauen³. Was haltet ihr davon?⁴
es kommt darauf an, wie du es umsetzen wills. Meinst du wirklich
Eingabe Ausgabe
ß → ß
ß → <backspace> ſ s
oder etwas mit Compose wie in den Fußnoten angegeben? Letzteres ist
absolut zu bevorzugen, da eine wichtige Änderung, ich glaube, noch im
alten ahk-neo war, nicht mit Backspace zu arbeiten, d.h. ein einmal
geschriebener (ausgegebener) Buchstabe bleibt auch.
Ab/seit r1814 gibt es in neo-vars neben dem Umweg über ein
vorangedrücktes Compose die Möglichkeit, den Compose-Mechanismus
selektiv tolerant gegen Fehleingaben zu machen. Statt dass dann die
gesamte bisherige Compose-Sequenz verworfen wird, wenn ein unbekanntes
Zeichen angehängt wird, werden dann sowohl die bisherige Compose-Sequenz
(bzw. ein Ersatzzeichen) und das darauf folgende, nicht passende Zeichen
ausgegeben. Für die gleiche Funktion ohne diesen Patch bräuchte man für
alle Kombinationen dieser Compose-Sequenz mit einem nachfolgenden
Zeichen eine entsprechende Compose-Sequenz in der Compose-Datei, was
diese unnötig aufbläht.
Eingabe Ausgabe
ß →
ß → ſ s
bzw.
Eingabe Ausgabe
ß →
<key x> → ß <key x>
– Mœsi
Im Log zu r1814 liest sich das so:
CF%Comp% kann nun bei fehlgeschlagenem Compose bewirken, dass eine bis
dahin gültige Sequenz nachträglich ausgegeben wird, wenn ein unbekanntes
Zeichen folgt.
Setzt man beispielsweise
CMU0000DF := 1
CDU0000DFU0000DF := "U00017FU000073"
dann bewirken die ersten beiden Zeilen, dass ein einzelnes ß erst mal
„tot“ wirkt, und mit einem zweiten ß wird „ſs“ draus.
Man kann nun diese Zeile anhängen:
CFU0000DF := "U0000DF"
Das bewirkt nun, dass das erste ß, wenn es von irgend einem anderen
Zeichen gefolgt wird, mit diesem dann (verzögert) ausgegeben wird, so,
als gäbe es für alle Compose-Möglichkeiten aus ß und anderem Zeichen
eine entsprechende Compose-Sequenz, die eben diese beiden Zeichen als
Ergebnis liefert. Normaler Weise würden beide Zeichen verschluckt
werden, da es keine entsprechende Compose-Sequenz gibt.
Ohne CFU0000DF:
ßß → ſs
ßa →
ßb →
Mit CFU0000DF:
ßß → ſs
ßa → ßa
ßb → ßb