
Encontré esta respuesta a una pregunta muy similar:BibTeX: ¿Cómo reducir las largas listas de autores a “Firstauthor et al.”?
Sin embargo, la solución propuesta no funcionó para mí. Tengo un estilo proporcionado por el editor quien, al mismo tiempo explica que los autores de referencia deben truncarse después del tercer autor (seguido de et al)
En el archivo encontré { namesleft #1 >
y lo cambié según las instrucciones de esa respuesta, pero no funcionó. ¿Me puedes ayudar?
{ 'bibinfo :=
duplicate$ empty$ 'skip$ {
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv~}{ll}{ f{}}{ jj}"
format.name$
remove.dots
bibinfo bibinfo.check
't :=
nameptr #1 >
% {
% namesleft #1 >
nameptr #1 >
{
nameptr #3
#1 + =
numnames #5
> and
{ "others" 't :=
#1 'namesleft := }
'skip$
if$
namesleft #1 >
{ ", " * t * }
{
"," *
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
t "others" =
{
" " * bbl.etal *
}
{ " " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
} if$
} ```
Respuesta1
El OP ha indicado en un comentario que utiliza el spbasic
estilo de bibliografía proporcionado por Springer.
Para lograr el formato deseado: mostrar los nombres de todos los autores si una entrada tienecomo mucho 4autores, pero para mostrar los primeros tres autores solo seguidos de "et al." si la entrada tienemás de 4autores: les sugiero que procedan de la siguiente manera.
Haga una copia
spbasic.bst
y llame a la copia, digamos,spbasic85.bst
.Abra el archivo
spbasic85.bst
en un editor de texto. El programa que uses para editar archivos tex estará bien.Localice la función
format.names
. (En mi copia del archivo bst, la función comienza en la línea 455).En esta función, ubique las siguientes 2 líneas:
nameptr #1 > {
Inmediatamente después de estas dos líneas y, por lo tanto, antes de la línea que dice
namesleft #1 >
, inserte las siguientes 8 líneas de código:nameptr #3 #1 + = numnames #4 > and { "others" 't := #1 'namesleft := } 'skip$ if$
Guarde el archivo
spbasic85.bst
en la carpeta que contiene el archivo tex principal o en una carpeta buscada por BibTeX. Si selecciona la última opción, asegúrese de aplicar también una actualización adecuada a la base de datos de nombres de archivos de su distribución TeX. (Si no está seguro de comprender la oración anterior, le sugiero que seleccione la opción 1...)En su archivo tex principal, cambie
\bibliographystyle{spbasic}
y\bibliographystyle{spbasic85}
realice un ciclo de recompilación completo (LaTeX, BibTeX y LaTeX dos veces más) para propagar todos los cambios.
Un MWE completo:
\documentclass{article}
\begin{filecontents}[overwrite]{mybib.bib}
@misc{abc,author="A and B and C",title="X",year=3000}
@misc{abcd,author="A and B and C and D",title="Y",year=3001}
@misc{abcde,author="A and B and C and D and E",title="Z",year=3002}
\end{filecontents}
\usepackage[authoryear]{natbib}
\bibliographystyle{spbasic85}
\begin{document}
\cite{abc}, \cite{abcd}, \cite{abcde}
\bibliography{mybib}
\end{document}