寻找在emacs中结合字符的变音符号

时间:2012-07-22 16:11:08

标签: emacs unicode character

我正在写一个函数,它返回有关角色的语言信息。对于预先组合的字符,这很容易。但是,我想说明变音符号。我相信这些在Unicode中被称为“标记”或“组合字符”(参见平面U + 0300 - U + 036F)。

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

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

在生成的角色上运行C-u C-x =,您会看到类似“由以下角色组成”的内容

following-char之类的函数遗憾地只返回基本字符,即“e”,并忽略任何组合变音符号。有没有办法得到这些?

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

1 个答案:

答案 0 :(得分:2)

我认为diacritic e被视为两个字符。我把这个组合放在文件中 e(diacritic e)e

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

它给了我。

101 101 774 101

774是0306的小数形式。