我已经看到了这个类似问题的答案,建议使用
latexmk -c
或pdflatex -aux-directory=/some/temp/dir <additional options>
。我更喜欢后者,因为您可以创建子目录,而不必重复删除和生成文件。目前,此选项是“仅在 (pdf)latex 的 MiKTeX 版本上实现”。另一方面,前一种方法似乎不太有效。我在 Visual Studio Code 中使用 LaTeX Workshop,默认情况下使用 latexmk
。为了添加 -c
标志,我创建了以下收据:
"latex-workshop.latex.tools": [
{
"name": "latexmk -c",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-c",
"%DOC%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "latexmk -c",
"tools": [
"latexmk -c"
]
}
]
如果我首先从 Latex 源文件创建 pdf 文件,然后为下一次编译添加
-c
标志,它将正确删除附加文件。但是,如果您想第一次编译(当没有可用的 pdf 或辅助文件时),它不会生成任何 pdf 文件,我应该考虑删除 -c
标志。即使您已经拥有 pdf 文件及其关联文件,一旦从文件夹中仅删除 pdf 文件,也会出现同样的问题。在Linux(或vscode)中是否有一种有效的方法来隐藏此类辅助文件(通过删除它们或最好将它们放入子文件夹中)?
我在
.vscode/settings.json
中有以下条目:
"latex-workshop.latex.outDir": "%DIR%/aux",
效果很好。所有临时文件都保存在
aux
中,因此编译速度很快,但不会污染我的.tex文件
您需要按如下方式更新您的
.vscode/settings.json
文件:
`{
"name": "latexmk -c",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-lualatex",
"-outdir=%OUTDIR%",
"-auxdir=%OUTDIR%/build",
"%DOC%"
]
}
],`
我已将 /build 设置为生成辅助文件的目录。您可以将其替换为您喜欢的文件夹的名称。无需预先创建文件夹;它会在编译过程中自动创建。此外,我保留了
-outdir
参数,因为我希望在我的主项目文件夹中生成 PDF 文件。如果您希望将所有生成的文件(包括 PDF)存储在与主文件夹不同的目录中,则可以忽略 -auxdir
并直接在 -outdir
中指定:
`{
"name": "latexmk -c",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-lualatex",
"-outdir=%OUTDIR%/build",
"%DOC%"
]
}
],`