6

The \Cite command in biblatex capitalises the first prefix in a list of names:

\cite: de Jonge and de Bruin
\Cite: De Jonge and de Bruin

Unfortunately in Dutch publications all prefices need to be capitalised. Basically I need: De Jonge and De Bruin.

This is only valid in the text, in the bibliography I still need "Jonge, M. de and T. de Bruin" (this was achieved with the hack outlined at How can I put a name's prefix in front in citations but *not* in the bibliography?).

Does anyone know how I can fix this in biblatex?

6
  • I'm surprised regarding your question. As far as I know the Dutch practice is not to capitalize the name prefix unless it is sentence initial.
    – Ariel
    Feb 9, 2015 at 13:07
  • Nope. If the surname has something in front of it, the prefix takes a small letter: Mr. de Bruin Tom de Bruin If it has nothing in front of it, it takes a capital: 'According to De Bruin' 'As quoted in De Bruin and De Jonge.' Feb 9, 2015 at 16:17
  • Well, have a look at the following link: books.google.de/…
    – Ariel
    Feb 10, 2015 at 9:27
  • 1
    What can I say, that book is wrong. And in some places horribly so, on page 70 there is a sentence beginnen with 'van Fraassen', and sentences always start with capital letters. Here is an English and Dutch explanation. en.wikipedia.org/wiki/Van_(Dutch)#Collation_and_capitalisation onzetaal.nl/taaladvies/advies/… Feb 10, 2015 at 12:46
  • 1
    Do you really want to argue about this? I shared the rules, that's just how it is. Feb 11, 2015 at 19:07

2 Answers 2

8

I just modified the minimal example of lockstep’s answer to your previous question:

\documentclass{article}

\usepackage[useprefix=false,style=authoryear]{biblatex}% "useprefix=false" is the default

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {de Author, A. and de Bruin, T.},
  year = {2001},
  title = {Alpha},
}
@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

\makeatletter
\AtBeginDocument{%
  \toggletrue{blx@useprefix}
  \renewcommand*{\mkbibnameprefix}[1]{\MakeCapital{#1}}}% this is the relevant line of code
\AtBeginBibliography{%
  \togglefalse{blx@useprefix}
  \renewcommand*{\mkbibnameprefix}[1]{#1}}% this sets the name prefix back
\makeatother

\begin{document}

Some text \autocite{A01,B02}.

Some text \Autocite{A01,B02}.

\printbibliography

\end{document}
4
  • 1
    I get the error: "Argument of \MakeCapital has an extra }". Both with the minimal example above and my original document. (and if I ignore the errors it works :D ) Jul 18, 2011 at 15:10
  • @Tom, strange, I don’t get an error. Which version are you using? I have biblatex.sty 2011/05/12 v1.4c
    – domwass
    Jul 18, 2011 at 16:59
  • v0.9a :D. Updating now. Jul 19, 2011 at 8:44
  • Ok, so after ages trying to update tex, it now works! Thanks! Jul 19, 2011 at 9:47
2

Perhaps there are better ways to do this:

\makeatletter
\newrobustcmd\NLCite{\begingroup
  \toggletrue{blx@useprefix}
  \renewcommand*{\mkbibnameprefix}[1]{\MakeCapital{##1}}%
  \@ifnextchar[\@NLCiteo\@NLCite}
\def\@NLCite#1{\cite{#1}\endgroup}
\def\@NLCiteo[#1]{\@ifnextchar[{\@NLCiteoo{#1}}{\@NLCiteox{#1}}}
\def\@NLCiteox#1#2{\cite[#1]{#2}\endgroup}
\def\@NLCiteoo#1[#2]#3{\cite[#1][#2]{#3}\endgroup}
\makeatother

Now \NLCite has the same syntax as \Cite, but does what you want.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .