我是 LuaTeX 的忠实粉丝latexmk
,最近也对它有点兴趣。但是我还没有找到一种方法来让 LuaTex 拥有 latexmk 的功能(主要是在更改时重新编译并自动重新运行适当次数以解决交叉引用等)。有没有类似的东西?如果没有,LuaTeX 用户如果没有它,该如何生存?:)
答案1
您可以通过设置参数Lua(La)TeX
来使用:latexmk
-pdflatex
-pdflatex=<program>
- 设置用于 pdflatex 的程序。
(<program>
用程序名称替换‘ ’)
因此latexmk
应该调用lualatex
而不是pdflatex
像这样调用:
latexmk -pdflatex=lualatex -pdf <tex文件>
或者使用较新版本的latexmk
直接Lua(La)TeX
/XeLaTeX
支持:
-lualatex
使用 lualatex。即使用 lualatex 将源文件处理为 pdf(代替 pdflatex)。
此选项与指定以下选项序列完全相同:
-pdflatex="lualatex %O %S" -pdf -dvi- -ps-
答案2
您无需将-lualatex
标志添加到每个应用程序latexmk
,而是可以放置以下内容
$pdflatex = 'lualatex -文件行错误 %O %S'; $pdf_mode = 1;
在“.latexmkrc”文件中。如果您
lualatex
在所有作业中使用,则此文件应位于您的主文件夹中,或者位于作业所在的文件夹中lualatex
。
.latexmkrc
更一般地,您将在中找到大量示例和样板代码相应的 CTAN 存储库
答案3
从 latexmk 版本开始4.51
,您可以使用以下命令.latexmkrc
:
$pdf_mode = 4;
$postscript_mode = $dvi_mode = 0;
答案4
我目前在 macOS Ventura 下运行 MacTeX,lualatex
现在我将其作为所有工作的默认引擎。这是我当前的.latexmkrc
文件,我将其保存在我的主目录中。
# Custom .latexmkrc file.
# Always create PDFs and set default engine to LuaLaTeX.
$pdf_mode = 4;
# Set the lualatex variable.
$lualatex = 'lualatex --file-line-error %O %S';
# The next two preview variables are mutually exclusive!
# Preview after each build.
# Equivalent to -pv on command line.
# $preview_mode = 1;
# Preview continuously.
# Equivalent to -pvc on command line.
# $preview_continuous_mode = 1;
# Comment out to use Preview.app.
# Give -pv on the command line.
$pdf_previewer = 'open -a Skim.app %S';
# Special latexmk makeindex line for .dtx files.
$makeindex = "makeindex -s gind.ist %O -o %D %S";
# Files to be cleaned.
$clean_ext = "deriv equ glo gls gsprogs hd listing lol" .
" _minted-%R/* _minted-%R nav snm synctex.gz tcbtemp vpprogs";
这里的代码格式将最后一行视为具有注释,但它不是文件中的注释.latexmkrc
。