![参考文献中最后一位作者和后面的逗号之间不需要空格](https://linux22.com/image/411257/%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE%E4%B8%AD%E6%9C%80%E5%90%8E%E4%B8%80%E4%BD%8D%E4%BD%9C%E8%80%85%E5%92%8C%E5%90%8E%E9%9D%A2%E7%9A%84%E9%80%97%E5%8F%B7%E4%B9%8B%E9%97%B4%E4%B8%8D%E9%9C%80%E8%A6%81%E7%A9%BA%E6%A0%BC.png)
我使用 创建了一个 .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}
生产
如预期的。
由于您已.bst
使用该选项and-xcom
(消除“and”之前的逗号)生成文件,因此“et al.”之前没有逗号是可以理解的(毕竟“et”的意思是“and”)。
据我所知,该选项etal-xc
仅在未选择and-xcom
、and-com
和时才执行某些操作。xand