如下图所示
2021-09-09T00:00:00Z : 找到原因了, 是因为 org latex header 用了 \usepackage{extpfeil}
, 去掉就没事儿了. 要用这个包就需要在 init 中加在 org-latex-package-alist
中, 奇怪的是 extpfeil 加在 alist 中就不会出现这种异常了. 但是不理想的是, 这样所有 org buffer 用 latex 时都会加载 extpfeil 包, 不能进行 per-buffer 的设置, 比较不爽
2021-09-10T00:00:00Z 感谢二楼的解决方案, 有两个, 都用了一下, 其中:
- buffer local variable 是有用的,需要加上下面的 prop line
# -*- eval: (add-to-list 'org-latex-packages-alist '("" "extpfeil" t)); -*-
就是在 buffer 打开的时候执行对 org-latex-packages-alist
的修改, 但是由于改的并不是 buffer local 变量, 因此一旦打开一次有上面的 prop line 的 buffer, 所有的 buffer 在用 latex 时都会加载 extpfeil 包
- #+bind keyword 无效, 无效的意思是在输出 latex fragments 的时候, 连 extpfeil 包都没加载. 可能是因为 #+bind 貌似只管 org 全文 latex export 的行为, 而不影响 latex fragments.
另外自己发现了第三个解决方案: 改数学环境字体. 具体来说我将 latex 数学改为了 math design charter 字体, 也就是在 org buffer 开头加一行:
#+latex_header: \usepackage[charter]{mathdesign}
在用了上面的数学字体之后, 我可以不用在 init 或者 prop line 中改 org-latex-packages-alist
, 可以设置 per-buffer de #+latex_header: \usepackage{extpfeil}
, 并且不会出现 latex fragments 中奇怪的留白