\citeauthor 和 \citeyear 与 multibib 和 natbib 配合使用不正确

\citeauthor 和 \citeyear 与 multibib 和 natbib 配合使用不正确

我有这个最小文档(doc.tex):

\documentclass[10pt]{scrreprt}

\usepackage{natbib}
\usepackage{multibib}
\newcites{book}{References}
\bibpunct[; ]{(}{)}{;}{a}{,}{,~}

\begin{document}

Some senseless text with citation \citepbook{book}.
And another text with citation (\citeauthor{book}, \citeyear{book} and \citeauthor{book2}, \citeyear{book2}).


\bibliographystylebook{apalike2}
\bibliographybook{sourcesBook}

\end{document}

还有这个.bib文件:

@Misc{book,
  author= {{Book}},
  year={2017},
}

@Misc{book2,
  author= {{Book 2}},
  year={2016}
}

现在当我生成文档时,bib 文件的第二个条目会失败。日志显示:

包 natbib 警告:第 1 页上的引用“book2”在输入行 13 未定义。

PDF 的输出如下所示:

在此处输入图片描述

有人知道这里出了什么问题吗?我需要多书目,因为我必须为书籍和在线资源生成书目。

答案1

正如您在对自己的答案的评论中已经指出的那样,您必须先使用multibib常用 cite 命令的变体之一,然后才能使用\citeyearand \citeauthor,但不幸的是,没有multibib变体。

然而,multibib该命令的变体,\nocite从技术上讲会导致引用但不可见。因此,如果\citealpbook没有选择,您可以避免添加额外的无用引用,而是这样做:

Some senseless text with citation \citepbook{book}. 
And another text with citation (\citeauthor{book}, \citeyear{book}
and \nocitebook{book2}\citeauthor{book2}, \citeyear{book2}).

答案2

我找到了解决我的问题的方法。

在这种情况下,该natbib命令\citealpbook{book2}对我有用。结果看起来我需要它:

在此处输入图片描述

在文档中我现在有:

Some senseless text with citation \citepbook{book}. 
And another text with citation (\citeauthor{book}, \citeyear{book}; \citealpbook{book2}, p. 7).

相关内容