在emacs中查找字符的组合变音符号



我正在编写一个函数,该函数返回有关该字符的语言信息。这对于预合成的字符来说很容易。然而,我想解释一下变音符号。我相信这些在Unicode中被称为"标记"或"组合字符"(参见平面U+0300-U+036F)。

例如,在字符e:上放置中心化变音符号(U+0306)

e C-x 8 <RET> 0306 <RET>

在生成的字符上运行C-u C-x =,您会看到类似于"用以下字符组成̆"的

不幸的是,像following-char这样的函数只返回基本字符,即"e",而忽略任何组合变音符号。有办法拿到这些吗?

EDIT:sli特维诺夫指出,生成的字形由两个字符组成。如果您将点放在上面代码创建的字形之前,并在运行forward-char之前和之后执行(point),您将看到点增加2。我想我可以通过这种行为破解一个解决方案,但在progn语句(或函数定义)中,forward-char似乎只向前移动了一个点。。。在defun(progn (forward-char) (point))中尝试。为什么会这样?

我认为diacritic e被视为两个字符。我把这个组合放在文件里了CCD_ 10。

ĕee
(char-after 1)
(char-after 2)
(char-after 3)
(char-after 4)

它给了我

101 101 774 101

774是0306的十进制形式。

最新更新