第一著者が同じ場合は、plainnat 参考文献スタイルを使用して参考文献をアルファベット順に並べ替えます。

第一著者が同じ場合は、plainnat 参考文献スタイルを使用して参考文献をアルファベット順に並べ替えます。

Lionel Ho と同僚が書いた記事がたくさんあります。natbibパッケージとplainnatスタイルを使用しています。コンパイルすると、参考文献が第 2 著者の姓でソートされません。どうすれば解決できますか?

\documentclass[10pt,a4paper]{article}
\usepackage[top=1cm,bottom=1cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[comma,authoryear,round,sort]{natbib}
\bibliographystyle{plainnat}
\setcitestyle{citesep={;},yysep={;}}
\begin{filecontents*}{\jobname.bib}
@Article{Ho2012,
  author   = {Ho, Lionel and Dreyfus, J. and Boyer, J. and Lowe, T. and Bustamante, H. and Duker, P. and Meli, T. and Newcombe, G.},
  title    = {Fate of...},
  year     = {2012},
}

@Article{Ho2007,
  author   = {Ho, Lionel and Hoefel, D. and Saint, C. P. and Newcombe, Gayle},
  title    = {Isolation...},
  year     = {2007},}

@Article{Ho2008,
  author  = {Ho, Lionel and Slyman, Najwa and Kaeding, Uwe and Newcombe, Gayle},
  title   = {Optimizing...},
  year    = {2008},}
\end{filecontents*}
\begin{document} 
\citep{Ho2012,Ho2007,Ho2008}
\bibliography{\jobname}
\end{document}

結果:

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

sortオプションを消してみた

\usepackage[comma,authoryear,round]{natbib}

しかし結果は同じだ

答え1

問題を簡単に修正するには、次のコードを実行する必要があります。

% start of bib file
@preamble{ " \providecommand{\noopsort[1]{}} " }
@Article{Ho2012,
  author   = {Ho, Lionel and Dreyfus, J. and Boyer, J. and Lowe, T. and Bustamante, H. and Duker, P. and Meli, T. and Newcombe, G.},
  title    = {Fate of...},
  year     = {\noopsort{c}2012},}
@Article{Ho2007,
  author   = {Ho, Lionel and Hoefel, D. and Saint, C. P. and Newcombe, Gayle},
  title    = {Isolation...},
  year     = {\noopsort{a}2007},}
@Article{Ho2008,
  author  = {Ho, Lionel and Slyman, Najwa and Kaeding, Uwe and Newcombe, Gayle},
  title   = {Optimizing...},
  year    = {\noopsort{b}2008},}
% bib file continues...

この\noopsortマクロは、LaTeX に関しては何もしませんが、BibTeX の操作中に役割を果たします。基本的に、BibTeX は、年フィールドが「a2007」、「b2008」、および「c2012」である 3 つのエントリを「認識」します。これらがどのようにソートされるか想像してみてください。「a」、「b」、および「c」の粒子は、LaTeX による後続の処理中に「消えます」。


より徹底的な修正として、すべての著者の姓に従って自動的にソートが実行されるようにするには、ファイル (のコピー) を変更しますplainnat.bst。次の手順を実行することをお勧めします。

  • TeX ディストリビューションでファイルplainnat.bstと を見つけます。(なぜ なのかと疑問に思うかもしれません。これは、すべての著者の姓に基づいてソートを実行する bib スタイルだからです。) のコピーを作成し、そのコピーを と呼びます。chicago.bstchicago.bstplainnat.bstplainnat-mod.bstTeX ディストリビューションのオリジナルファイルを直接編集しないでください。

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

  • ファイルと でplainnat-mod.bstchicago.bstという関数を見つけますsort.format.names。(これらのファイルの私のコピーでは、関数はそれぞれ 1207 行目と 1407 行目から始まります。)

  • ファイル でplainnat-mod.bst、関数 の 29 行すべて (1207 行目から 1235 行目まで) を削除しますsort.format.names。 の関数 から 21 行すべて (1407 行目から 1427 行目まで) をコピーして、で行を削除した場所に貼り付けsort.format.namesます。chicago.bstplainnat-mod.bst

  • ファイルを閉じchicago.bst、ファイルを保存して閉じますplainnat-mod.bst。後者のファイルは、メインの tex ファイルがあるディレクトリか、BibTeX によって検索されるディレクトリに保存します。後者のオプションを選択する場合は、TeX ディストリビューションのファイル名データベースを適切に更新してください。

  • メインの tex ファイルで、命令\bibliographystyle{plainnat-mod}を に変更します\bibliographystyle{plainnat}。次に、完全な再コンパイル サイクル (latex、bibtex、latex をさらに 2 回) を実行して、すべての変更を完全に伝播します。

BibTeXを楽しんでください!

関連情報