-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unicode 扩充a字体在某些情况下无法正常显示 #54
Comments
这个,你在 EXT-B字体 里面添加设置一个试试,看行不行 在 2016-09-08 22:39:02,"故乡风月" [email protected] 写道: 非常感谢作者的插件。目前遇到一些疑问,当我使用“方正兰亭黑_GBK”字体作为中文主要字体后,当遇到unicode 扩充a字体(中日韩统一表意文字扩展A),不能正常显示。只有使用其他包含有相对应的扩充A字体的字体文件时(如微软雅黑、楷体),才能正常显示扩充A文字,请问如何解决?能否对扩充A文字单独设置一个字体(如HanaMinA.ttf)? 操作环境:Windows10,GNU Emacs 25.0.94.2 (x86_64-w64-mingw32) — |
你为什么一定要使用这个字体呢,换一个其他字体不可以吗? 如果一定要使用这个字体,可能的方式是:
上面的代码没有测试,你也许需要自己调整 |
另外吐槽一句: 你的兴趣好高大上。。。。。。 |
有点诡异,ext-a正常,ext-b就不正常了?使用了以下的代码,请大大参考。
之前的回复多谢大大,已经测试成功。特别好的地方是,如果当前字体(如楷体)包含ext-a字形的,则不会改变当前字体(即维持楷体),否则就应用代码中相应字体。如无意外,可以关闭了。 另:请别吐槽:) ;;测试ext-a字体;;;;;
(defun cfs-set-ext-a-fonts (fontsizes-list)
(set-fontset-font
"fontset-default" nil
(font-spec :name "HanaMinA"
:size (nth 1 fontsizes-list)
:weight 'normal
:slant 'normal)
nil 'prepend))
(add-hook 'cfs-set-font-finish-hook 'cfs-set-ext-a-fonts) |
有可能,因为ext-b也是用prepend设置的,也许你应该在hook中,强制设置exta部分的字体,具体怎么整,我也不知道。。。。 |
我估计你应该类似下面的设置: (#x24b6 . #x24fe) 需要你改成 exta 的范围,具体怎么改,我对此不太了解。
|
我找到了,你运行 (list-fontsets t) 就可以弹出一个buffer,那里面就分成许多区域,自己找找 |
我输入了以下代码, ``(list-fontsets t)`运行后,看不懂应该输入哪 个范围。 (defun cfs-set-ext-a-fonts (fontsizes-list)
(set-fontset-font
"fontset-default" '(#x3400 . #x4DB5)
(font-spec :name "HanaMinA"
:size (nth 1 fontsizes-list)
:weight 'normal
:slant 'normal)
nil 'prepend))
(add-hook 'cfs-set-font-finish-hook 'cfs-set-ext-a-fonts) |
我也搞不清楚是哪个范围,底层的东西,不太明白,实在不行,找一个其他字体用吧,省事 |
试试下面的的代码:
|
按红线部分,你可以了解unicode-bmb 汉字的分布 |
运行了 |
你选择的字符不是 unicode-bmp 范围内吧? |
这个你可以通过调整 那个范围来实现, 你只要设置楷体不包含的字符的范围 不就可以了,可以设置一个比较小的范围的 |
另外一种方式,就是使用 append 或者 prepend 参数,和 字符范围配合,应该可以实现你需要的功能 |
我明明选了”䀹“这个字阿,其他的字是可以的 |
测试这个
|
两个都试过,都不行,维持使用"微软雅黑" |
不可能吧,我这里测试可以的呀? |
你说的是这意思吧? |
我觉得是,你默认的中文字体,没有那个字吧? |
另外,重启一下 emacs 试试 |
1.楷体是有”䀹“字能正常显示的。 |
我这里,楷体不能显示,因为 cfs 里面的楷体是: 楷体-gb2312 |
AR PL UKai CN 可以显示这个字 |
你让 那个字体 显示为楷体,然后 describe-char ,看看什么字体,我测试了许多楷体,可惜,没有一个能显示这个字 |
北京中易中标电子信息技术有限公司 中易楷体(SimKai),是由北京中易中标电子信息技术有限公司制作并持有版权的一种 TrueType字体。中易楷体是随着简体中文版Windows一起分发的字体,文件名SimKai.ttf。在Windows XP及更早操作系统中,中易楷体只包含GB2312字形,字体名称显示为楷体_GB2312。从Windows Vista起,中易楷体已涵盖GBK中的所有字形,显示名称也变为楷体。 |
我在这里测试了一下,我这里可以 |
你是用的 spacemacs 吗? 有没有开启spacemacs fallback 字体支持? (cfs-set-spacemacs-fallback-fonts),禁用试试 |
是的,我在用spacemacs,已经禁用了 |
好吧,我这里没问题,不知道你那边为什么会出现问题。。。。。 |
这个就暂时关闭了。。。。 |
为什么我的 describe-char 显示 |
我不知道,我默认coding 是 utf-8-unix ,也许和这个有关系 |
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(setq file-name-coding-system 'gbk) 大大,我是这样设置的,您的设置可以贴出来吗 |
https://github.com/tumashu/emacs-helper/blob/master/eh-basic.el 另外,你也可以先禁用 spacemacs,使用纯emacs 来测试一下,spacemacs 太庞大了,不知道里面是不是有一些特殊的设置 |
先谢一个,现在工作,日后继续测试,感谢! |
恩,这个问题先暂时就到这吧。。。。 |
成功了,使用了大大的配置,终于得到想要的结果 ;; Charset 设置
(use-package mule
:ensure nil
:config
(set-language-environment "UTF-8")
(set-buffer-file-coding-system 'utf-8-unix)
(set-clipboard-coding-system 'utf-8-unix)
(set-file-name-coding-system 'utf-8-unix)
(set-keyboard-coding-system 'utf-8-unix)
(set-next-selection-coding-system 'utf-8-unix)
(set-selection-coding-system 'utf-8-unix)
(set-terminal-coding-system 'utf-8-unix)
(when (eq system-type 'windows-nt)
(set-selection-coding-system 'gbk-dos)
(set-next-selection-coding-system 'gbk-dos)
(set-clipboard-coding-system 'gbk-dos))) |
这个问题确实有点诡异。。。。 |
一个可能的问题是: 你当前的 EXTB字体名称不在列表里面: ("HanaMinB" "SimSun-ExtB" "MingLiU-ExtB" "PMingLiU-ExtB" "MingLiU_HKSCS-ExtB") 有时候,相同的字体在不同的系统里面,字体名称是不一样的 |
用 cnfonts-insert-fontname 可以查看查看 |
cnfonts-insert-fontname 的确是有 HanaMinB 的,我同时也安装了HanaMinA,好像改哪个都没有用。 |
不知道是不是和coding有关系,我关闭其他配置看看 |
用 emacs -Q 测试一下,看是不是其他地方的配置覆盖了cnfonts的设置了 |
没太懂,用emacs -Q怎么测试啊 |
问题还是比较诡异的,emacs -Q ,直接设置这个字体也没有作用。 |
好在26版本工作已经正常了 |
非常感谢作者的插件。目前遇到一些疑问,当我使用“方正兰亭黑_GBK”字体作为中文主要字体后,当遇到unicode 扩充a字体(中日韩统一表意文字扩展A),不能正常显示。只有使用其他包含有相对应的扩充A字体的字体文件时(如微软雅黑、楷体),才能正常显示扩充A文字,请问如何解决?能否对扩充A文字单独设置一个字体(如HanaMinA.ttf)?
操作环境:Windows10,GNU Emacs 25.0.94.2 (x86_64-w64-mingw32)
The text was updated successfully, but these errors were encountered: