Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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...

share|improve this question

migrated from stackoverflow.com Jan 11 '12 at 13:45

This question came from our site for professional and enthusiast programmers.

2  
Ah, the tussenvoegsel: the bane of poorly-thought-out name-handling software everywhere ;) –  Piskvor Jan 11 '12 at 13:38
    
Apologies if this is not an option for you but biblatex instead of plain bibtex makes this sort of thing a lot easier. –  PLK Jan 11 '12 at 14:06
add comment

3 Answers

up vote 17 down vote accepted

A working scheme seems to be

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

\DeclareRobustCommand{\VAN}[3]{#2}

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

\bibliographystyle{plainnat}

% here we change the meaning of \VAN
\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.

share|improve this answer
    
Ingenious... and works perfectly. Thanks! –  Dreixel Jan 11 '12 at 14:14
2  
Another, clean solution is to run the utility makebst.tex. (Run it by typing latex makebst at a command prompt.) It's a menu-driven program with lots of questions and even more answers that may be chosen. Some of the questions concern how to sort, and how to typeset, names containing a "von" part. The output of the program is a bibliography style file (extension .bst) that meets all of your specialized needs. –  Mico May 22 '12 at 20:29
    
I do not quite get what the \VAN command does in the bibliography, could you explain? But it works like a charm! –  Florian Rubach Feb 25 '13 at 14:49
    
Doesn't work for me, I'm getting cryptic "undefined control sequence" errors. Is this supposed to work out of the box with standard BibTeX, without a preamble? (Running latest MikTeX 2.9, freshly installed yesterday.) –  larsmans Apr 27 '13 at 12:23
    
@larsmans Without a simple example, it's difficult to say. Can you ask a followup question with a minimal working example (MWE)? –  egreg Apr 27 '13 at 12:37
show 1 more comment

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

share|improve this answer
    
+1 because this solution almost works for me, while I can't get the accepted answer to work at all. The only thing that goes wrong is that "Van Rossum" is sorted under R, but before "Recht" (!) –  larsmans Apr 27 '13 at 12:13
    
@larsmans, I'm sorry but I have no better solution. Have you tried to use an custom style as explained in Mico's answer? –  quinmars Apr 27 '13 at 17:03
    
I managed to fix egreg's solution in the meanwhile. Thanks anyway! –  larsmans Apr 27 '13 at 19:05
add comment

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 half the Dutch population have either "de" or "van" in their names. (OK, this may be a slight exaggeration...) The "Dutch" sorting style is, of course, not unique to the Dutch; I know it's 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 plain bibliography style; adjustments shouldn't be difficult to figure out for many other bibliography styles.

  • Find the file plain.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.)

  • 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: 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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.