Eu tenho que trabalhar com um arquivo .bst personalizado para um artigo. Quando tenho exatamente dois autores como referência, esses autores são separadosem textocom " , ".
Então, por exemplo (Simonyan, Zisserman, 2014). Eu quero que seja (Simonyan e Zisserman, 2014).
Na minha bibliografia o estilo está correto. Então, é necessário alterar o arquivo .bst?
Acho que aqui estão as linhas relevantes:
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{ 's :=
'f :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr f format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ t "others" =
{ " et~al." * }
{ ", " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {format.authors}
{ author empty$
{ "" }
{ "{vv~}{ll}{, jj}{, f.}" author format.names }
if$
}
Responder1
A macro relevante é format.lab.names.abbr
. Para o "e" tem que ler
FUNCTION {format.lab.names.abbr}
{ 's :=
s num.names$ 'numnames :=
numnames #1 >
{ numnames #2 >
{ s #1 "{vv~}{ll}" format.name$ " et al." * }
{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{ s #1 "{vv~}{ll}" format.name$ " et al." * }
{ s #1 "{vv~}{ll}" format.name$ " and " *
s #2 "{vv~}{ll}" format.name$ *
}
if$
}
if$
}
{ s #1 "{vv~}{ll}" format.name$ }
if$
}
a mudança está no segundo ramo da condicional mais interna. A versão isprs.bst
atualmente disponível emhttp://www.isprs.org/documents/orangebook/app5.aspxtem
s #1 "{vv~}{ll}" format.name$ " , " * % replaced and with ,
lá e nós fazemos ler
s #1 "{vv~}{ll}" format.name$ " and " *
de novo. Observe o comentário deles e o espaço em branco falso antes da vírgula.
É claro que você ainda deve relatar esse problema ao mantenedor do modelo e não deve modificar o .bst
arquivo diretamente. Apenas modifique e renomeie, copie, isprs-and.bst
diga e documente as alterações.