为了从不同目录编译许多文件,我创建了文件列表并将其作为参数传递%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 启动。