PassOptionsToPackage:natbib 通过 svjour3

PassOptionsToPackage:natbib 通过 svjour3

在此 MWE 中,我无法将选项传递给natbibvia ,这需要 natbib。注释的替代方案工作正常,但有一些缺点(例如, aftersvjour3中的代码,例如,不知何故未执行。svjour3\RequirePackage{natbib}bibfont

\PassOptionsToPackage{numbers}{natbib}

\documentclass[natbib]{svjour3}
%\documentclass{svjour3}
%\RequirePackage{natbib}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
    @article{something, author = "someone"}
\end{filecontents}
\begin{document}
    \cite{something}
    \bibliographystyle{unsrtnat}
    \bibliography{\jobname}
\end{document}

我究竟做错了什么?

编辑:这里是svjour3http://static.springer.com/sgw/documents/468198/application/zip/LaTeX_DL_468198.zip(通过https://www.springer.com/gp/livingreviews/latex-templates)。

编辑:我认为我更具体的问题是:为什么\PassOptionsToPackage对本地呼叫有效\RequirePackage,但对课堂上的呼叫无效svjour3

最小答案(请参阅已接受的答案以获取解释):

\PassOptionsToPackage{numbers,sort&compress,...}{natbib}
\documentclass[natbib]{svjour3}
\bibpunct[,]{[}{]}{,}{n}{,}{,}

这将切换到数字引用样式并尊重所请求的选项,同时保留所有布局代码svjour3

答案1

(已编辑以反映 OP 提供的附加信息。)

使用svjour3文档类时,如果您选择类选项,您将获得作者年份样式的引用标注natbib;请参阅用户指南第 4 页和\bibpunct指令的第四个参数。

幸运的是,改变引用标注样式很简单:重新运行\bibpunct指令但使用“n”作为第四个参数。

在此处输入图片描述

\documentclass[natbib]{svjour3}

% Important change: Set fourth argument to "n" (default is "a")
\bibpunct{(}{)}{;}{n}{}{,} 

\bibliographystyle{unsrtnat}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
    @article{something, 
       author = "FirstName MiddleName LastName", 
       title  = "A very long and tedious title that says absolutely nothing",
       journal= "Circularity Today",
       year= 5678,
       volume = 1,
       number = 2,
       pages  = "3-4",
    }
\end{filecontents}
\begin{document}
    \cite{something}
    \bibliography{\jobname}
\end{document} 

相关内容