[Tex/LaTex] BibTeX handling of the Dutch “van” name prefix with natbib

bibtexcapitalizationsorting

I want to produce the following with LaTeX/BibTeX:

In the running text:

… we refer the reader to the work of Van Noort (2010).

In the bibliography:

Thomas van Noort. An important paper. 2010.

I have tried many tricks, but I don't seem to able to fulfill all the requirements:

  1. "Thomas van Noort" has to appear sorted in the bibliography by the name "Noort".
  2. In the running text, the "Van" needs to have an uppercase 'V'
  3. In the bibliography, the "van" needs to have a lowercase 'v'
  4. I am using hyperref, and I want the whole "Van Noort (2010)" text to link to the reference.

Using plain \citet will generate:

… we refer the reader to the work of van Noort (2010).

Note the lowercase 'v'; this is not acceptable, as per standard treatment of Dutch names. Setting the BibTeX name to Van Noort, Thomas makes the running text citation look ok, but then in the bibliography I get

Thomas Van Noort. An important paper. 2010.

Note the uppercase 'V'; this is also not acceptable, as it should only be uppercase if it is not preceded by the first name.

(1) is easy: I set the BibTeX author field to {\noopsort{Noort}}{van Noort}, Thomas. (2) and (3) I can fake by saying something like we refer the reader to the work of Van Noort \citeyear{...}, but this is not nice, and does not fulfill (4).

Anyone has any suggestions? I was under the impression that LaTeX and BibTeX were designed with these kind of things in mind, so maybe I'm missing something…

Best Answer

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.