Supongamos que mi referencia se parece a la siguiente:
Autor, JM (2006). Comparación de modelos de abundancia de especies. Modelado ecológico, 199(2):153 – 163.
Cómo quitar espacio entre las dos iniciales del autor, para que obtenga Apellido, JM
¡Gracias!
Respuesta1
Haga una copia apalike.bst
y asígnele un nombre útil como apalike-nospace.bst
. Guarde esto en su texmf
carpeta local en texmf/bib/bst
.
Luego cambie la format.names
función en el .bst
archivo. El cambio crucial está en la siguiente cadena de la función que indica bibtex
cómo formatear las piezas de nombre:
"{vv~}{ll}{, jj}{, f.}"
Esto debe cambiarse a:
"{vv~}{ll}{, jj}{, f{.}.}"
La f
parte es la parte inicial y la unidad entre elementos predeterminada es un espacio. Necesitamos anular eso explícitamente usando {.}
en su lugar.
Aquí está toda la función con versiones antiguas y nuevas:
Código original:
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first
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$
}
Nuevo código
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll}{, jj}{, f{.}.}" format.name$ 't := % last name first
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$
}