Ich muss in meinem Text Eingaben aus einem JSON verwenden. Manchmal enthält es UTF-8-Code. Zum Beispiel:
Belgi\u00e
cre\u00ebren
Wie kann ich eine solche Zeichenfolge in ConTeXt LuaTeX verwenden, sodass das Ergebnis ein korrekt geschriebenes niederländisches Wort ist?
België
creëren
Vorzugsweise als Teil eines Satzes, wobei %placeofbirthCandidate und %raisedinCountries durch den Inhalt des JSON ersetzt werden.
\par Je bent geboren in %placeofbirthCandidate. Je bent opgegroeid in %raisedinCountries.
\par Je bent geboren in Belgi\"e. Je bent opgegroeid in Nederland, Belgi\"e en Engeland.
Antwort1
Wenn Sie nur die folgenden Zeichen benötigen \ua000
, können Sie vermutlich verwenden
\def\u#1#2#3#4{\uchar"#1#2#3#4 }
Wenn Sie höhere Zeichen mit einem nachfolgenden Buchstaben verwenden müssen, \u
können Sie zusätzlich ua als Nicht-Buchstabenzeichen verwenden.
\catcode`\u=12
aber am besten machen Sie das in einer lokalen Gruppe, sonst geht etwas kaputt.
(Hierbei werden nur Luatex-Grundelemente verwendet, daher sollte es im Kontext funktionieren.)
Beachten Sie, dass Zeichen zwischen U+FFFF und U+10FFFF in JSON durch zwei Sequenzen dargestellt werden, \u
die die UTF-16-Kodierung des Unicode-Werts bezeichnen. Eine vollständige Lösung müsste also das erste Zeichen eines UTF-16-Ersatzpaars erkennen und mit dem folgenden \u
Code kombinieren.