Latex 引用 Bibtex。大寫和字母順序錯誤

Latex 引用 Bibtex。大寫和字母順序錯誤

在我的參考書目中,引文的順序是錯誤的。例如:

@inproceedings{17Degroot,
  title={Critical scour: new bed protection design method},
  author={De Groot, M.B.},
  booktitle={Journal of Hydraulic Engineering},
  volume={114},
  pages={1227--1240},
  year={1988},
  publisher={ASCE, New York, USA}
}

在我的參考書目中可能應該說MB de Groot(沒有大寫D),而在我的報告中,它應該將其稱為[De Groot, 1988](大寫D)。除此之外,參考書目中的字母順序是錯誤的。 Bibtex 將其排序在 D 上,而它應該在G.我和許多其他使用介詞的作者也有同樣的問題。

我正在使用plainnat參考書目風格。

謝謝您的幫忙。

答案1

引文中的作者如何拼寫他們的名字?如果它帶有大寫“D”,那麼它應該在參考書目中出現。但是,您需要使用一些技巧來將bibtex“De”部分視為前綴:

\documentclass{article}

\usepackage{natbib}

\bibliographystyle{plainnat}

\begin{filecontents*}{test.bib}
@inproceedings{17Degroot,
  title={Critical scour: new bed protection design method},
  author={{\uppercase{d}e} Groot, M.B.},
  booktitle={Journal of Hydraulic Engineering},
  volume={114},
  pages={1227--1240},
  year={1988},
  publisher={ASCE, New York, USA}
}
\end{filecontents*}

\begin{document}

Text cite: \citet{17Degroot}
Parenthetical cite: \citep{17Degroot}.

\bibliography{test}

\end{document}

如果作者用小寫的「d」拼寫他們的名字,那麼這就是它在文本中出現的方式,除非引文開始一個句子。

\documentclass{article}

\usepackage{natbib}

\bibliographystyle{plainnat}

\begin{filecontents*}{test.bib}
@inproceedings{17Degroot,
  title={Critical scour: new bed protection design method},
  author={de Groot, M.B.},
  booktitle={Journal of Hydraulic Engineering},
  volume={114},
  pages={1227--1240},
  year={1988},
  publisher={ASCE, New York, USA}
}
\end{filecontents*}

\begin{document}

Text cite: \citet{17Degroot}
Parenthetical cite: \citep{17Degroot}.

\Citet{17Degroot} blah blah.

\bibliography{test}

\end{document}

編輯:以下是如何按“G”而不是“d”排序:

\documentclass{article}

\usepackage{natbib}

\bibliographystyle{plainnat}

\newcommand*{\swap}[2]{#2#1}

\begin{filecontents*}{test.bib}
@inproceedings{17Degroot,
  title={Critical scour: new bed protection design method},
  author={{\swap{Groot}{de }}, M.B.},
  booktitle={Journal of Hydraulic Engineering},
  volume={114},
  pages={1227--1240},
  year={1988},
  publisher={ASCE, New York, USA}
}

@inproceedings{Gadzooks,
 title={Sample},
 author={A. Gadzooks},
 booktitle={Blah},
 year=2013
}

@inproceedings{Grunt,
 title={Sample},
 author={A. Grunt},
 booktitle={Blah},
 year=2013
}

@inproceedings{Datone,
 title={Sample},
 author={A. Dat-one},
 booktitle={Blah some more},
 year=2013
}

@inproceedings{Disone,
 title={Sample},
 author={A. Dis-one},
 booktitle={Blah some more},
 year=2013
}

\end{filecontents*}

\begin{document}

\Citet{17Degroot} blah blah.
\Citep{17Degroot}.

\cite{*}

\bibliography{test}

\end{document}

結果:

結果影像

答案2

據我所知,為了排序而忽略作者姓名中的“von”部分在荷蘭語中很常見 - 可能有一半人口的名字中含有“de”或“van”。 (好吧,這可能有點誇張……)修改plainnat參考書目風格來實現“荷蘭語”排序風格其實並不難。修改參考書目麥粒腫文件將使您免去手動編輯文件author中(可能是大量)欄位的任務.bib

  • 在您的 TeX 發行版中找到該檔案plainnat.bst。製作該檔案的副本,並呼叫該副本(例如)myplainnat.bst。 (請勿編輯原始文件。)

  • myplainnat.bst在您最喜歡的文字編輯器中開啟。

  • 找到該函數sort.format.names。 (它從我的 副本中的第 1207 行開始plainnat.bst。)在該函數中,找到以下行:

          s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
    

    將此行更改為:

          s nameptr "{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
    

    即使您完全不熟悉 BibTeX 的語法,我認為您應該能夠知道發生了什麼:排序現在只包括作者的姓氏,後面是任何名字,後面是任何“初級”組件。

  • 將檔案儲存myplainnat.bst在與主檔案相同的目錄中.tex,或儲存在 TeX 發行版搜尋到的目錄中。如果您使用後一種方法,請務必更新 TeX 發行版的檔案名稱資料庫。

  • \bibliographystyle{myplainnat}透過在文件中發出指令開始使用新的參考書目樣式.tex

尼古拉·塔爾博特(Nicola Talbot)在對您的帖子的答覆中已經提到瞭如何獲得引文包含以大寫字母開頭的小寫“von”部分:使用\Citet\Citep引用命令(而不是\citet\citep)。

BibTeXing 快樂!

相關內容