使用 Chapterbib + 子文件 + achemso

使用 Chapterbib + 子文件 + achemso

如果这是我的一个愚蠢的错误,我首先表示歉意。

我正在写论文,每个章节都使用子文件。我希望在每章末尾都有一个参考部分,因此我使用 chapterbib。我还使用了 achemso 包。

我在编译主文档中的子文件时遇到了问题。这可能是我构建文件的方式,但它似乎对一个子文件运行良好,但仅此而已。

因此我通过以下方式构建每个章节(我们称之为 chapter1.tex):

构建(LuaLatex) Bibtex 构建(LuaLatex) 构建(LuaLatex)

然后以同样的方式创建主文档(我们称之为 thesis.tex)

构建(LuaLatex) Bibtex 构建(LuaLatex) 构建(LuaLatex)

我的主文档的结构如下:

\documentclass[11pt]{report}
\usepackage{achemso}
\usepackage[sectionbib]{chapterbib}
\usepackage[nottoc,numbib]{tocbibind}
\usepackage{subfiles}

\begin{document}
\subfile{../chapter1/chapter1.tex}
\subfile{../chapter2/chapter2.text}
\subfile{../chapter3/chapter3.text}
\subfile{../chapter4/chapter4.text}
\end{document}

对于我的子文件来说,例如:

\documentclass[../Thesis/thesis.tex]{subfiles}

 \begin{document}

main text

\bibliography{../library}

\end{document}

任何帮助将不胜感激。

需要澄清的是,我可以使用子文件构建主文档 (thesis.tex),但其中不包含任何参考资料。尝试使用 bibtex 构建主文档时,会出现类似以下错误:

样式文件:achemso.bst 非法,另一个 \bibdata 命令---文件第 793 行

只有一个子文件时不会发生这种情况。

答案1

对你来说可能有点晚了,但我一直在努力解决类似的问题,这可能会对其他人有所帮助。

我还没有找到一个好的方法使用 chapterbib 和子文件(根据文档,您可以使用\begin{cbunit},尽管我对此并不喜欢,或者\cbinput,但这看起来得不偿失)。

然而,在大多数情况下,可以使用\include而不是\subfile(要做到这一点,您需要从子文件中删除序言)。这可以很好地与 chapterbib 配合使用。

\achemso当根文档没有引用时,也可能会出现问题(这里这里),所以尽量避免这种情况。如果需要,您应该能够使用这些.bst文件而不使用包的其余部分。

因此你的文档将会变成类似这样的内容:

\documentclass[11pt]{report}
\usepackage[sectionbib, super, sort]{natbib}
\usepackage{chapterbib}
\usepackage[nottoc,numbib]{tocbibind}

\begin{document}
\include{../chapter1/chapter1}
\include{../chapter2/chapter2}
\include{../chapter3/chapter3}
\include{../chapter4/chapter4}
\end{document}

你的章节如下:

\chapter{Chapter 1}
main text

\bibliograpystyle{yourchosenstyle}
\bibliography{../library}

另一个关键步骤是正确构建所有内容。如果您使用的是 TeX Studio 等 GUI,则更有可能出现问题。如果是这种情况,我建议您手动删除运行 Latex 时生成的所有辅助文件(即您未放在那里的所有内容),然后从终端手动运行pdflatex根文档、 bibtex每个章节,然后pdflatex两次运行根文档。

相关内容