如何让参考书目在子文件中发挥作用?

如何让参考书目在子文件中发挥作用?

我正在尝试使用子文件来编写论文,同时让参考书目发挥作用。我的目标是为所有章节创建一个主参考书目。我的文件当前结构如下:

  1. 主文件夹

    • 論文.txt

    • 论文集

  2. 简介文件夹

    • 简介.txt

我尝试过使用 natbib 和 biblatex 的几种不同方法,包括这个问题中评价最高的答案(处理子文件中的 .bib),但没成功。我的参考书目在主 Thesis.txt 文件中,如果我尝试在那里引用某些内容,则一切正常。但是,当我尝试在子文件 (Introduction.txt) 中引用某些内容时,\cite 会自动填充,但我总是会收到未定义引用的错误。如果我尝试使用子文件 Introduction.txt 编译主 Thesis.txt 文件,也会出现这种情况。

我目前的简化代码是这样的:

論文.txt

\documentclass{ucetd}
\usepackage[super,comma]{natbib}
        \bibliographystyle{unsrtnat}
\usepackage{subfiles}

\providecommand{\main}{.}  \
\def\biblio{\bibliographystyle{unsrtnat}\bibliography{\main/Thesis}}

\begin{document}
\def\biblio{}

\renewcommand\bibname{References}
    \newpage
    \addcontentsline{toc}{chapter}{References}
    \begin{singlespace}
        \bibliography{Thesis}
    \end{singlespace}

\end{document}

简介.txt

\providecommand{\main}{..}  % *Modification: redefine path location, must go before \documentclass
\documentclass[\main/Thesis.tex]{subfiles}

\begin{document}

some text. \cite{}

\newpage
\biblio
\end{document}

我也尝试过在子文件中包括参考书目,但这仍然不能解决错误。此外,我尝试了 biblatex 示例(处理子文件中的 .bib) 但这也不起作用。

我已经束手无策了,请帮帮我。

答案1

对于最新版本的subfiles软件包,一般规则是

选择相对于其出现的文件的路径。

以下示例适用于当前的 LaTeX 发行版。

%%%%%%%% thesis.tex
\documentclass{article}
\usepackage[super,comma]{natbib}
\bibliographystyle{unsrtnat}
\renewcommand\bibname{References}
\usepackage{subfiles}
\begin{document}
\subfile{introduction/introduction}
\bibliography{thesis}
\end{document}

%%%%%%%% thesis.bib
@Article{TheSource,
  author =   {T.Sourcerer},
  title =    {The Source Of Everything},
  journal =      {Resources},
  year =     {2021}
}

%%%%%%%% introduction/introduction.tex
\documentclass[../thesis]{subfiles}
\begin{document}
Some text~\cite{TheSource}.

\ifSubfilesClassLoaded{%
  \bibliography{../thesis}%
}{}
\end{document}

现在你可以使用

pdflatex thesis
bibtex thesis
pdflatex thesis
pdflatex thesis

或在子目录中引入

cd introduction
pdflatex introduction
bibtex introduction
pdflatex introduction
pdflatex introduction

Github 上的 subfiles-repository 中还有几个生成子书目的示例,请参阅子目录 test 中的子目录 biblatex、bibunits 和 chapterbib

相关内容