-
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
[solved] 中文省略号显示宽度不正确 #64
Comments
(add-hook 'cfs-set-font-finish-hook 'my-set-exta-fonts) 这个执行没? |
两个函数都挂上hook了。之前复制代码的时候漏了。 (add-hook 'cfs-set-font-finish-hook 'my-set-symbol-fonts)
(add-hook 'cfs-set-font-finish-hook 'my-set-exta-fonts) |
这个有问题在开,我先关了 |
能给个upstream的链接吗? |
upstream 是什么东东? |
上游。或者说,既然有同样的问题在开,给个链接? |
... 我的意思是, 你好长时间没有反馈细节, 我以为你已经解决这个问题了, 所以我准备关了这个issue, 你再有类似的问题, 就 reopen 这个 issue |
我在你问hook有没有挂的当天就回复了…… |
你不是说你开始漏了嘛.... |
啊……是我没说清楚。我的意思是,我实际有这两行代码,在往github上贴的时候贴漏了。 |
咱们的中文水平有待提高, 是这麽回事, chinese-fonts-setup 一般是不设置 符号 字体的, 所以chinese-fonts-setup 添加了一个 hook, 让用户通过 hook 自己设置 符号字体的名称和大小, 你可以将 (fontsize (nth 0 fontsizes-list)) 更改为 (fontsize 50) 来看看 hook 有没有生效, 然后就慢慢调整 这个 fontsize 就可以了 |
另外 "思源黑体 CN" 这个字体名称是怎么来的? cfs-insert-fontname 命令运行后, 备选项里面有这个名字没? |
我这两天也研究了一下,symbol 的字体确实应该保持原样,因为有大量其他字体需要用到英文字体大小的symbol字符。我希望手工把“…”这个字符设置成汉字的字体,这样“……”就占两个格子的位置。而且事实上emacs进行字体宽度计算的时候,也把“…”当成汉字的字体大小,这样就导致org-mode里的table对齐有问题。 |
也许这是字体的bug, 我这里试验了一下, 可以对齐, 我用 微米黑 |
文泉驿等宽微米黑?我试了一下,不行。能给张截图吗? |
在 2017-04-22 08:55:41,"yangsheng6810" <[email protected]> 写道:
文泉驿等宽微米黑?我试了一下,不行。能给张截图吗?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.
|
我机子不知道怎么回事, github 无法上传图片, 我给那发邮件了 |
英文我使用 PragmataPro |
这个字体我没有,似乎也不是很好找。 |
你可以试试其他英文字体, 看看对齐效果, 确定是不是你当前使用的字体有问题 |
我试了,没有用。而且在这个字符上运行(describe-char),里面的xft会显示英文字体 |
我这边也显示是英文字符, 你吧hook去掉再试试 |
试过了,现在就是没有hook的,没有用。 |
英文字号和中文字体分别是什么? |
Monaco, Free Mono, DejaVu Sans Mono, Droid Sans Mono和 |
我这边Monaco 和 微米黑都没有问题, discribe-char 显示是使用 Monaco, |
能想办法给个截图吗?邮件也可以 |
在 2017-04-22 11:29:36,"yangsheng6810" <[email protected]> 写道:
能想办法给个截图吗?邮件也可以
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.
|
另外一个可能就是 spacemacs 在捣乱 |
我读了spacemacs设置字体的代码,以及org-mode处理字符串宽度和table对齐的代码。简单来说:应该是spacemacs的字体设置问题,spacemacs的字体设置是这样的:先用default字体,然后如果default字体找不到,再用其他字体。在这个过程中,set-fontset-font的功能似乎受到一定的影响,无法完全正常工作。 我考虑过是不是hack一下字符宽度,但是org-mode调用的string-width函数是内置用C写的函数,并不适合修改。对于spacemacs的字体设置代码我还没有完全弄清楚,需要一点时间。暂时先把这个issue关掉吧。 |
OK |
终于把问题完全解决了,总结如下:
解决方案:
(defun blaenk/set-char-widths (alist)
(while (char-table-parent char-width-table)
(setq char-width-table (char-table-parent char-width-table)))
(dolist (pair alist)
(let ((width (car pair))
(chars (cdr pair))
(table (make-char-table nil)))
(dolist (char chars)
(set-char-table-range table char width))
(optimize-char-table table)
(set-char-table-parent table char-width-table)
(setq char-width-table table))))
(blaenk/set-char-widths
`((1 . (,(string-to-char "“")
,(string-to-char "”")
,(string-to-char "…")
))))
(setq use-default-font-for-symbols nil) 即可。对于emacs 25.1用户,请降级/升级您的emacs。 最后,本issue终于解决,把它标成solved吧!另外,建议考虑把以上两个解决方案收入README。 |
我靠, 不容易呀.... |
都是泪……都是泪…… |
我在README添加了这个issue的链接: 40fb782 |
这个issue不是spacemacs的问题,而是emacs本身的问题,是不是可以换一个措辞,更有针对性一点?比如1. 在“Chinese-fonts-setup 高级功能”的注意事项里加一条:如果遇到部分符号无法正确对齐,而且以上代码无效,可以参考。。。 |
OK |
赞! |
你厉害, 也不知道你怎么找出这个bug的, 脑细胞都消耗不少吧..... |
恩……弄到凌晨3点,读了一堆代码,然后放弃了。起床之后运气比较好,接连搜到有用的页面,然后解决起来就快了。 |
:-) |
问题如图:
“……”在emacs里查看属于symbol,而且似乎计算距离的时候是按照中文字体计算的,但在实际显示的时候,却显示的是英文字体。用
describe-cha
查得他的unicode是#x2026。我尝试用设置symbol和直接设置字符的方式改变字体,但是都没有用。The text was updated successfully, but these errors were encountered: