我正在尝试使用子文件来编写论文,同时让参考书目发挥作用。我的目标是为所有章节创建一个主参考书目。我的文件当前结构如下:
主文件夹
論文.txt
论文集
简介文件夹
- 简介.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。