16

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?

1
14

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}
2
  • 6
    +1 Nice catch. This helps me with a related problem - I like to use the prefix in both citations and the bibliography, but sort without it. I can adapt your solution with \AtEveryBibitem{\toggletrue{blx@useprefix}}.
    – Audrey
    Jun 22 '11 at 16:39
  • 1
    I also add \AtEveryCite{\toggletrue{blx@useprefix}} because I have citation commands in the note of the bibliography. So, I need this to have the prefix printed in these citations that appear in the bibliography.
    – TeXtnik
    Oct 29 '17 at 19:59
4

You could use the option useprefix=true and put the following in the preamble:

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

I did not test it, though, since you did not give a minimal example.

0

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.