Multibib 未能在附录中显示第二个参考书目

Multibib 未能在附录中显示第二个参考书目

我一起使用multibibnatbib来获取两个不同的书目(一个用于正文,一个用于附录)。这是一个示例代码

\documentclass[12pt]{article}
\usepackage{natbib}
\usepackage{multibib} 
\newcites{apndx}{References}
\begin{document}

First paper to cite: \cite{X1}
\bibliographystyle{ecca}
\bibliography{XXX}

\appendix

Cite a paper in the appendix \citeapndx{X2}

\bibliographystyleapndx{ecca} 
\bibliographyapndx{XXX}


\end{document}

但是,第二个参考书目没有出现,附录中的引用只给出了一个“?”。我查阅了手册multibib和其他类似的问题,但我不知道错误在哪里。

更新 1 即使我运行 bibtex 文件两次,也会发生这种情况。这是文件log

Process started: /Library/TeX/texbin/bibtex "prova".aux

This is BibTeX, Version 0.99d (TeX Live 2016)
The top-level auxiliary file: prova.aux
The style file: plain.bst
Database file #1: myrefs.bib

Process exited normally 

Process started: /Library/TeX/texbin/bibtex "prova".aux

This is BibTeX, Version 0.99d (TeX Live 2016)
The top-level auxiliary file: prova.aux
The style file: plain.bst
Database file #1: myrefs.bib

Process exited normally

更新 2:我认为问题在于我的 TexStudio 无法运行sec.aux生成第二个参考书目的链接的文件。我按照此链接的步骤操作https://sourceforge.net/p/texstudio/wiki/Tips%20and%20Tricks/并创建了一个.cwl并将其添加到 TexStudio Completion 但它仍然不起作用。

答案1

使用第一次编译multibib文件 的结果(或者在您的情况下使用 TeXStudio 编译)生成两个新文件和。两个文件都需要使用 运行。TeXStudio 使用 运行文件,因为您需要自己执行此操作。只需在 Windows 终端中运行命令即可。之后,您可以使用 TeXStudio 编译两次以获取生成的 PDF。mwe.texpdflatexmwe.auxapndx.aux.auxbibtexbibtexmwe.auxapndx.auxbibtex apndx

为了使命令\citeapndx在图形标题中运行(您的问题在评论中),您需要使用\protect如下命令(与 相同\section):

  \caption{In figure caption \protect\citeapndx{Johnson2000}}
 %                           ^^^^^^^^

因此使用以下文件mwe.tex(包filecontents仅用于在一次编译 MWE 中同时拥有 bib 文件和 tex 代码):

% needs:  bibtex apndx
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@inproceedings{Creighton2006,
  author    = {Creighton, Oliver and Ott, Martin and Bruegge, Bernd},
  booktitle = {Requirements Engineering, 14th IEEE International Conference},
  isbn      = {0769525555},
  pages     = {109--118},
  publisher = {IEEE},
  title     = {{Software cinema-video-based requirements engineering}},
  url       = {http://ieeexplore.ieee.org/xpls/abs{\_}all.jsp?arnumber=1704054},
  year      = {2006},
}
\end{filecontents}
\begin{filecontents}{apndx.bib}
@article{Johnson2000,
  author  = {Johnson, W Lewis and Rickel, Jeff W and Lester, James C},
  journal = {International Journal of Artificial Intelligence in Education},
  number  = {11},
  pages   = {47--78},
  title   = {{Animated pedagogical agents: face-to-face interaction in 
              interactive learning environments}},
  volume  = {Internatio},
  year    = {2000},
}
\end{filecontents}


\documentclass[12pt]{article}

\usepackage{natbib}
\usepackage{multibib} 
\usepackage{graphicx}

\newcites{apndx}{References in Appendix}


\begin{document}

First paper to cite: \cite{Creighton2006}
\bibliographystyle{ecca}
\bibliography{\jobname}

\appendix

Cite a paper in the appendix \citeapndx{Johnson2000}

%\section{In the appendix \protect\citeapndx{Johnson2000}} % <===========
\begin{figure}
  \centering
    \includegraphics[width=5cm]{example-image-a}
  \caption{In figure caption \protect\citeapndx{Johnson2000}} % <=======
  \label{fig:example-image-a}
\end{figure}

\bibliographystyleapndx{ecca} 
\bibliographyapndx{apndx}

\end{document}

和编译链(独立于 TeXStudio):

  • 在 Windows 中按 Windows 开始键打开终端窗口,R然后输入cmd并按 Enter
  • 移动到有 tex 代码和 bib 文件的目录cd <directory path>
  • 运行命令pdflatex mwe(产生两个所需.aux文件)
  • 运行命令bibtex mwe (编译mwe.aux
  • 运行命令bibtex apndx(编译apndx.aux
  • 运行命令pdflatex mwe(生成文件*.bbl*.blg
  • 运行命令pdflatex mwe(生成包含pdf参考书目的文件)

如果您正在使用编辑器(TeXStudio、TeXnicCenter 等),编辑器可以为您运行pdflatex mwebibtex mwe但不能 bibtex apndx。因此,在 Windows 终端中使用 TeXStudio 进行第一次编译运行后,运行此命令...

运行编译链后,您将获得以下结果 pdf:

在此处输入图片描述

相关内容