With biblatex and biber, citations in the text and the entries in the bibliography use the word and before the last author by default. I would like to replace this with the ampersand &. My question is very similar to this question, except I would like to use & both in citations and in the bibliography. I assume therefore that there might be a simpler solution than what the answers to that question suggest. Presumably some line in the preamble should take care of this?
Asked
Active
Viewed 7,448 times
6
-
It seems that the code snippet in the linked question (!) already provides the answer to your question. – lockstep Aug 21 '12 at 12:13
-
1@lockstep As mentioned, both the question and the answers I linked to are attempting to accomplish something more complicated than what I am. Hence I assume their suggestions are unnecessary complicated for my purpose. I have no difficulties accepting that that assumption is wrong - if it is. – Sverre Aug 21 '12 at 12:17
-
I read the linked question again, tested the included code snippet, and it seems to do exactly what you want. – lockstep Aug 21 '12 at 12:22
-
@lockstep I'm sure that's true. But since the person who wrote that code is attempting something more complicated, I assume the code is unnecessarily complicated as well (I'm no expert, I can't tell). To some this doesn't matter (if it does the job it does the job). To others it matters (the code should be as simple as possible). As said, if the code in the linked question is minimal enough as it is, I'll accept that. – Sverre Aug 21 '12 at 12:29
1 Answers
12
The original definition of \finalnamedelim may be found in biblatex.def:
\newcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\bibstring{and}\space}
Replace \bibstring{and} with \& and you're set:
\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\&\space}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A. and Buthor, B. and Cuthor, C.},
year = {2001},
title = {Alpha},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text \autocite{A01}.
\printbibliography
\end{document}

(The additional \addcomma in the code snippet provided in the linked question is superfluous; the respective punctuation should be handled by redefining \finalandcomma.)
lockstep
- 250,273
-
2For people reading this in 2021:
finalnamedelimis now a contex-sensitive delimiter, so you should replace\renewcommand*{\finalnamedelim}in the answer above with\DeclareDelimFormat{finalnamedelim}. Everything else still applies. – moewe Mar 30 '21 at 15:53