elsearticle.cls
我正在尝试使用模板(包括natbib
包)和model1-num-names
作为来删除手稿中引用编号之间的间距bibliographystyle
。我尝试使用本网站上找到的可渗透修饰符中的一些修饰符,但没有给出任何错误,它们对我都不起作用,我仍然看到逗号之间的间距。我也尝试使用\setcitestyle
像\setcitestyle{notesep={}}
,但它给出了未定义的控制序列错误。查找了如何解决错误,没有找到有用的答案(Natbib setcitestyle 导致“未定义的控制序列错误”)。
答案1
您需要通过指令更改的参数\setcitestyle
是citesep
,而不是notesep
。
基本上,解决方案是通过将插入连续数字样式引用标注之间的“对象”从 更改为 来工作的,
,,\kern-\mylen
其中\mylen
设置为 的宽度\space
。natbib
硬编码为在此对象后插入一个空格。
就我个人而言,我发现默认样式(即逗号后有空格)更令人满意。如果您有一系列数字并且想要压缩它们,您可能需要指定文档类选项sort&compress
,它将传递给包natbib
(您可能已经知道,它由文档类自动加载elsarticle
)。
\documentclass{elsarticle}
\bibliographystyle{model1-num-names}
\newlength\mylen
\settowidth\mylen{\space}
\setcitestyle{citesep={,\kern-\mylen}}
\begin{filecontents}[overwrite]{mybib.bib}
@misc{A,author="ABC",title="Thoughts",year=3001}
@misc{B,author="DEF",title="Thoughts",year=3002}
\end{filecontents}
\begin{document}
\cite{A,B} --- produced by \verb+\cite+
[1,2] --- hard-coded string \verb+[1,2]+
\bibliography{mybib}
\end{document}