
Estoy empezando a usar BibLatex/biber para procesar mis entradas bibliográficas en Latex. Utilizando el estilo del año del autor como punto de partida, lo modifico para cumplir con el estilo editorial de la revista a la que enviaré mi artículo. Uno de los ajustes es reemplazar el "y" predeterminado por un signo comercial (&) antes del último autor en la bibliografía, usando el siguiente código:
% Add a comma and replace "and" with "&" before last coauthor
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addcomma\addspace\&\space}
Lamentablemente, este código también reemplaza la "y" en las citas, al contrario de lo que la revista quiere para las citas.
Mi pregunta es ¿cómo sustituir "y" por "&" sólo en la bibliografía? Parece que biblatex-dw tiene esta opción pero mi documento no se compila con este estilo.
Respuesta1
Estoy seguro de BibLaTeX
que tiene instalaciones para soluciones mejores y más eficientes, un truco rápido es el siguiente
\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}{}%
\addcomma\addspace\biband\space}
\begin{filecontents}{\jobname.bib}
@article{test,
author = "Family, Given and FamilyTwo, GivenTwo",
title = "title",
journal = "Journal",
year = "2012"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{test}
\printbibliography
\end{document}
EDITAR
Basado en la sugerencia de @Audrey
\documentclass{article}
\usepackage{filecontents}
\usepackage[style=authoryear]{biblatex}
\newcommand{\biband}{\ifcurrentname{labelname}{\bibstring{and}}{\&}}
\renewcommand*{\finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addcomma\addspace\biband\space}
\begin{filecontents}{\jobname.bib}
@article{test,
author = "Family, Given and FamilyTwo, GivenTwo",
title = "title",
journal = "Journal",
year = "2012"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{test}
\printbibliography
\end{document}
Respuesta2
\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}
\addbibresource{\jobname.bib}
\begin{document}
foo\cite{test}
\begingroup
\renewcommand*\finalnamedelim{ \& }
\printbibliography
\endgroup
\end{document}