15

This question has been posed in many different variants, but not exactly as I ask here, so please do not consider this as a duplicate.

I use biblatex with the option useprefix. I would like to have the following automatic behavior:

  1. Name prefixes are rendered before the last name in the bibliography, but always in lower case.

  2. The name prefixes are ignored for the sake of sorting of the bibliography.

  3. In running text, the name prefix is rendered with a capital letter at the beginning of a sentence, and lower case elsewhere (possible using \Textcite vs. \textcite).

To achieve this, I can have three author fields for each concerned entry, with the following scheme:

author = { {v}an Dijk, A.}
shortauthor = { van Dijk, A.}
sortname = {Dijk, A. van}

Is there a simple way to automate this? Ideally, such a way could also allow for easy changing of the system.

  • 1
    I think in order to automate this, you need some unambiguous 'clue' in the entry that can be picked up on. Then, with Biber, you could do some field mapping I suppose. Without more context about the entries, the languages involved, the entries-to-be-distingushed, etc., it is hard to propose an especially useful solution. What about "English" authors who have Dutch surnames? Also: what's the point of the space in your entry snippets? Also also: I'd be inclined to write {van} rather than {v}an, which will mess up kerning. – jon Feb 6 '15 at 17:41
  • @jon Thanks for the tip on kerning! The space is just for clarity. To clarify, this should be a document wide setting. In fact, all name prefixes (van/von/de etc.) should be treated the same way. It is true that some authors (Belgians, for instance) consider "Van" as part of the family name, but then it should be written with a capital letter in the author field and would thus not be treated as a name prefix at all. – Ariel Feb 9 '15 at 13:01
  • Another neat feature would be that in entries with name prefix would add an automatic "see under" reference in the bibliography. So in the example above, the following entry would be additionally entered in the bibliography under "van": "van Dijk, see under Dijk" (while at the place for Dijk we would have "van Dijk"). – Ariel Feb 9 '15 at 13:04
12

With a current biblatex version I recommend the slightly longer, but conceptually cleaner solution presented in Prefixes in author names in references and bibliography. The answer here still remains functional (if a bit hacky).

In order to get the sorting in the bibliography right, we have to set useprefix=false at loading-time. E.g.

\usepackage[style=authoryear,sorting=nyt,backend=biber,useprefix=false]{biblatex}  

Then we turn on \useprefix in the actual document - i.e. in the citations and bibliography.

\makeatletter
\AtBeginDocument{\toggletrue{blx@useprefix}}
\makeatother

With \AtBeginBibliography{\toggletrue{blx@useprefix}} you can control the bibliography separately.

Since we want the prefix to be in lower-case in the bibliography, we issue

\renewbibmacro*{begentry}{\midsentence}

MWE

\documentclass{scrartcl}            
\usepackage[style=authoryear,sorting=nyt,backend=biber,useprefix=false]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{dijk,
  author       = {van Dijk, A.},
  title        = {Some Nice Title},
  date         = 2015,
  publisher    = {P. Ublisher},
  location     = {Place},
}
\end{filecontents*}   
\bibliography{biblatex-examples.bib}  
\bibliography{\jobname.bib}  

\renewbibmacro*{begentry}{\midsentence}

\makeatletter
\AtBeginDocument{\toggletrue{blx@useprefix}}
\makeatother

\begin{document}  
\cite{cicero,wassenberg,dijk,gillies}  
\printbibliography  
\end{document}  

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.