0

I am using maxcitenames=2 as one of the option for biblatex. Its function is to change

Author name: McIntosh, Gerald C and Brown, Susan H and Rice, Ruth R and Thaut, Michael H

to

Author name: McIntosh et al. 

in the text. For example:

enter image description here

However, I want to maintain all the name appear in the bibliography. It does not appear all the author name in bibliography/reference.

enter image description here

The full code:

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}

@article{mcintosh1997rhythmic,
  title={Rhythmic auditory-motor facilitation of gait patterns in patients with Parkinson's disease.},
  author={McIntosh, Gerald C and Brown, Susan H and Rice, Ruth R and Thaut, Michael H},
  journal={Journal of Neurology, Neurosurgery \& Psychiatry},
  volume={62},
  number={1},
  pages={22--26},
  year={1997},
  publisher={BMJ Publishing Group Ltd}
}
\end{filecontents}


\documentclass[british]{article}

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

\usepackage{csquotes}
\usepackage[%
  style=authoryear, 
  backend=biber, 
  maxcitenames=2,
  giveninits
]{biblatex}
\addbibresource{\jobname.bib} % \jobname to use the bib file created with filecontents
\DeclareNameAlias{sortname}{family-given}

\usepackage[unicode,colorlinks,citecolor=blue]{hyperref}
\renewcommand*{\nameyeardelim}{\addcomma\space}

\newcommand{\mycite}[1]{\citeauthor{#1}'s \citeyear{#1}}

\DeclareCiteCommand{\citeauthor}
  {\boolfalse{citetracker}%
   \boolfalse{pagetracker}%
   \usebibmacro{prenote}}
  {\ifciteindex
     {\indexnames{labelname}}
     {}%
   \printtext[bibhyperref]{\printnames{labelname}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\citeyear} % <======================================
    {}
    {(\bibhyperref{\printdate})}
    {\multicitedelim}
    {}

\DeclareCiteCommand{\parencite} % <=====================================
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[bibhyperref]{(\usebibmacro{cite}})}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\makeatletter
\let\abx@macro@textciteOrig\abx@macro@textcite
\renewbibmacro{textcite}{% <============================================
   \bibhyperref{%
   \let\bibhyperref\relax\relax%
   \abx@macro@textciteOrig%
   }%
}%
\makeatother


\begin{document}

According to \citeauthor{mcintosh1997rhythmic}'s studies 
\autocite*{mcintosh1997rhythmic}, blablabla 

\verb|\mycite|: \mycite{mcintosh1997rhythmic} ->        McIntosh et al. (1990) 

\verb|\textcite|: \textcite{mcintosh1997rhythmic}   ->        McIntosh et al. (1997) 

\verb|\parencite|: \parencite{mcintosh1997rhythmic}  ->        (McIntosh et al., 1997) 

\printbibliography
\end{document}
1

Just add the option maxbibnames.

\usepackage[%
  style=authoryear, 
  backend=biber, 
  maxcitenames=2,
  maxbibnames=99,
  giveninits
]{biblatex}
  • didnt know there is an option called maxbibnames. Thanks – aan Aug 21 at 22:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.