我正在尝试使用 chapterbib 和 natbib 为每一章创建不同的参考书目。当我编译主文档时,即使参考文献在参考书目中,一些引文也会显示 (?)。下面是一个最小示例。注释掉 \usepackage{chapterbib} 后一切都很好,但如果包含它,文档会显示文献 (?),但参考书目中会有 testarticle。
\documentclass{article}
\usepackage{filecontents}
\usepackage[sectionbib]{natbib}
\usepackage{chapterbib}
\begin{filecontents*}{article_I_text.tex}
literature \cite{testref}.
\end{filecontents*}
\begin{filecontents*}{references.bib}
@article{testref,
title={testarticle}}
}
\end{filecontents*}
\begin{document}
\include{article_I_text}
\bibliographystyle{plain}
\bibliography{references}
\end{document}
答案1
手册上说:
1 正常使用:将 \bibliographystyle 和 \bibliography 命令放入每个 \included 文件中。运行 LATEX;在每个包含的文件上运行 BibTEX;运行 LATEX;运行 LATEX。
所以你应该做这样的事:
\documentclass{article}
\usepackage{filecontents}
\usepackage[sectionbib]{natbib}
\usepackage{chapterbib}
\begin{filecontents*}{article_I_text.tex}
literature \cite{testref}.
\bibliographystyle{plain}
\bibliography{references}
\end{filecontents*}
\begin{filecontents*}{references.bib}
@article{testref,
title={testarticle}}
}
\end{filecontents*}
\begin{document}
\include{article_I_text}
\end{document}
答案2
您还可以将\include
with更改\input
为快速解决方案(可能不是最好的,您应该检查您的需求)。这里可能有一些有用的信息: 何时应使用 \input 和 \include?
\documentclass{article}
\usepackage{filecontents}
\usepackage[sectionbib]{natbib}
\usepackage{chapterbib}
\begin{filecontents*}{article_I_text.tex}
literature \cite{testref}.
\end{filecontents*}
\begin{filecontents*}{references.bib}
@article{testref,
title={testarticle}}
}
\end{filecontents*}
\begin{document}
\input{article_I_text}
\bibliographystyle{plain}
\bibliography{references}
\end{document}