![Spring Nature 期刊 \citep{} 无法按预期工作](https://linux22.com/image/445889/Spring%20Nature%20%E6%9C%9F%E5%88%8A%20%5Ccitep%7B%7D%20%E6%97%A0%E6%B3%95%E6%8C%89%E9%A2%84%E6%9C%9F%E5%B7%A5%E4%BD%9C.png)
基本上,我正在尝试为 Springer 期刊撰写一篇论文,我正在使用他们的模板,你可以下载这里。我正在将其作为 Zip 文件上传至 Overleaf。
得益于此回答,我可以设法生成引文,因为他们拥有的 bst 文件位于 bst 文件夹中,而不是.tex
主文章文件所在的根文件夹中。所以我将一个 bst 文件移到了根文件夹中。我可以使用\cite{...}
命令,它显示带有数字和方括号的参考文献,例如[1]
。
然而,正如他们的文档所声称的,不幸的是,\citep{...}
选项不起作用。它仍然给我相同的输出\cite{...}
。换句话说,\citep{...}
不打印(Jones 等人,1990 年)。
就像这样回答指出,我尝试\documentclass{sn-jnl}
在没有“ sn-mathphys
”的情况下写入,但这次,我收到一个错误,“包 natbib 警告:输入行 129 上第 2 页的引用‘bib1’的作者未定义。” 而我确实有它!
我尝试了很多方法但都没有成功。
请注意,最小示例已包含在 bib 项的下载文件中。
编辑:
正如一位评论者指出的那样,这是 Springer Nature Latex 模板序言:
%%\documentclass[pdflatex,sn-basic]{sn-jnl}% Basic Springer Nature Reference Style/Chemistry Reference Style
%%\documentclass{sn-jnl}
%%\documentclass[sn-basic]{sn-jnl}% Basic Springer Nature Reference Style/Chemistry Reference Style
\documentclass[sn-mathphys]{sn-jnl}% Math and Physical Sciences Reference Style
%%\documentclass[sn-aps]{sn-jnl}% American Physical Society (APS) Reference Style
%%\documentclass[sn-vancouver]{sn-jnl}% Vancouver Reference Style
%%\documentclass[sn-aps]{sn-jnl}% APA Reference Style
%%\documentclass[sn-chicago]{sn-jnl}% Chicago-based Humanities Reference Style
%%\documentclass[sn-standardnature]{sn-jnl}% Standard Nature Portfolio Reference Style
%%\documentclass[default]{sn-jnl}% Default
%%\documentclass[default,iicol]{sn-jnl}% Default with double column layout
这里我需要使用它,\documentclass[sn-mathphys]{sn-jnl}
因为这是一篇数学论文。此外,我将sn-mathphys.bst
文件放在根文件夹中,如上所述。
这是该模板使用命令所声明的功能\citep{...}
但它不起作用:
此外,这\citep
很明显。我想要作者年份风格的引用。
答案1
您似乎认为\citep
将(应该?)始终生成作者年份样式的引文标注。这种印象并不正确。
具体来说,\citep
仅当所用书目样式支持此引文标注样式时,才可以生成作者年份样式的引文标注。不幸的是,您sn-mathphys
不是这些书目样式之一。
考虑以下简约的测试文档:
\documentclass[sn-mathphys]{sn-jnl} % use natbib package and sn-mathphys bib style
\begin{filecontents}[overwrite]{test.bib}
@misc{a:3001, author="Anne Author", title="Thoughts", year=3001}}
\end{filecontents}
%\setcitestyle{authoryear}
\begin{document}
\citep{a:3001}
\bibliography{test}
\end{document}
果然,它产生了一个数字样式的引用标注:
如果取消注释该指令\setcitestyle{authoryear}
,则会收到以下错误消息:
! Package natbib Error: Bibliography not compatible with author-year citations.
(natbib) Press <return> to continue in numerical citation style.
See the natbib package documentation for explanation.
Type H <return> for immediate help.
...
l.23 ...mand\NAT@force@numbers{}\NAT@force@numbers
结果是什么?sn-mathphys
bib 样式无法生成作者年份样式的引文标注。这就是为什么\cite
和都\citep
创建数字样式的引文标注。