我有以下 BibTeX 条目:
@article{pubmed18800157,
author = {Heng, T.S. and Painter, M.W. and Immunological Genome Project Consortium},
title = {The {I}mmunological {G}enome {P}roject: networks of gene expression in immune cells.},
journal = {Nat. Immunol.},
pages = {1091-1094},
volume = {9},
number ={10},
year = {2008},
},
%\bibliographystyle{unsrt}
当生成参考书目时,它会在作者末尾放置逗号:
注意后面的逗号M.W. Painter
。有办法去掉它吗?
答案1
与以下方法相辅相成编辑.bst
文件,如果你愿意转向biblatex
然后你可以使用trad-unsrt
风格和非常小的定制:
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{pubmed18800157,
author = {Heng, T. S. and Painter, M. W. and {Immunological Genome Project Consortium}},
title = {The {Immunological} {Genome} {Project}:
networks of gene expression in immune cells.},
journal = {Nat. Immunol.},
pages = {1091-1094},
volume = {9},
number ={10},
year = {2008},
},
\end{filecontents}
\documentclass{article}
\usepackage[backend=bibtex,bibstyle=trad-unsrt]{biblatex}
\bibliography{\jobname}
\renewcommand*{\finalnamedelim}{\addspace \bibstring {and}\space}
\begin{document}
\textcite{pubmed18800157}
\printbibliography
\end{document}
请注意,这与机构作者无关:对于任何具有该unsrt
风格的三位或更多作者的列表也是如此。
答案2
要删除牛津逗号,您需要修改文件.bst
– 在您的情况下是unsrt.bst
。在您的系统上找到文件.bst
file ,复制并重命名(例如unsrtnox.bst
,重命名为 ),并将其放在 LaTeX 可以找到的地方。
相关函数称为FUNCTION {format.names}
(unsrt.bst
,l.185)。
如果你去掉四条线
numnames #2 >
{ "," * }
'skip$
if$
实现它(在我们的例子中unsrt.bst
)
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
姓氏前的逗号消失。
上面的测试在倒数第二个名字时触发(否则会在名字后面打印逗号),并检查列表是否包含两个以上的名字,如果是,则无论如何都会打印逗号。删除此测试可防止打印逗号。