使用 Latexmk.exe 批量编译多个文件

使用 Latexmk.exe 批量编译多个文件

为了从不同目录编译许多文件,我创建了文件列表并将其作为参数传递%1给批处理文件:

FOR /f "usebackq tokens=*" %%i IN (%1) DO latexmk.exe -pdf -shell-escape -outdir="%%~dpi"  "%%i"

其中%%i- 是变量,包含文件完整路径(例如e:\...\...\...\file.tex

我希望使用生成的任何输出文件pdflatex都放在与主 tex 文件相同的目录中(我使用 实现了它-outdir="%%~dpi"

不幸的是,我收到一个latexmk.exe错误:

没有指定文件名,我找不到任何

bat 文件输出为:

    D:\Programs\ScriptFiles>latexmk.exe -pdf -shell-escape -outdir="e:\RightTeXFiledir\"  "e:\RightTeXFiledir\file.tex"
runscript.tlu:679: command failed with exit code 10:
latexmk.pl -pdf -shell-escape -outdir="e:\RightTeXFiledir\"  "e:\RightTeXFiledir\file.tex"

当我-outdir="%%~dpi"从批处理文件中删除时,编译成功,但所有生成的文件都放在批处理文件目录中。

如何指定与编译后的 tex 文件相同的输出目录?

值得注意的是,直接编译pdflatex不会产生任何错误:

FOR /f "usebackq tokens=*" %%i IN (%1) DO %TexDistr%\pdflatex.exe -synctex=1 -time-statistics -interaction=nonstopmode -output-directory=%%~dpi -shell-escape  "%%i"

但是这种方式的问题是缺少 bibtex.exe 启动。

相关内容