我正在编写一个函数,该函数返回有关该字符的语言信息。这对于预先组合的角色来说很容易。但是,我想解释变音符号。我相信这些在 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
只会向前移动一个点...在 adefun
或 with中尝试(progn (forward-char) (point))
。为什么会这样?