参考文献中最后一位作者和后面的逗号之间不需要空格

参考文献中最后一位作者和后面的逗号之间不需要空格

我使用 创建了一个 .bst 文件makebst,我想在 之前添加一个逗号el al.。我选择了正确的选项,但它不起作用。.dbj 中的选项如下

%--------------------
%COMMA BEFORE `ET AL':
    %: (def) Comma before `et al'
% etal-xc,%: No comma before `et al'
%--------------------

所以我直接通过更改修改了生成的.bst

FUNCTION {bbl.etal}
{ "et~al." }

FUNCTION {bbl.etal}
{ ",~et~al." }

然而,最后一位作者和逗号之间出现了一个意外的空格,例如

Mosser B, Michel E, Appourchaux T , et al. A&A, 2009. 506: 33

我想要的是

Mosser B, Michel E, Appourchaux T, et al. A&A, 2009. 506: 33

那么,我该如何修改.bst 文件来满足要求。

答案1

您的.bst文件包含三个实例

" " * bbl.etal

这将打印一个空格,后跟“et al.”

如果要在“et al.”前加逗号,请将出现的三个逗号替换" " * bbl.etal

", " * bbl.etal

修改后的文件(你可以从https://gist.github.com/moewew/22e8046e747cb39fca28935630ea50c7,还有一个差异这样您就可以更轻松地看到更改)

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}

\begin{filecontents}{\jobname.bib}
@book{appleby,
  author  = {Humphrey Appleby and Mosser, B. and Michel, E. and Appourchaux, T.},
  title   = {On the Importance of the Civil Service},
  year    = {1980},
}
\end{filecontents}

\begin{document}
\cite{appleby}
\bibliographystyle{twxb}
\bibliography{\jobname}
\end{document}

生产

Appleby H、Mosser B、Michel E 等人。《论公务员的重要性》。1980 年

如预期的。


由于您已.bst使用该选项and-xcom(消除“and”之前的逗号)生成文件,因此“et al.”之前没有逗号是可以理解的(毕竟“et”的意思是“and”)。

据我所知,该选项etal-xc仅在未选择and-xcomand-com和时才执行某些操作。xand

相关内容