Modifying authoryear-icomp
with regards to brackets around years is not that simple, so may I interest you in the \DeclareInnerCiteDelims
feature of my biblatex-ext
package? Simply use the style style=ext-<yourstyle>
instead of style=<yourstyle>
. The ext-...
styles are written so that they can be used as a drop-in replacement of the standard styles.
With \DeclareInnerCiteDelims{footcite}{\bibopenparen}{\bibcloseparen}
you wrap the year in \footcite
(and \autocite
if it ends up in as a \footcite
with autocite=footnote
) in round brackets.
\documentclass{article}
\usepackage[style=ext-authoryear-icomp,autocite=footnote]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
journaltitle = {A Journal},
volume = {1},
number = {1},
}
@misc{B02,
author = {Buthor, B.},
year = {2002},
title = {Bravo},
location = {There},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\textheight=120pt% only for the example
\DeclareInnerCiteDelims{footcite}{\bibopenparen}{\bibcloseparen}
\begin{document}
Some text \autocite[88]{A01}.
Some text \autocite[88]{B02}.
Some text \autocite[88]{B02}.
Now Textcite \textcite[88]{A01}
\printbibliography
\end{document}

Edited for name changes in version 0.4 of biblatex-ext
.
If you don't want to use an external package, you will have to modify the cite
and cite:postnote
bibmacros as follows
\makeatletter
\renewbibmacro*{cite}{%
\iffieldundef{shorthand}
{\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}
{\usebibmacro{cite:ibid}}
{\ifboolexpr{test {\ifnameundef{labelname}}
or test {\iffieldundef{labelyear}}}
{\usebibmacro{cite:label}%
\setunit{%
\global\booltrue{cbx:parens}%
\printdelim{nonameyeardelim}%
\bibopenparen}%
\usebibmacro{cite:labeldate+extradate}%
\usebibmacro{cite:reinit}}
{\iffieldequals{namehash}{\cbx@lasthash}
{\ifboolexpr{test {\iffieldequals{labelyear}{\cbx@lastyear}}
and (test {\ifnumequal{\value{multicitecount}}{0}}
or test {\iffieldundef{postnote}})}
{\setunit{\addcomma}%
\usebibmacro{cite:extradate}}
{\setunit{\compcitedelim}%
\usebibmacro{cite:labeldate+extradate}%
\savefield{labelyear}{\cbx@lastyear}}}
{\printnames{labelname}%
\setunit{%
\global\booltrue{cbx:parens}%
\printdelim{nameyeardelim}%
\bibopenparen}%
\usebibmacro{cite:labeldate+extradate}%
\savefield{namehash}{\cbx@lasthash}%
\savefield{labelyear}{\cbx@lastyear}}}}}
{\usebibmacro{cite:shorthand}%
\usebibmacro{cite:reinit}}%
\setunit{%
\ifbool{cbx:parens}
{\bibcloseparen
\global\boolfalse{cbx:parens}}
{}%
\multicitedelim}}
\renewbibmacro*{cite:postnote}{%
\setunit{}%
\printtext{%
\ifbool{cbx:parens}
{\bibcloseparen
\global\boolfalse{cbx:parens}}
{}}%
\ifbool{cbx:loccit}
{}
{\usebibmacro{postnote}}}
\makeatother
comp
features? What should\autocites[12]{A01}[13]{B02}
,\autocite[12]{A01,B02}
and\autocite{A01,B02}
give? If you can drop the "comp" feature, things might get easier code-length wise. And while we're at it: What about the "ibid"? Do you want it\textcite
-style with the name, or as normally without the name.\autocite{knuth:ct:b,knuth:ct:c}
in my comment.)comp
andibid
would be nice to have, hence me usingicomp
. However, citing as stated above should be priority.icomp
, I imagine. That would probably not be something you find nice, but then do you want "Knuth (1986a,b)" if possible? And what about "ibid" do you want "Knuth (ibid)" or just "ibid"? (I realise that these questions might be annoying, but they are needed to decide which approach to take, the cite macro inauthoryear
takes about 10 lines inauthoryear-icomp
it is 2.5 times that + some helper macros)\textcite{K84}{K86a}{K86b}
. As we usually include page numbers,\textcite[12]{K84}[13]{K86a}{K86b}
would lead to "(1984, p. 12; 1986a, p. 13; 1986b)". Using\autocite[12]{K86a}[13]{K86b}
gives "Knuth (1986a), p. 12; Knuth (1986b), p. 13." in footnotes, which is sufficient. "ibid" instead of "Knuth (ibid)" meets my faculty requirements, too. If taken care of the sorting manually, thecomp
feature is not necessary.