前言:设置输出目录
TeX 发行版具有有用的命令行选项,--output-directory
可以在指定目录中创建所有输出文件。
MikTeX 提供了一个更方便的选项,可以将临时材料放在单独的文件夹中,最终可以删除,即:
pdflatex --aux-directory=auxdir mybook
--aux-directory
对于包含多个 TeX 文件的大型项目(例如包含多个章节的书)特别方便,以减少编译后的混乱。
可以同时使用--aux-directory
和--output-directory
。下面我将讨论--aux-directory
,但--output-directory
同时使用 或 会产生同样的问题。
当输出/辅助目录转移时使用参考书目
我还没有尝试过,但我知道有--input-directory
一个--output_directory
选项,可以做类似的工作biber
。
至于 BibTeX,没有这样的选项。对于基于单个.tex
文件的简单项目(因此.aux
),取决于您的路径分隔符,
bibtex auxdir/mybook
bibtex auxdir\mybook
应该可以工作。如果有多个.tex
文件(当辅助目录确实有用时), bibtex
则无法找到其他辅助文件,仍将在项目的根目录中进行搜索。
可以 cd 到auxdir
,但在这种情况下将找不到.bib
和文件。一种解决方法是将它们复制到 中。这可行,但它违背了此类目录的目的,而且很耗时,因为父目录中的原始文件可能会经常更新。.bst
auxdir
.bib
当使用--aux-directory
( ) 选项时,bibtex 和 biber 的正确工作流程是什么?--output-directory
答案1
以下是一些建议:
1. 不要使用--output-directory
或--aux-directory
真的。它们只是增加了一层不必要的复杂性。除了问题之外bibtex
,如果您使用多个输入文件,您可能最终不得不在输出目录中重新创建与主目录中相同的文件夹层次结构。特别是对于大型、多部分的文档,这可能是一件麻烦事,没有任何实际的附加价值。同样,如果您使用其他外部工具,您最终需要配置它们以适当地使用输出目录。
2.使用latexmk
这将以bibtex
适当的方式处理并处理上面详述的输出层次结构问题。如果您坚持使用输出目录,这可能是处理事情最简单的方法。
3. 让事情运转起来的方法
如果您仍想使用输出目录而不想使用latexmk
,您可以做同样的事情latexmk
。从命令提示符中,您可以bibtex
像这样运行(全部一行):
cd auxdir & set BIBINPUTS="C:\path\to\mybook;%BIBINPUTS%" & set BSTINPUTS="C:\path\to\mybook;%BSTINPUTS%" & bibtex mybook
它bibtex
在 auxdir 中运行,同时将包含源文件的目录添加到 bib/bst 搜索路径。