Modifique el archivo bst para que 2 autores estén separados por "y" en el texto

Modifique el archivo bst para que 2 autores estén separados por "y" en el texto

Tengo que trabajar con un archivo .bst personalizado para un artículo. Cuando tengo exactamente dos autores como referencia, estos autores se separanen el textocon " , ".
Así, por ejemplo (Simonyan, Zisserman, 2014). Quiero que así sea (Simonyan y Zisserman, 2014).
En mi bibliografía el estilo es correcto. Entonces, ¿es necesario cambiar el archivo .bst?
Creo que aquí están las líneas 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$
}

Respuesta1

La macro relevante es format.lab.names.abbr. Para el "y" tiene que leer

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$
}

el cambio está en la segunda rama del condicional más interno. La versión isprs.bstactualmente disponible enhttp://www.isprs.org/documents/orangebook/app5.aspxtiene

s #1 "{vv~}{ll}" format.name$ " , " * % replaced and with ,

ahí y lo hacemos leer

s #1 "{vv~}{ll}" format.name$ " and " *

de nuevo. Tenga en cuenta su comentario y el espacio en blanco falso antes de la coma.


Por supuesto, aún debes informar este problema al responsable de la plantilla y no debes modificar el .bstarchivo directamente. Solo modifique y cambie el nombre, copie, isprs-and.bstdigamos y documente los cambios.

información relacionada