tres autores seguidos de "et al" en la lista de referencias de BibTeX

tres autores seguidos de "et al" en la lista de referencias de BibTeX

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 spbasicestilo 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.bsty llame a la copia, digamos, spbasic85.bst.

  • Abra el archivo spbasic85.bsten 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.bsten 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:

ingrese la descripción de la imagen aquí

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

información relacionada