平台
OS: Ubuntu 18.04.3 LTS
emacs: GNU Emacs 26.3
spacemacs: Release 0.200.13.x
fcitx version: 4.2.9.6
sogou: v2.3.1.0112
请教各位大佬
不知道在这两个问题上发费了多少时间,google 一搜前几页都被打开过。故来论坛请教。(注册新账号,收不到邮件- -,我还以为是因为QQ邮箱的问题,换 163 还是不行,最后通过 github 登录,也是难啊)
1. 中文字体
在 GUI 上中文字体有完美的解决方案吗?
调整了字体选择的优先级。目前来看,org-mode 中标题的中文字是没有问题的,可以正常放大,也没有日文字型。但是,,,普通文本中,还是有日文字型。比如下图,“将”和“直”:
说明标题和正文都不是一种字体?很迷啊
我知道网上的解决方案都是设置中文字体,但是这种方法,标题中的字体不能正常缩放,至少我试过的很多方法,包括 chinese layer 也不能缩放。
你们是怎么解决的?
2. org mode 表格中不能连续输入中文
比如,我输入“中国”两个字,只有“中”字会正确的上屏,没有后面的“国”。
在其他地方输入都没有碰到什么问题,唯独在 org 表格中输入。
搞了半天找到一个替代方案,使用 pyim,在 org 表格中可以正常一次输入多个汉字。
然而,稍稍试用,感觉不太好用,并不能替代搜狗。所以就是其他时候都用搜狗,表格中用 pyim,怎一个蛋疼了得!!!
另,表格中文对齐,是在论坛上找到的解决方案,单独设置表格字体。感谢!!!
你们有遇到这个问题吗?怎么解决的?
我使用 emacs 就是想舒舒服服的用 org mode 啊。结果 org 还没用的怎么样,时间全给 emacs 了。
难啊
你可以先装个cnfonts,配置好后,中英文表格对齐和字体缩放都没问题。
输入法我看你是用拼音 ,可以用pyim+liberime+rime,据说效果非常好。(我是五笔,享受不了这种福利)
没有用过Spacemacs,但是我在GNU Emacs底下是这样启动Emacs的。
env LANG=zh_CN.UTF-8 emacs
可以参考Fcitx ArchWiki。对能不能输入的问题,你有试过这个方法吗?如果试过,还不行,那我也没办法了。如果可以,建议改动.desktop
文件中Exec的那一行,类似于下面的样子,我自己的情况是/usr/local/share/applications/emacs.desktop
。
[Desktop Entry]
Name=Emacs
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=env LANG=zh_CN.UTF-8 emacs %F
Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupWMClass=Emacs
Keywords=Text;Editor;
至于字形的问题,这个可能就不是Emacs的问题了,你检查一下自己的64-language-selector-prefer.conf
里面日文和中文的相对位置是不是中文在前,日文在后。我的是这个样子的。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK HK</family>
<family>Noto Sans CJK JP</family>
<family>Noto Sans CJK KR</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif CJK SC</family>
<family>Noto Serif CJK TC</family>
<family>Noto Serif CJK JP</family>
<family>Noto Serif CJK KR</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
<family>Noto Sans Mono CJK HK</family>
<family>Noto Sans Mono CJK JP</family>
<family>Noto Sans Mono CJK KR</family>
</prefer>
</alias>
</fontconfig>
如果使用英文界面,这个文件的默认顺序是下面这个样子的,所以经常看到很多字用的是日文的字形,比方说“门”。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans CJK JP</family>
<family>Noto Sans CJK KR</family>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK HK</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif CJK JP</family>
<family>Noto Serif CJK KR</family>
<family>Noto Serif CJK SC</family>
<family>Noto Serif CJK TC</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono CJK JP</family>
<family>Noto Sans Mono CJK KR</family>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
<family>Noto Sans Mono CJK HK</family>
</prefer>
</alias>
</fontconfig>
2 个赞
感谢你的回复!
我试过你所说的方法,在我的电脑上行不通。
使用环境变量,org 的表格中也是不能正常输入,我电脑原本也是 zh_cn. 只要不是 org 表格,其他地方都没有问题。
我就是调整了优先级之后,标题的文字正常了,可普通文本还是有日文字型。"64-*"这个文件我修改过。不知道还有没有其他地方要修改的,很迷啊
反正我Emacs里面的字体配置如下,没用过Spacemacs,不知道通不通用,兼不兼容。
(dolist (script '(han cjk-misc bopomofo))
(set-fontset-font "fontset-default" script
(font-spec :family "Noto Sans Mono CJK SC")))
;; (font-spec :family "Microsoft YaHei" :size 15.0)))
;; (dolist (script '(latin cyrillic greek))
;; (set-fontset-font "fontset-default" script
;; (font-spec :family "Consolas" :size 13.2)))
;; (set-fontset-font "fontset-default" 'kana "Meiryo")
;; (set-fontset-font "fontset-default" 'hangul "Malgun Gothic")
(set-fontset-font "fontset-default" 'symbol "Symbola" nil 'append)
;; General Punctuation: http://www.unicode.org/charts/PDF/U2000.pdf
;; Geometric Shapes: http://www.unicode.org/charts/PDF/U25A0.pdf
;; Arrows: http://www.unicode.org/charts/PDF/U2190.pdf
(dolist (target '((#x2000 . #x206f) (#x25c6 . #x25c7) (#x2190 . #x2193)))
(set-fontset-font "fontset-default" target
(font-spec :family "DejaVu Sans Mono"
:size 11.0)
nil 'prepend))
;; (set-fontset-font "fontset-default" '(#x2000 . #x206f)
;; (font-spec :family "DejaVu Sans Mono"
;; :size 11.0)
;; nil 'prepend)
;; Mathematical operators: http://www.unicode.org/charts/PDF/U2200.pdf
(set-fontset-font "fontset-default" '(#x2200 . #x22ff)
"DejaVu Sans" nil 'prepend)
cnfonts 配置好了!谢谢啦~
pyim+liberime+rime 这套组合,没有尝试,虽然 rime 的大名听说过。但 linux 下搜狗用着也没什么问题,唯独 org 表格不能输入多个字,win10 用自带输入法。
pyim 我用的最简单的配置,才能正常使用,使用作者推荐的配置,不能输入中文,也不知道哪里出了问题。
(require 'pyim)
(require 'pyim-basedict) ; 拼音词库设置,五笔用户 *不需要* 此行设置
(pyim-basedict-enable) ; 拼音词库,五笔用户 *不需要* 此行设置
(setq default-input-method "pyim")
(global-set-key (kbd "C-\\") 'toggle-input-method)
pyim 使用能明显感觉到卡顿、延迟。所以不想再折腾这个组合了,时间成本。。。
老哥是 cnfonts 的作者?
使用 gui 设置,中文字体列表不全,系统明明有的字体比如“思源”系列,gui 里标注“NA”。
还是修改了“profile”文件才用上了“Noto Sans Mono CJK SC”字体。
谢谢!
我现在使用 cnfonts 进行配置后,中文字体没有问题了。
就是 org 表格输入还是不行哟。换整套输入法,这个成本太高了~~~
这个问题我也在 ubuntu 下遇到过, 现在姑且算是解决了.
首先确定这就是 spacemacs 的锅, 而且 gui 和终端都有 org-mode 表格里面搜狗输入法上屏只上一个字的问题.
最后偶然发现一个奇妙的方法可以解决这个问题 !!
org-mode 表格的每一个格子, 都是由左右两条竖线围起来的 |一个格子|
, 如果表格是自动补全生成而不是自己敲的, 那么左右两条竖线会隔的比较开, 这个时候你去格子中间打字 | 这 |, 就会遇到输入法只有一个字上屏的问题. 可是, 如果你贴着右边竖线打字 | 这里|, 输入法就可以正常上屏.
有点羡慕那些字母语言国家的开发人员.
机器比较差内存少且用拼音输入的话,可以用以下设置优化速度,
;; use memory efficient pyim engine
(setq pyim-dcache-backend 'pyim-dregcache)
外置中文输入法的体验是比不上 pyim 的,并且 rime 的可玩性很高,对得起它的时间成本,胜过关掉云联想的搜狗(有云的搜狗就是个流氓)
现在liberime的主要问题是编译麻烦, 大多数linux发行版的 emacs 都没有开启动态模块功能,所以需要手动编译 emacs,相对就罗嗦了, 只能等到 emacs 27 了
是否可以考虑让emacs core 直接合并librime的代码?
你看一下 echo area 那有没有什么提示,之前好像遇到过是 org-babel 什么 error,然后我把 org 重新删了升级一下就可以了。
好的,再折腾 pyim 的时候试试。
好奇问问,外部输入法也挺好用啊,如果不遇到我这个问题的话。fcitx.el 也可以切换输入法。
为什么大家还喜欢内部输入法?