[Tex/LaTex] how to modify the biblatex ‘useprefix’ option

apa-stylebiblatexmla-style

In supplying an answer to this question: Preserve lowercase in bibtex I discovered that the way biblatex handles name prefixes is a bit odd, since it appears to be "all or nothing".

Update This question has been modified from the original to further clarify the problem.

From the biblatex manual:

useprefix=true, false default: false

Whether the name prefix (von, van, of, da, de, della, etc.) is considered when printing the last name in citations. This also affects the sorting and formatting of the bibliography as well as the generation of certain types of labels. If this option is enabled, biblatex always precedes the last name with the prefix. For example, Ludwig van Beethoven would be cited as “Beethoven” and alphabetized as “Beethoven, Ludwig van” by default. If this option is enabled, he is cited as “van Beethoven” and alphabetized as “Van Beethoven, Ludwig” instead. With Biber, this option is also settable on a per-type basis.

In a very similar question: How can I put a name's prefix in front in citations but *not* in the bibliography?, lockstep proposes a solution whereby the use of the prefix is turned on at the beginning of the document (and thereby used with in text citations) but turned off at the beginning of the bibliography (and thereby not used in the sorting of the bibliography.)

Here's an example:

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
% Use useprefix=false to ignore name prefixes
\usepackage[style=authoryear,backend=biber,useprefix=false]{biblatex}
\usepackage{ifpdf}
\makeatletter
\AtBeginDocument{\toggletrue{blx@useprefix}}
\AtBeginBibliography{\togglefalse{blx@useprefix}}
\makeatother
\begin{filecontents}{\jobname.bib}
@book{Saussure1995,
    Author = {Ferdinand de Saussure},
    Origyear = {1916},
    Publisher = {Payot},
    Title = {Cours de Linguistique G{\'e}n{\'e}rale},
    Year = {1995}}

@book{Labov1972,
    Address = {Philadelphia},
    Author = {William Labov},
    Publisher = {University of Pennsylvania Press},
    Title = {Sociolinguistic Patterns},
    Year = {1972}}

\end{filecontents}
\addbibresource{\jobname}
\begin{document}
The relation between the the sign and the signified is arbitrary \autocite{Saussure1995,Labov1972}. 

Language change is driven by language variation. \autocite{Labov1972}.

\printbibliography


\end{document}

This correctly yields "de Saussure" in the in text citations and "Saussure, Ferdinand de" in the bibliography, but it still has one side effect. In a list of citations, because useprefix is set to true, the in text citation yields "(de Saussure 1995; Labov 1972)" instead of "(Labov 1972; de Saussure 1995)".

So here's the question:

How can we make biblatex use the prefix in citations, not use the prefix in the bibliography, and sort lists of in text citations correctly so that we get "de Saussure" in the citation lists to sort with S rather than D?

This is a generic problem for any authoryear or author style, so I've created a new question to reflect that, and added both the and the tags.

Best Answer

Now the correct one ;-)

The option sortcites should work:

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}

\usepackage[style=authoryear,backend=biber,useprefix=false,sortcites=true]{biblatex}
\usepackage{ifpdf}
\makeatletter
\AtBeginDocument{\toggletrue{blx@useprefix}}
\AtBeginBibliography{\togglefalse{blx@useprefix}}
\makeatother
\begin{filecontents}{\jobname.bib}
@book{Saussure1995,
    Author = {Ferdinand de Saussure},
    Origyear = {1916},
    Publisher = {Payot},
    Title = {Cours de Linguistique G{\'e}n{\'e}rale},
    Year = {1995}}

@book{Labov1972,
    Address = {Philadelphia},
    Author = {William Labov},
    Publisher = {University of Pennsylvania Press},
    Title = {Sociolinguistic Patterns},
    Year = {1972}}

\end{filecontents}
\addbibresource{\jobname}
\begin{document}
The relation between the the sign and the signified is arbitrary \autocite{Saussure1995,Labov1972}. 

Language change is driven by language variation. \autocite{Labov1972}.

\printbibliography


\end{document}

enter image description here