Modifique o arquivo bst para que 2 autores sejam separados por "e" no texto

Modifique o arquivo bst para que 2 autores sejam separados por "e" no texto

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.bstatualmente 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 .bstarquivo diretamente. Apenas modifique e renomeie, copie, isprs-and.bstdiga e documente as alterações.

informação relacionada