在 Mac 上将 LuaTex / LuaLaTeX 与 Latexian 结合使用

在 Mac 上将 LuaTex / LuaLaTeX 与 Latexian 结合使用

我已经使用 Latexian 一段时间了。它的 LivePreview 功能非常方便,这就是我一直使用它的原因。

最近,我听说了 LuaTeX / LuaLaTeX。我尝试了几个示例,但无法使其与 Latexian 兼容。

具体来说,通过终端“lualatex test.tex”编译以下代码可以正常工作。

\documentclass{article}

\begin{document}
The standard approximation $\pi = \directlua{tex.sprint(math.pi)}$
\end{document}

正如预期的那样,由于使用了“pdflatex”,因此无法在 Latexian 中编译。

我尝试删除 /usr/texbin 中的“pdflatex”文件,并创建指向“lualatex”的符号链接“pdflatex”,以欺骗 Latexian,但没有成功。我收到以下错误:

 This is LuaTeX, Version beta-0.76.0-2013061817 (rev 4627) 
 \write18 enabled.

---! pdflatex.fmt was written by pdftex
(Fatal format file error; I'm stymied) 

即使在终端中,尝试使用“pdflatex”(现在指向“lualatex”)进行编译也不起作用。与上述错误相同。

有任何想法吗?

答案1

好,我知道了。

LuaTeX 有时会调用 pdflatex。如果 pdflatex 指向 luatex,那么我们就会得到一个无限递归。

相反,我用以下 bash 脚本替换了 pdflatex:

#!/bin/bash
PARENT_COMMAND=$(ps $PPID | tail -n 1 | awk "{print \$5}")
#echo $PARENT_COMMAND
if [ $PARENT_COMMAND == '/Applications/Latexian.app/Contents/MacOS/Latexian' ]; then
        lualatex "$@"
else
        pdftex "$@"
fi

它识别谁在调用 pdflatex。然后,如果 Latexian 调用 pdflatex,它将被重定向到 lualatex。否则,它将调用 pdftex,即 pdflatex 在修改之前指向的那个。

相关内容