如何将 filecontents 环境与构建目录一起使用?

如何将 filecontents 环境与构建目录一起使用?

更新了论文的旧模板后,我还想通过专用的构建目录来清理文档的构建方式。

使用 TexStudio 它的工作原理(主要)通过改变:

pdflatex.exe -synctex=1 -interaction=nonstopmode %.tex
bibtex.exe %
biber.exe %

pdflatex.exe -synctex=1 -interaction=nonstopmode --aux-directory=build %.tex
bibtex.exe --include-directory=build %
biber.exe --input-directory=build --output-directory=build %

我的模板利用filecontents环境(独立的环境已被弃用,因此我切换了)来简化对缩写的排序(由于我还没有找到 LaTeX 内部解决方案,因此排序是在外部完成的):

\begin{filecontents}[overwrite]{abbreviations.tex}
  \acro{TLA}{Three Letter Acronym}
\end{filecontents}
\begin{acronym}
    \IfFileExists{abbreviations-sorted}{\input{abbreviations-sorted}}{\input{abbreviations}}
\end{acronym}

文件abbreviations.tex在目录中创建build,这并不一定是预期的,因为如果没有名称,则将其放在文档中更合理。我通过\input添加build/前缀修复了创建文件的加载问题。

\begin{filecontents}[overwrite]{abbreviations.tex}
  \acro{TLA}{Three Letter Acronym}
\end{filecontents}
\begin{acronym}
    \IfFileExists{build/abbreviations-sorted}{\input{build/abbreviations-sorted}}{\input{build/abbreviations}}
\end{acronym}

它看起来有点不干净/不安全,因为它与所使用的文件名不匹配filecontents,并且依赖于构建环境。有没有办法让它再次“干净”?

答案1

经过进一步调查,我发现错误是由于使用

--aux-directory=build

将其更改为

--output-directory=build

构建按预期进行,无需build/在文档中添加前缀。

现在 TexStudio 无法找到创建的 PDF 文档以供预览(因为它也是在build目录中创建的)。通过更改解决了这个问题

Options -> Configure -> Build -> Build Options -> Additional Search Paths

到:

  • 日志档案:./build
  • PDF文件:./build

相关内容