Hallo Frakturfreak,

Christian Kluge ſchrieb am 09.07.2009 16:31 Uhr:
Danke, dass es wieder „richtig“ wird, aber ginge das nicht über Compose? Wäre auch praktisch. :-) ♫ßß scheint ja noch nicht belegt zu sein. ;-)

♫ßß=ſs in die Compose einzutragen, wäre rein technisch gesehen überhaupt kein Problem, da hast Du vollkommen Recht.

Aber ich wollte noch mehr … eben das ich noch nicht einmal mehr ♫ eingeben muss, sondern dass ich direkt »Grußß« und nicht »Gru♫ßß« schreiben kann, um »Gruſs« zu erhalten (da es im Deutschen keine Wörter mit »ßß« gibt). Deshalb wird das ß bei meinem Treiber auch nicht direkt nach dem Tastendruck ausgegeben, sondern bis zur Eingabe des nächsten Buchstabens zurückgehalten (eben damit die Eindeutigkeit erhalten bleibt und der Treiber nichts löschen muss).

Von daher: It’s not a bug, it’s a feature :-).


Viele Grüße,
Dennis-ſ


PS: Hier nochmal die entsprechende E-Mail von Mœsi mit den technischen Einzelheiten:


Matthias Wächter ſchrieb am 05.05.2009 09:19 Uhr: »[NeoVars] Lang-ſ-Modus: ſs≠ß«
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




Antwort per Email an