我正在使用 Natbib,并试图让我的参考书目中的作者看起来像
Bryan Sullivan, Vincent Liu
但目前他们看起来像
Bryan Sullivan and Vincent Liu
我曾尝试使用
\renewcommand{\multinamedelim}{\addsemicolon\space}
但它不起作用,它说 \multinamedelim 不存在。
我正在添加参考书目如下:
@book {
WebApplicationSecurity,
author = {{Bryan Sullivan} and {Vincent Liu}},
title = {Web Application Security, a Beginner's Guide},
publisher = {McGraw Hill},
year = {2011}
}
我也尝试过将此代码中的“and”改为逗号,但第二位作者就完全消失了。
我正在使用 XeLaTeX 进行编译。如有任何帮助,我将不胜感激
答案1
好的,我是新手(接触 LaTeX 大约 1 年,甚至更新 bst),所以请多多包涵,但我想我已经明白了:
修改 IEEEtranN.bst,使得 FUNCTION {format.names} 内容如下:
FUNCTION {format.names}
{ 'bibinfo :=
duplicate$ empty$ 'skip$ {
this.to.prev.status
this.status.std
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
name.format.string
format.name$
bibinfo bibinfo.check
't :=
nameptr #1 >
{ nameptr num.names.shown.with.forced.et.al #1 + =
numnames max.num.names.before.forced.et.al >
is.forced.et.al and and
{ "others" 't :=
#1 'namesleft :=
}
{ skip$ }
if$
namesleft #1 >
{ ", " * t do.name.latex.cmd * }
{ s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
{ " " * bbl.etal emphasize * }
{ numnames #2 >
{ "," * }
{ "," * } %%%%%%%%%%%%% added this line
%{ skip$ } %%%%%%%%%%%%% commented out this line
if$
%bbl.and %%%%%%%%%%%%% commented out this line
space.word * t do.name.latex.cmd *
}
if$
}
if$
}
{ t do.name.latex.cmd }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
cap.status.std
} if$
}
这应该会改变所有类型的名称格式,如下所示。希望对您有所帮助!
编辑:如果您希望更改文中引用格式以及参考书目格式,请按照@Mico 的回答进行操作:https://tex.stackexchange.com/a/506121/169285(需要注意的是 - 它也会改变“format.lab.names”,但我不完全确定这会有什么作用)。
编辑2:MWE:
\documentclass{article}
\usepackage{natbib}
\begin{document}
Stuff happened \cite{WebApplicationSecurity}.
\newpage
\bibliographystyle{IEEEtranN}
\bibliography{mybib.bib}
\end{document}