我正在写硕士论文,在引用多位作者时遇到了问题。pdf 中的分隔符是“and”,但这在我的语言中并不正确。有没有简单的解决方案是什么来改变这个分隔符?
感谢每一个回答
这是MWE:
\documentclass{article}
\usepackage[numbers]{natbib}
\begin{document}
blba bla bla bla bla bla bla \cite{x}
\bibliographystyle{plain}
\bibliography{references}
\end{document}
它产生的结果如下:
答案1
首先,从命令行运行
kpsewhich plain.bst
知道文件plain.bst
在哪里。其路径应该是TEXMF/bibtex/bst/base/
。
现在复制plain.bst
文件所在的目录.tex
,并将其重命名为myplain.bst
。
然后myplain.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 * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
用以下内容替换它们
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 * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
并保存文件。
现在在您的文档中,替换
\bibliographystyle{plain}
和
\bibliographystyle{myplain}
您就完成了。
平均能量损失
\begin{filecontents*}{references.bib}
@article{x,
author = {Author, A and Buthor, B and Cuthor, C},
journal = {A journal},
title = {A title},
year = {2015}
}
\end{filecontents*}
\documentclass{article}
\usepackage[numbers]{natbib}
\begin{document}
blba bla bla bla bla bla bla \cite{x}
\bibliographystyle{myplain}
\bibliography{references}
\end{document}
输出:
答案2
如果你正在使用biblatex
,请查看biblatex
手动的, 部分3.9.1 通用命令和钩子。
\finalnamedelim
可能是您想要更改的书目字符串。您可以使用以下代码轻松完成此操作:
\renewcommand*{\finalnamedelim}{\addcomma\addspace}
您也可以看一下\multinamedelim
字符串。