BibTeX の参考文献リストで 3 人の著者の後に「et al」が続く

BibTeX の参考文献リストで 3 人の著者の後に「et al」が続く

非常によく似た質問に対するこの回答を見つけました:BibTeX: 長い著者リストを「Firstauthor et al.」に短縮するにはどうすればよいでしょうか?

しかし、提案された解決策は私にはうまくいきませんでした。出版社から提供されたスタイルでは、参考文献の著者は3人目の著者以降を切り捨てるべきであると説明されていました(その後にet alが続きます)。

ファイル内で を見つけて{ namesleft #1 >、その返信の指示に従って変更しましたが、機能しませんでした。助けてもらえますか?

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

答え1

OP はコメントで、spbasicSpringer が提供する参考文献スタイルを使用していると述べています。

望ましい書式設定を実現するには、エントリに著者名がある場合はすべての著者名を表示します。最大4著者名を記載するのではなく、エントリに「et al.」が続く最初の3人の著者のみを表示する。4以上著者 -- 次のように進めることをお勧めします。

  • のコピーを作成しspbasic.bst、そのコピーを と呼び出しますspbasic85.bst

  • テキスト エディターでファイルを開きますspbasic85.bst。Tex ファイルの編集に使用するプログラムであれば問題ありません。

  • 関数を見つけますformat.names。(私の bst ファイルのコピーでは、関数は 455 行目から始まります。)

  • この関数で、次の 2 行を見つけます。

          nameptr #1 >
            {
    
  • これらの 2 行の直後、つまり という行の前にnamesleft #1 >、次の 8 行のコードを挿入します。

              nameptr #3
              #1 + =
              numnames #4
              > and
                { "others" 't :=
                  #1 'namesleft := }
                'skip$
              if$
    
  • ファイルはspbasic85.bst、メインの tex ファイルを含むフォルダーか、BibTeX によって検索されるフォルダーに保存します。後者のオプションを選択した場合は、TeX ディストリビューションのファイル名データベースに適切な更新を適用することも忘れないでください。(前の文の意味がよくわからない場合は、オプション 1 を選択することを強くお勧めします...)

  • メインの tex ファイルで、\bibliographystyle{spbasic}に変更し\bibliographystyle{spbasic85}、完全な再コンパイル サイクル (LaTeX、BibTeX、LaTeX をさらに 2 回) を実行して、すべての変更を伝播します。


完全な MWE:

ここに画像の説明を入力してください

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

関連情報