# Biblatex: have “and” in the citation but “&” in the bibliography

I'm starting using BibLatex/biber to process my bibliographic entries in Latex. Using the authoryear style as a start, I tweak in order to comply to editorial style of the journal I'll submit my paper to. One of the tweaks is to replace the default "and" by an ampersand (&) before the last author in the bibliography, using the following code:

% Add a comma and replace "and" with "&" before last coauthor
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%


Unfortunately this code does also replace the "and" in citations, contrary to what the journal wants for citations.

My question is, how to replace "and" by "&" only in the bibliography? It seems like biblatex-dw has this option but my document doesn't compile with this style.

I'm sure BibLaTeX has facilities for better and more efficient solutions, a quick hack is the following

\documentclass{article}

\usepackage{filecontents}
\usepackage{etoolbox}
\usepackage[style=authoryear]{biblatex}

\newtoggle{incitation}
\pretocmd{\citesetup}{\toggletrue{incitation}}{}{}
\pretocmd{\bibsetup}{\togglefalse{incitation}}{}{}
\newcommand{\biband}{\iftoggle{incitation}{and}{\&}}

\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%

\begin{filecontents}{\jobname.bib}
@article{test,
author = "Family, Given and FamilyTwo, GivenTwo",
title = "title",
journal = "Journal",
year = "2012"}
\end{filecontents}

\begin{document}

\cite{test}

\printbibliography

\end{document}


EDIT

Based on the suggestion by @Audrey

\documentclass{article}

\usepackage{filecontents}
\usepackage[style=authoryear]{biblatex}

\newcommand{\biband}{\ifcurrentname{labelname}{\bibstring{and}}{\&}}

\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%

\begin{filecontents}{\jobname.bib}
@article{test,
author = "Family, Given and FamilyTwo, GivenTwo",
title = "title",
journal = "Journal",
year = "2012"}
\end{filecontents}

\begin{document}

\cite{test}

\printbibliography

\end{document}

\documentclass{article}

\usepackage{filecontents}
\usepackage[style=authoryear,backend=biber]{biblatex}% delete backend= when running bibtex

\begin{filecontents}{\jobname.bib}
@article{test,
author = "Family, Given and FamilyTwo, GivenTwo and Family3, Given3",
title = "title",
journal = "Journal",
year = "2012"}
\end{filecontents}

\begin{document}
foo\cite{test}

\begingroup
\renewcommand*\finalnamedelim{ \& }
\printbibliography
\endgroup
\end{document}

• +1 You could use \AtBeginBibliography instead. bibtex is no longer the default backend. – Audrey Aug 19 '12 at 16:25
• TL2012 has biblatex 1.7 and that version has bibtex as main backend and using AtBeginBibliography makes no difference here – user2478 Aug 19 '12 at 16:28
• @Herbert biblatex 2.x has biber as backend. Thus I would suggest to explicitly set the backend in both cases to cater for biblatex 1.7 and 2.x – Guido Aug 19 '12 at 19:30
• @Guido, I know, but I am using current version of TeXLive! And setting the backend doesn't hurt. – user2478 Aug 19 '12 at 19:32
• @Herbert it is about the comment in the source "delete backed= when running bibtex" – Guido Aug 19 '12 at 21:38