0

How to change from:

Author A, Author B & Author C

to

Author A, Author B and Author C

I had check:

\renewcommand*{\finalnamedelim}{\addspace\&\space}

Basically:

ex

to:

enter image description here

My full MWE:

\documentclass{article}
\usepackage{xpatch}
% \usepackage[style = authoryear-comp, maxnames = 99]{biblatex}

\usepackage[backend=biber, 
% style=authoryear, 
 style=authoryear-comp,
% citestyle=authoryear, 
dashed=false,
maxcitenames=2,
maxbibnames=99,
giveninits,
uniquename=init]{biblatex}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{csquotes}

\usepackage[unicode,colorlinks,citecolor=blue]{hyperref}

\renewcommand*{\finalnamedelim}{\addspace\&\space}
\renewcommand*{\intitlepunct}{\space}
\DeclareFieldFormat[article, incollection, unpublished]{pages}{#1}
\DeclareFieldFormat[article, incollection, unpublished]{title}{#1}
\renewcommand{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addperiod\addspace}}

\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{editorin}{given-family}

\newbibmacro*{byeditor:in}{%
  \ifnameundef{editor}
    {}
    {\printnames[editorin]{editor}%
     \setunit{\addcomma\space}%
     \usebibmacro{editorstrg}%
     \clearname{editor}}}

\xpatchbibdriver{inbook}
  {\usebibmacro{in:}%
   \usebibmacro{bybookauthor}%
   \newunit\newblock
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {\usebibmacro{in:}%
   \usebibmacro{bybookauthor}%
   \newunit\newblock
   \usebibmacro{byeditor:in}%
   \newunit\newblock
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {}{}

\xpatchbibdriver{incollection}
  {\usebibmacro{in:}%
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {\usebibmacro{in:}%
   \usebibmacro{byeditor:in}%
   \setunit{\labelnamepunct}\newblock
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{byeditor}}
  {}{}

\xpatchbibdriver{inproceedings}
  {\usebibmacro{in:}%
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{event+venue+date}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {\usebibmacro{in:}%
   \usebibmacro{byeditor:in}%
   \setunit{\labelnamepunct}\newblock
   \usebibmacro{maintitle+booktitle}%
   \newunit\newblock
   \usebibmacro{event+venue+date}%
   \newunit\newblock
   \usebibmacro{byeditor+others}}
  {}{}



\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@incollection{lennon1965,
  author    = {John Lennon},
  booktitle = {A book with articles},
  editor    = {Paul McCartney and John Lennon and George Harrison and Richard Starkey},
  title     = {This is my article in this book},
  year      = {1965},
  location  = {Liverpool},
  pages     = {65--87},
  publisher = {Cavern Club},
}
@incollection{deborah123,
  author      = "Deborah Lewis and Marie O'Boyle-Duggan and Susan Poultney",
  title       = "Communication skills education and training in pre-registeration BSc Nursing",
  editor      = "David W. Kissane and Barry D. Bultz and Phyllis N. Butow and Carma L. Bylund and Simon Noble and Susie Wilkinson",
  booktitle   = "Oxford Textbook of Communication in Oncology and Palliative Care",
  publisher   = "Oxford University Press",
  address     = "Oxford",
  year        = 2017,
  pages       = "149-154",
  Edition = "2nd edn"
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}
book done \parencite{deborah123}.

\printbibliography
\end{document}
aan
  • 2,663
  • 1
    If you don't want the "&" then it would be easiest to just remove the \renewcommand*{\finalnamedelim}{\addspace\&\space} since the default is "and" (the default definition is slightly more complicated than \renewcommand*{\finalnamedelim}{\addspace\bibstring{and}\space}, it contains code to typeset an Oxford comma if requested). But I assume the line is there for a reason. Do you need it for something else? Maybe for citations? – moewe Sep 20 '19 at 14:01
  • 1
    In any case, please note that in more recent versions of biblatex finalnamedelim is a context-sensitive delimiter that should preferably be redefined with \DeclareDelimFormat{finalnamedelim}{...} and not with \renewcommand. – moewe Sep 20 '19 at 14:03
  • @moewe, thanks. I guess my last question will be punctuation. https://tex.stackexchange.com/questions/509074/how-to-change-punctuation-in-to-in-for-citing-a-book-chapter-in-an-edited-b – aan Sep 20 '19 at 14:12

1 Answers1

1

With

\renewcommand*{\finalnamedelim}{\addspace\&\space}

you explicitly request "&" instead of "and" between the last two names in a list.

If you don't want the "&", I suggest you just remove this line since the default output is "and" already (the default definition is slightly more complicated than \renewcommand*{\finalnamedelim}{\addspace\bibstring{and}\space}, it contains code to typeset an Oxford comma if requested).

In any case, in more recent versions of biblatex finalnamedelim is a context-sensitive delimiter and should preferably be redefined with

\DeclareDelimFormat{finalnamedelim}{...}

(note the absence of a \ before finalnamedelim) and not with \renewcommand{\finalnamedelim}.

It is then very easy to use different delimiters in citations and the bibliography.

moewe
  • 175,683