我有这个最小文档(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 命令的变体之一,然后才能使用\citeyear
and \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}).