[Tex/LaTex] How to put a name’s prefix in front in citations but *not* in the bibliography

biblatexsorting

For my Dutch thesis I need to have the prefix to a name when using the \cite command but not in the bibliography. So basically what I need is

Cite: ‘De Jonge’

Bibliography: ‘Jonge, Marinus, de’

I cannot achieve this at the same time with biblatex, as it seems that I need useprefix=true for the citations and useprefix=false for the bibliography.

Can anyone help?

Best Answer

domwass' solution has one problem: In the bibliography, author names will be typeset without the prefix at the start, but sorting will still use the name prefix. So I suggest to a) set useprefix=false when loading biblatex b) use domwass' hack to set the underlying toggle to true at the begin of the document c) use the hack again to set it to false at the begin of the bibliography.

\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.},
  year = {2001},
  title = {Alpha},
}
@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

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

\begin{document}

Some text \autocite{A01,B02}.

\printbibliography

\end{document}