在org-mode
下编辑了一些表格,发现都是不对齐的.一开始怀疑是中英混排导致的问题,因此安装了valign
插件,但似乎没有作用?另外我也单独尝试了纯英文的排版,一样是错位的.
试过C-c C-c
强制重排,也是无效的.我使用的是doom emacs.
在org-mode
下编辑了一些表格,发现都是不对齐的.一开始怀疑是中英混排导致的问题,因此安装了valign
插件,但似乎没有作用?另外我也单独尝试了纯英文的排版,一样是错位的.
试过C-c C-c
强制重排,也是无效的.我使用的是doom emacs.
valign 插件应该可以解决。确认mode开启了吗?
刚才测试了一下, 似乎没有问题. 我这里没有用什么插件, 只是安装了下面这个字体,
突然意识到,会不会是我使用的Cascadia Code PL所带的ligature连字,导致的--
被连起来导致的?
目前的状况我有些无法理解。我的字体配置:
(setq doom-font (font-spec :family "Cascadia Mono" :size 16 :weight 'normal)
doom-variable-pitch-font (font-spec :family "Cascadia Mono")
doom-serif-font (font-spec :family "Sarasa Mono SC" :weight 'semi-bold)
doom-unicode-font (font-spec :family "Sarasa Mono SC" :weight 'semi-bold)
doom-big-font (font-spec :family "Sarasa Mono SC" :weight 'semi-bold :size 24))
通过SPC q r
重新打开org-mode
的buffer时,显示状况是(此时焦点不在此buffer):
但将焦点切换回这个org-mode
buffer中,revert-buffer
后,所有的-
(dash)都自动变成了连字:
而且从图中可以看出,表格以外的dash没有发生连字。
按照Cascadia Code项目github页面的说法,Cascadia Mono字体是不带连字符的,因此应该不会导致连字,另外我将光标移到表格中的dash上,describe-char
给出的信息也是Cascadia-Mono
这一切现象让我实在摸不着头脑。
这是已知问题
现阶段要么关行号,要么关 org-indent-mode
最终的解决方法:不使用valign插件,通过设置所有字体为Sarasa Mono SC
解决。
产生问题的原因确实如楼上所说,是因为同时开启了行号与indent,另外导致--
出现ligature应该是valign的行为导致的替换。目前由于行号与indent我都比较不能割舍,因此只能舍弃valign与Cascadia Code的英文字体,统一使用Sarasa Mono SC
(建议设置semi-bold
作为:weight
,否则有些太细)之后,基本表格的对齐是很完美的,似乎没有出现https://emacs-china.org/t/valign-org-indent-mode/15325/15?u=wang1zhen中所说的相差一个英文字符无法对其的情况。
总的来说,在valign插件兼容行号显示与indent之前,这应该是相对比较低成本的解决方案了。
我现在配置是:
(use-package org-faces
:config (when (display-graphic-p)
(set-face-attribute 'org-table nil :family "Sarasa Mono SC")))
建议看一下这个:Org mode 中英混排对齐的问题,好像看到只是设置 org-table
的话表格里面有链接会有问题,可以再探索一下