Natbib:删除参考书目中姓氏和名字之间的逗号和点

Natbib:删除参考书目中姓氏和名字之间的逗号和点

我需要创建一个参考书目,其中作者姓名带有姓氏,后跟首字母,不带逗号和点。

梅威瑟:

\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@article{SARDAR2020,
    title = "A New Lossless Secret Color Image Sharing Scheme with Small Shadow Size",
    journal = "Journal of Visual Communication and Image Representation",
    pages = "102768",
    year = "2020",
    issn = "1047-3203",
    doi = "https://doi.org/10.1016/j.jvcir.2020.102768",
    url = "http://www.sciencedirect.com/science/article/pii/S1047320320300183",
    author = "Md Kutubuddin Sardar and Avishek Adhikari",
}
\end{filecontents}

\documentclass{article}
\usepackage[numbers,sort&compress]{natbib}
\begin{document}
 \nocite{*}
\bibliographystyle{apa}
\bibliography{mybib}
\end{document}

它生产:

在此处输入图片描述

但我想删除姓氏和名字首字母之间的逗号和点,如下所示:

在此处输入图片描述

答案1

如果有人想在编写参考书目(使用 natbib)时删除名字首字母后的点(“。”,句点)以及姓氏后的逗号(“,”),您可以在使用的 .bst 文件中修改以下内容。

打开 .bst 文件并找到FUNCTION {format.names}。在此函数中,样式指定如何显示作者姓名。Firstname = f; lastname = l; von-name = v; 和 jr name = j。顺序由括号(“{”和“}”)指定。如果字母简单,则姓名以完整形式书写。如果字母是双字母,则姓名以首字母书写。

现在,您所要做的就是找到函数的“{, f}”部分并将其替换为“{ f{}}”。通过删除逗号,首字母将跟在姓氏后面,而没有逗号。通过添加内部空的“{}”,您可以告诉 natbib 删除它在首字母后创建的自动句点。

最终的功能将是这样的:

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{vv }{ll}{, jj}{ f{}}" format.name$ 't :=   % this is the part you have to modify 
      nameptr #1 >
        { namesleft #1 >
            { ", " * t * }
            { numnames #2 >
                { "" * }
                'skip$
              if$
              t "others" =
                { " \textit{et al.}" * }
                { t #1 text.prefix$ "I" =
                    { " e " * t * }
                    { " y " * t * }
                } if$
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

相关内容