# Per-section bibliography styling using biblatex

I'm using

bibstyle=alphabetic,
maxnames=3,.
minnames=2,
maxalphanames=1,


In one section, I have some citations I wish to \fullcite. For these, I'd like to have every author listed (annoyingly, they contain between 4 and 9 authors). If I set maxnames higher, \citet makes the in-text citation difficult to read in the rest of the document.

Can I set maxnames for a specific section of the document, then change it back later?

Here's a MWE, showing the \fullcite that does not list all author names. In this example, the behaviour of \citet is good, but I want to increase maxnames as indicated.

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{A+04,
author = {Author, Aa and Buthor, Bb and Cuthor, Cc and Duthor, Dd},
title = {Title},
journal = {Journal title},
year = {2001},
volume = {1},
number = {2},
pages = {101--109},
month = jan,
note = {This is an article entry},
}
@article{A+02,
author = {Author, Aa and Buthor, Bb},
title = {Title},
journal = {Journal title},
year = {2001},
volume = {1},
number = {2},
pages = {101--109},
month = jan,
note = {This is an article entry},
}
@article{A+03,
author = {Author, Aa and Buthor, Bb and Cuthor, Cc},
title = {Title},
journal = {Journal title},
year = {2001},
volume = {1},
number = {2},
pages = {101--109},
month = jan,
note = {This is an article entry},
}
\end{filecontents}

\usepackage[bibstyle=alphabetic,maxnames=3,minnames=2,maxalphanames=1,natbib=true]{biblatex}

\begin{document}

\section{Fullcite}
% I want to increase maxnames here somehow:
% maxnames=10
\fullcite{A+04}
% and then I want to drop it again for the rest of the document.
% maxnames=3

\section{In-text}
\citet{A+04} says interesting things.

\citet{A+02} says other things.

\citet{A+03} disagree.
\end{document}

• – moewe Jun 9 '17 at 5:55
• @moewe Thanks! I didn't spot that as I was trying to see if there was already a solution. :-\ – simont Jun 9 '17 at 6:07
• Well, it's always easier to find the solution if you know what it looks like. – moewe Jun 9 '17 at 6:24

Here's a couple of ways:

1. You could make a command to set maxcitenames

\makeatletter
\newcommand{\setmaxcitenames}[1]{%
\numdef\blx@maxcitenames{#1}}
\makeatother


Then use \setmaxcitenames{10} at the start of your section and \setmaxcitenames{3} at the end of your section.

2. You could make a new \fullauthorcite command

\DeclareCiteCommand{\fullauthorcite}
{\usebibmacro{prenote}}
{\usedriver
{\setcounter{maxnames}{10}% use up to 10 authors
\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}


You could also redefine \fullcite like this.

This is one possible idea. But I believe there is good chance that someone else will come up with something cleaner and better. Anyway, in the meantime, you could redefine fullcite in the section where you want to change maxnames and later restore it. Like this:

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{A+04,
author = {Author, Aa and Buthor, Bb and Cuthor, Cc and Duthor, Dd},
title = {Title},
journal = {Journal title},
year = {2001},
volume = {1},
number = {2},
pages = {101--109},
month = jan,
note = {This is an article entry},
}
@article{A+02,
author = {Author, Aa and Buthor, Bb},
title = {Title},
journal = {Journal title},
year = {2001},
volume = {1},
number = {2},
pages = {101--109},
month = jan,
note = {This is an article entry},
}
@article{A+03,
author = {Author, Aa and Buthor, Bb and Cuthor, Cc},
title = {Title},
journal = {Journal title},
year = {2001},
volume = {1},
number = {2},
pages = {101--109},
month = jan,
note = {This is an article entry},
}
\end{filecontents}

\usepackage[bibstyle=alphabetic,maxnames=3,minnames=2,maxalphanames=1,natbib=true]{biblatex}

\begin{document}

\let\origfullcite\fullcite
\preto\fullcite{\AtNextCite{\defcounter{maxnames}{10}}}

\section{Fullcite}
% I want to increase maxnames here somehow:
% maxnames=10
\fullcite{A+04}
% and then I want to drop it again for the rest of the document.
% maxnames=3

\let\fullcite\origfullcite

\section{In-text}
\citet{A+04} says interesting things.

\citet{A+02} says other things.

\citet{A+03} disagree.

\fullcite{A+04}.
\end{document}