Latex 找不到参考书目项目,为什么?

Latex 找不到参考书目项目,为什么?

我已经尝试让 multibib 工作了几个小时,但它没有读取或打印参考书目条目。这里可能出了什么问题?它应该在命令行上单独执行,而不是在 GUI(文本编辑器)上执行吗?

\documentclass[a4paper,11pt,german,american]{article}

\usepackage[resetlabels,labeled]{multibib}
\newcites{J}{\normalsize{Journal publications}\vspace*{0truemm}}
\newcites{C}{\normalsize{Conference publications}\vspace*{0truemm}}
\newcites{R}{\normalsize{General publications}\vspace*{0truemm}}

\begin{document}

x \citeJ{paper1} \citeC{paper1} 
y \citeR{paper2} \citeR{paper2} 
z \citeJ{paper3} \citeC{paper3}

\bibliographystyleR{IEEEtran}
\bibliographyR{articles}

\bibliographystyleJ{IEEEtran}
\bibliographyJ{articles}

\bibliographystyleC{IEEEtran}
\bibliographyC{articles}
\end{document}

答案1

根据第 1.2 节多号码包aux文档,通过 创建的每个参考书目都会生成一个附加文件\newcites。您需要bibtex在这些附加辅助文件上运行。使用您的示例代码,.aux运行 LaTeX 时会创建三个文件:C.auxJ.auxR.aux(当然还有通常的\jobname.aux)。

这些额外的辅助文件中的每一个都需要单独进行 BibTeX 处理。我认为大多数 IDE 都没有设置处理这个问题;相反,它们(IDE)会将 bibtex 指向\jobname.aux,因此不会产生与参考书目相关的输出。为了正确处理额外的辅助文件,您可以打开命令窗口,切换到文件所在的目录,然后发出命令

bibtex C
bibtex J
bibtex R

然后,再运行两次 LaTeX 以传播所有更改。

如果您有一个基于 Unix 的系统,文档建议使用以下 bash 脚本来自动执行此过程:

#!/bin/bash
for file in *.aux ; do
  bibtex `basename $file .aux`
done

您可以在 tcsh 中执行相同操作。

#!/bin/tcsh
foreach x (*.aux)
  bibtex `basename $x`
end
#

相关内容