如何处理 valign 中文对齐的插件和 org-indent-mode 之间的冲突?

补充一下我的环境信息: mac , emacs 27, doom-emacs.

有人反馈 valign 更新到最新版能解决问题. 我更新到 main 最新的 commit, 问题依然存在.


大家是如何解决 valign 中文对齐的插件和 org-indent-mode 之间的矛盾的, , 关闭了没缩进, 不关闭表格不能对齐.

有缩进, 表格不对齐

表格对齐了, 但是就要关闭缩进

我记得最新版已经解决了,你使用的最新版本吗

1赞

emacs 28 吗? 我使用的是 Mac 下的 27.

@aqua0210 应该说的是插件valign的版本,你更新一下插件试试

1赞

是的,更新valign 版本到最新,应该已经解决了。

经过测试 doom-emacs 下即使 valign 更新到最新版也没有解决问题. 仍然要关闭 org-indent-mode 表格才能正常显示.

我这边在自己的配置上刚更新到git 最新版是也是没问题的。看看其他用doom的大佬有没有遇到类似问题

同样使用 doom 配置,也遇到过这个问题,似乎和字体配置有关(准确的说和字体占用的单个字符占有的像素有关),此时字体大小为 12pt

英文字体为 mononoki Nerd Font Mono ,中文字体为 Sarasa Mono SC 时, 无论是否关闭 org-indent-mode, 都无法对齐, 将英文字体改为 FantasqueSansMono Nerd Font Mono 时,都可以对齐。 eg:

另为如果在英文字体为 FantasqueSansMono Nerd Font Mono 后,将字符放大到一定程度也会对不齐, eg:

PS:当英文字体为 mononoki Nerd Font Mono 时,如果将字符缩小,也会有机会对齐的。 猜测可以试试设置 face-font-rescale-alist ,下边是我对我配置中中文字体的设置

(setq face-font-rescale-alist '(("Sarasa Mono SC" . 1.18))

在 doom-emacs 中, 我发现了一个必然对齐的折中方案.

  1. C-= 先放大字体,
  2. 鼠标放到表格里面, 按 tab 触发表格对齐(触发后表格是不对齐的)
  3. C-- 缩小字体, 然后表格对齐了.

没在论坛里搜索直接提了个issue…

使用的doom sandbox下的 vanilla Doom,在打开org-indent-mode时依然有问题,并且在valign-mode开启时开org-indent-mode甚至会报错… valign的版本为 2020-11-30T16:00:00ZBug fix

铁汁们,刚才Emacs之光回复了,关掉行号显示就行了。

doom-emacs evil mode 关闭行号显示之后, 大部分正常, 只有一个不正常. 我已经反馈到上面提到的 github issue 了.

我在 doom-emacs 下使用 Sarasa Mono SC Nerd 字体解决了 org table 不对齐的问题, 不需要安装 valigin 插件.

配置字体如下:

doom-font (font-spec :family "Sarasa Mono SC Nerd" :size 16)

Sarasa 字体属于古早方案了,看久了会腻 而且在中文和英文正好差距一个英文字符时也是无法对齐的。

emacs 支持在 buffer 临时变换字体. 我现在定义了两个函数用在 buffer 中两个字体之间切换.

平时用系统字体. 需要表格对齐的场景切换到 Sarasa.