drei Autoren, gefolgt von „et al“ auf der BibTeX-Referenzliste

drei Autoren, gefolgt von „et al“ auf der BibTeX-Referenzliste

Ich habe diese Antwort auf eine sehr ähnliche Frage gefunden:BibTeX: Wie kann man lange Autorenlisten auf „Erstautor et al.“ reduzieren?

Die vorgeschlagene Lösung hat bei mir jedoch nicht funktioniert. Ich habe einen vom Verlag bereitgestellten Stil, der gleichzeitig erklärt, dass die Referenzautoren nach dem dritten Autor abgeschnitten werden sollten (gefolgt von et al.).

in der Datei habe ich es gefunden { namesleft #1 >und es wie in der Antwort beschrieben geändert, aber es hat nicht funktioniert. Können Sie mir helfen?

{ '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$
} ```

Antwort1

Der OP hat in einem Kommentar angegeben, dass er/sie den spbasicvon Springer bereitgestellten Bibliografiestil verwendet.

Um die gewünschte Formatierung zu erreichen -- also die Namen aller Autoren anzuzeigen, wenn ein Eintraghöchstens 4Autoren, sondern nur die ersten drei Autoren, gefolgt von "et al.", wenn der Eintragmehr als 4Autoren - ich schlage vor, Sie gehen wie folgt vor.

  • Erstellen Sie eine Kopie von spbasic.bstund nennen Sie die Kopie beispielsweise spbasic85.bst.

  • Öffnen Sie die Datei spbasic85.bstin einem Texteditor. Das Programm, das Sie zum Bearbeiten von Tex-Dateien verwenden, ist geeignet.

  • Suchen Sie die Funktion format.names. (In meiner Kopie der BST-Datei beginnt die Funktion in Zeile 455.)

  • Suchen Sie in dieser Funktion nach den folgenden beiden Zeilen:

          nameptr #1 >
            {
    
  • Fügen Sie unmittelbar nach diesen beiden Zeilen und daher vor der Zeile mit namesleft #1 >die folgenden 8 Codezeilen ein:

              nameptr #3
              #1 + =
              numnames #4
              > and
                { "others" 't :=
                  #1 'namesleft := }
                'skip$
              if$
    
  • Speichern Sie die Datei spbasic85.bstentweder in dem Ordner, der die Haupt-Tex-Datei enthält, oder in einem Ordner, der von BibTeX durchsucht wird. Wenn Sie die letztere Option wählen, achten Sie darauf, auch ein entsprechendes Update auf die Dateinamendatenbank Ihrer TeX-Distribution anzuwenden. (Wenn Sie nicht sicher sind, ob Sie den vorhergehenden Satz verstehen, empfehle ich Ihnen dringend, Option 1 zu wählen...)

  • Wechseln Sie in Ihrer Haupt-Tex-Datei \bibliographystyle{spbasic}zu \bibliographystyle{spbasic85}und führen Sie einen vollständigen Neukompilierungszyklus durch (LaTeX, BibTeX und LaTeX noch zweimal) um alle Änderungen zu übernehmen.


Ein vollständiges MWE:

Bildbeschreibung hier eingeben

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

verwandte Informationen