41

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

  • 5
    Ah, the tussenvoegsel: the bane of poorly-thought-out name-handling software everywhere ;) – Piskvor left the building 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
34

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.

| improve this answer | |
  • 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.) – Fred Foo 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
  • 1
    @dremodaris No, it isn't, because it will not print “Von Last” in the running text. – egreg Dec 16 '19 at 12:21
11

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

| 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" (!) – Fred Foo 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! – Fred Foo Apr 27 '13 at 19:05
8

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.

| improve this answer | |
2

Before you start hacking away or using LaTeX code to address this: perhaps bibtex can do this natively?

Bibtex can recognise 4 nameparts, but only if you feed it authornames in a format in which it can distinguish each part:

  • Firstname
  • Lastname
  • "jr" (designations like jr, sr and such)
  • "von" part (designations like von, van, van de, di, etc.)

See http://maverick.inria.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html#names for a lot more info.

Short version: use author = {von Last, jr, First} with no capital letter for the "von" part, starting Last and First with capitals. jr can be either capitals or not.

I'm not sure if this addresses your problem, but if it doesn't, then you indeed might want to patch \citet to handle capitalisation correctly.

| improve this answer | |
  • The setup author = {von Last, jr, First} will force BibTeX to interpret von Last as the surname component of the full name. (Aside: I have some doubts that the information given in the link you provided is entirely correct.) Hence, Thomas van Noort will get sorted under V instead of under N. Unfortunately, this outcome violates the first of the OP's four stated requirements. – Mico Apr 24 '18 at 8:20
  • 1
    @dremodaris This won't yield "Von Last” in the text as the OP wants. That's why I decided for a more complex solution. – egreg Dec 16 '19 at 12:21
  • @dremodaris - You are conflating and confusing two things: (a) how the citation call-out is formed (e.g., [Las08]) and (b) how the entries are sorted. Inferring from the form of the alpha-style citation call-out that the sorting is done according to the OP's object is simply not warranted. Moreover, the OP said nothing about how the citation call-outs should look like: numeric, authoryear-style, alpha-style, or whatever. Any answer is should be predicated on the form of the citation call-outs, which are not relevant for the question at hand. – Mico Dec 16 '19 at 16:35
  • @dremodaris - You should have mentioned the fact that you use biber -- and biblatex too, right? -- much sooner. The biblatex/biber way of implementing the alpha style is quite different from the bibtex way of doing things. Since the OP's question clearly indicated that he/she was using bibtex, any solution that deviates materially from that setup should be flagged prominently for taking a very different (and probably utterly non-comparable) approach. – Mico Dec 17 '19 at 3:24
  • This solution worked for me (but I'm using biber and alpha-style citations): I wrote author = {von Last, First}, and the paper got listed at the letter L and cited as [Las08]. (Note: I deleted my earlier comments, which were between confusing and incorrect. Some reactions may still be around.) – dremodaris Dec 20 '19 at 23:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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