为 pdflatex 定义 -aux-directory 会破坏 natbib 的引用

为 pdflatex 定义 -aux-directory 会破坏 natbib 的引用

当我使用 -aux-directory 标志运行 pdflatex 时,natbib 无法找到引用。

带有 -aux-directory 的 pdflatex 命令:

pdflatex.exe -synctex=1 -interaction=nonstopmode %.tex -aux-directory=auxillary

且不包含:

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

当我使用 -aux-directory 运行它时,没有生成 bbl 文件,缺少参考页面,并且日志显示一长串错误,如下所示:

Package natbib Warning: Citation `Altman2006' on page 1 undefined on input line

当我在没有 -aux-directory 的情况下运行它时,一切都正常。

还有其他人遇到过这个问题吗?


梅威瑟:

博士论文.tex

\documentclass[11pt,twoside,a4paper]{article}

\usepackage[round,authoryear]{natbib}
\begin{document}

Bibtex test: \citet{Card1999} 

\bibliographystyle{apalike}  
\bibliography{PhD_Bibliography}
\end{document}

PhD_书目.bib

@INCOLLECTION{Card1999,
    author = {David Card},
    title = {The Causal Effects of Education on Earnings},
    booktitle = {Handbook of Labour Economics},
    year = {1999},
    editor = {O. Ashenfelter and David Card},
    volume = {3},
    pages = {1801-1863},
    publisher = {Elsevier Science B.V},
    chapter = {30}
}

答案1

如果您的论文是一个单独的文件(这不太可能),那么只需在 bibtex 命令后附加./auxillary/%.

另外,我写了一个 bash 脚本分享于此答案但它适用于 Linux 环境。不过,您可以将工作复制到适用于 Windows 的 bat 文件中:

  • 首先,脚本需要进入 aux 文件夹
  • 在主辅助系统上运行 bibtex
  • 将生成的 bbl 文件复制到所有章节文件名(例如 main.bbl、chapter1.bbl 等)

就是这样,调用脚本而不是 bibtex。另外,(这可能不是 的问题-aux-directory,而是 的问题-output-directory)如果每个章节都在其自己的专用文件夹中,则需要将文件夹结构复制到构建文件夹(此处为“辅助”)。

相关内容