如何在 Windows 7 上对多个 .tex 文件运行 pdflatex?

如何在 Windows 7 上对多个 .tex 文件运行 pdflatex?

我使用 TikZ 和 pgfplots 制作了一些图形。我将代码和最少的必要前言放入每个图形的独立文档中。

假设我将第 3 章的所有文件(因此命名为 Chap03_Something.tex)放入 的main.tex文件夹中。有没有办法在所有文件上运行我选择的引擎(大多数情况下是 pdflatex,或者几次是 LuaLaTeX)Chap03_* 立刻

答案1

@ECHO OFF
SETLOCAL
SET "sourcedir=D:\files\"
SET /p mask="Which .tex-files?"
PUSHD "%sourcedir%"
FOR /f "tokens=1*delims=" %%a IN (
  'dir /b /a-d "%mask%*.tex" '
 ) DO (
 pdflatex.exe -interaction=nonstopmode --shell-escape "%%a" any other parameters perhaps containing "%%~na"
 )
POPD

GOTO :EOF

全部功劳归于马古,我只是添加了与 pdflatex 一起使用的参数-interaction=nonstopmode --shell-escape。如果您知道“外部化”在 TikZ/pgfplots 中的含义并且使用它,请按原样使用上面的代码,否则删除那个部分--shell-escape

为了在文件上运行另一个引擎,我复制了 .bat 文件,并简单地将其替换lualatex.exepdflatex.exe。当然,必须相应地组织序言。

答案2

制作专属目录图片并加载主文件\graphicspath{{./pictures/}}使用包的命令graphics(x)

创建批处理文件,例如

@echo off
echo "Processing images ..."
for %%i in (./*.tex) do pdflatex -interaction=nonstopmode %%i
echo "Deleting auxiliary files ..."
for %%i in (./*.aux) do del %%i
echo "Deleting log files ..."
for %%i in (./*.log) do del %%i
echo Done 
pause

并将其命名pr_images.bat为例如并将其<imagefile_*>.tex图片目录,然后运行它。

如果要处理,则通过lualatex编辑.bat文件进行更改。pdflatexlualatex

现在只需将数字包括在内主文件\includegraphics[<options>]{...}.bat文件必须位于图片目录。

相关内容