【发布时间】:2012-07-22 16:11:08
【问题描述】:
我正在编写一个函数,它返回有关该字符的语言信息。这对于预先组合的角色来说很容易。但是,我想解释变音符号。我相信这些在 Unicode 中被称为“标记”或“组合字符”(参见平面 U+0300 - U+036F)。
例如,要在字符 e 上放置中心化变音符号 (U+0306):
e C-x 8 <RET> 0306 <RET>
在结果字符上运行C-u C-x =,您将看到类似“由以下字符组成̆”之类的内容
不幸的是,诸如following-char 之类的函数只返回基本字符,即“e”,并忽略任何组合变音符号。有没有办法得到这些?
编辑:slitvinov 指出生成的字形由两个字符组成。如果您将点放在上述代码创建的字形之前,并在运行forward-char 之前和之后执行(point),您将看到点增加2。我想我可以通过这种行为破解解决方案,但似乎在里面progn 语句(或函数定义),forward-char 仅向前移动一个点...在 defun 或 (progn (forward-char) (point)) 中尝试。为什么会这样?
【问题讨论】: