我正在编写一个函数,该函数返回有关该字符的语言信息。这对于预先组合的字符很容易。但是,我想考虑变音符号。我相信这些在 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))
.为什么会这样?
最佳答案
我想 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的十进制形式。
关于emacs - 在 emacs 中查找字符的组合变音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11601864/