BibTeX handling of the Dutch "van" name prefix with natbib

A working scheme seems to be

\documentclass{article}
\usepackage[authoryear]{natbib}
\usepackage{hyperref}

% #1: sorting key, #2: prefix for citation, #3: prefix for bibliography
\DeclareRobustCommand{\VAN}[3]{#2} % set up for citation

\begin{document}
\citet{vannoort}
\citet{other}

\bibliographystyle{plainnat}

% here we change the meaning of \VAN to use the prefix for the bibliography
\DeclareRobustCommand{\VAN}[3]{#3}

\bibliography{vannoort}
\end{document}

where the entry in the .bib file is

@article{vannoort,
author={{\VAN{Noort}{Van}{van}} Noort, Thomas},
title={An important paper},
year=2010,
}

In the first argument to \VAN you can put anything you need to ensure correct sorting.


A couple of words, as asked by Florian Rubach.

To BibTeX, something like {\command{something}} is like an "accent"; usually one does {\"{u}} to get sorting of ü like "u" (which may not be correct in German, but it is for English). However, this feature can be used to force the sorting we want.

With \DeclareRobustCommand{\VAN}[3]{#2} in the preamble, we are saying that when LaTeX finds \VAN{Noort}{Van}{van} in the document, it should ignore the first and third argument, so printing "Van". This will come from what has been stored reading the aux file. However, before the bibliography we change the command so that it ignores the first and second argument, so printing "van", which is what's desired in the bibliography.

The first argument is never used by LaTeX, but it is by BibTeX; the string in the first argument can be anything that ensures correct sorting: It comes before the rest of the surname, so it will the most important information for sorting.

I should mention that I wouldn't change how a name appears in the two places.


Natbib offers the \Citet command for languages where you usually use the lower case version, but not at the beginnig of a sentence. This command will make the van, von, di etc. upper case. Nothing stops you from using \Citet every where. This can be combined with your \noopsort solution:

\documentclass{article}
\usepackage[authoryear]{natbib}
\usepackage{hyperref}

\newcommand{\noopsort}[2]{#2}

\begin{document}
\citet{vannoort}
\Citet{vannoort}
\Citet{other}

\bibliographystyle{plainnat}
\bibliography{vannoort}
\end{document}

vannoort.bib:

@article{vannoort,
    author={\noopsort{Noort}{van Noort}, Thomas},
    title={An important paper},
    year=2010
}

@article{other,
    author={Other, Some},
    title={Not so important paper},
    year=2011
}

output:

enter image description here


I understand that disregarding the "von" component of an author's name for purposes of sorting is common practice in Dutch typography -- quite likely because roughly half the Dutch population have either "de" or "van" in their names. (OK, this may be a slight exaggeration...) The "Dutch" sorting style is, by the way, not unique to the Dutch; for instance, I know for a fact that it is also practiced, to some degree, in the German-speaking part of Switzerland. E.g., a person named "Peter von Matt" living in Zurich would be listed in the phone book under "Matt, Peter von" rather than under "von Matt, Peter".

It's actually quite easy to modify most bibliography styles to implement the "Dutch" sorting style. Modifying the bibliography stye file spares you the task of hand-editing (possibly lots and lots of) author fields in your .bib file to override the default sorting method for the names in question. The following discussion assumes that you use the plainnat bibliography style; adjustments shouldn't be difficult to figure out for many other bibliography styles.

  • Find the file plainnat.bst in your TeX distribution. Make a copy of this file and call the copy (say) plaindutch.bst. (Do not edit/modify an original file of your TeX distribution directly.)

  • Open plaindutch.bst in your favorite text editor.

  • Locate the function sort.format.names. In that function, locate the following line:

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

    Change this line to:

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

    Even if you're entirely unfamiliar with BibTeX's syntax, I trust you're able to tell what's going on: with the change in place, the sorting by authors' names will disregard any "von" part.

  • Save the file plaindutch.bst either in the same directory as your main .tex file or in a directory that's searched by your TeX distribution. If you use the latter method, be sure to update the TeX distribution's filename database.

  • Start using the new bibliography style by issuing the instruction \bibliographystyle{plaindutch} in your .tex files.

Happy BibTeXing!

Comment: This answer was originally posted to address the question Latex citations Bibtex. Wrong capital and alphabetical order. However, that question got closed as being a duplicate of this posting, so I've migrated my answer so that others may (hopefully) come across it.