如何用 xelatex 编译 org babel 的 latex 代码块

想问一下 org babel 里 tex 代码块怎么改成默认使用 XeTeX 编译。 单纯更改 org-latex-compiler 没有效果; 尝试了这个帖子的方法没有成功。

可以看看org2ctex 包的README

谢谢回复!不过我想问的不是 latex 的 preview 跟显示,我想问的是:实行 org-babel 的 latex 代码块是怎么调用 XeTeX。在 代码块里 Tikz 画图的话,包含中日文就会报错,查看 log 发现他是用 pdflatex 编译的,即使我普通文档默认用的 xelatex。 想知道怎么设置 ob-latex 默认用 xetex 编译。

(setq org-latex-compiler "xelatex")

谢谢回复!我本身也是把 xelatex 作为默认的。但这个只是在 export pdf 跟 tex 的 preview 有效;在 运行 babel block 里的 latex 代码片段似乎并不会生效。 这个帖子里 也讲了这个问题。

殊途同归的办法,直接设置 org-format-latex-header 变量:

(setf org-format-latex-header (concat "% xelatex\n" org-format-latex-header))

似乎是 ob-latex 的问题,ox-latex 导出时会根据 org-latex-compiler#+latex_compiler 的设置生成这样的内容:

% Created 2023-06-09 Fri 19:33
% Intended LaTeX compiler: xelatex
\documentclass[11pt]{article}

ox-latex 负责编译的函数也会检查并设置待编译内容里设置的编译器,而 ob-latex 却没有相应的设置选项。