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”拼写他们的名字,那么它就应该以小写字母“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)。

祝您 BibTeX 愉快!

相关内容