我正在写一个函数,它返回有关角色的语言信息。对于预先组合的字符,这很容易。但是,我想说明变音符号。我相信这些在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))
中尝试。为什么会这样?
答案 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的小数形式。