biblatex: How to set citation options per citation command?

In the alphabetic style, I am using maxcitenames=4 and minnames=3 as global options. However, when using \textcite instead of \cite, these settings are pretty unreasonable, and I want it to behave as if maxcitenames=3 and minnames=1 were set. How do I achieve this?

To be more specific, in the example below I want

\cite{ABCDE}


to produce

[ABG+01]

, and

\textcite{ADCDE}


to produce

Alpha, et al. [ABG+01]

Example:

\documentclass{article}

\usepackage[ style=alphabetic, maxcitenames=4, minnames=3 ]{biblatex}

% set \textcite option maxcitenames=3 and minnames=1 here

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{ABCDE,
author = {Alpha, A. and Beta, B. and Gamma, G. and Delta, D. and Epsilon, E.},
year = 2001
}
\end{filecontents}

\begin{document}

\cite{ABCDE}
\textcite{ABCDE}

\end{document}

-

With biber this can be handled by the following option settings.

maxcitenames=3,minnames=1,maxalphanames=4,minalphanames=3


With BibTeX you can patch the textcite bibliography macro in your preamble.

\usepackage{xpatch}
\xpretobibmacro{textcite}{\defcounter{minnames}{1}\defcounter{maxnames}{3}}{}{}

-
 Perfect, thanks! – Holger Oct 2 '12 at 20:41

You can define a new command using \AtNextCite and setting the maxnames, minnames counters to the desired values; something along the lines illustrated in the following example:

\documentclass{article}
\usepackage[ style=alphabetic, maxcitenames=4, minnames=3 ]{biblatex}

\newrobustcmd{\TExtcite}{%
\AtNextCite{\defcounter{maxnames}{3}\defcounter{minnames}{1}}\textcite}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{ABCDE,
author = {Alpha, A. and Beta, B. and Gamma, G. and Delta, D. and Epsilon, E.},
year = 2001
}
\end{filecontents}