删除多个引用中的逗号之间的间距

删除多个引用中的逗号之间的间距

elsearticle.cls我正在尝试使用模板(包括natbib包)和model1-num-names作为来删除手稿中引用编号之间的间距bibliographystyle。我尝试使用本网站上找到的可渗透修饰符中的一些修饰符,但没有给出任何错误,它们对我都不起作用,我仍然看到逗号之间的间距。我也尝试使用\setcitestyle\setcitestyle{notesep={}},但它给出了未定义的控制序列错误。查找了如何解决错误,没有找到有用的答案(Natbib setcitestyle 导致“未定义的控制序列错误”)。

答案1

您需要通过指令更改的参数\setcitestylecitesep,而不是notesep

在此处输入图片描述

基本上,解决方案是通过将插入连续数字样式引用标注之间的“对象”从 更改为 来工作的,,\kern-\mylen其中\mylen设置为 的宽度\spacenatbib硬编码为在此对象后插入一个空格。

就我个人而言,我发现默认样式(即逗号后有空格)更令人满意。如果您有一系列数字并且想要压缩它们,您可能需要指定文档类选项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}

相关内容