This is quite interesting -- you seem to have stumbled upon a conflict between the memoir
class and biblatex
. Using the book
class correctly yields "ibid." for citations no. 3 and 6 in your first example, but using the memoir
class doesn't.
% Using the "book" class correctly yields "ibid." for citations no. 3 and 6
\documentclass{book}
% But using the "memoir" class doesn't
% \documentclass{memoir}
\usepackage[style=verbose-ibid]{biblatex}
\begin{filecontents}{\jobname.bib}
@misc{Book1,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
@misc{Book2,
author = {Buthor, B.},
year = {2002},
title = {Bravo},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Check.\footcite{Book1}
Check.\footcite{Book1}
Check.\footnote{\cite{Book1}.}
Check.\footcite{Book1}
Check.\footcite{Book2}
Check.\footnote{\cite{Book2}.}
\end{document}
Second solution
Edited again, so most multicite commands work.
Edited so \footcite
now works.
A reasonably effective solution that preserves many of biblatex
's featuers is provided by adjusting the way the year gets printed in citations. This can be done by redifining the commands associated to cite:year
and cite:extrayear
. This has the advantage of preserving the ibidem feature.
The code below includes a sample bibliography and then the main file with the redefined citation code.
\begin{filecontents}{test.bib}
@Article{Test,
author = {Author, A. N.},
title = {Article title},
year = 2005,
pages = {10-20},
journal = {Jour.},
vol = {100}
}
@Article{Test2,
author = {Author, A. N.},
title = {Second article},
year = 2005,
pages = {10-20},
journal = {Jour.},
vol = {100}
}
@Article{Test3,
author = {Author, A. B.},
title = {Third article},
year = 2005,
pages = {10-20},
journal = {Jour.},
vol = {100}
}
@Article{Test4,
author = {Author, A. N.},
title = {Fourth article},
year = 2007,
pages = {10-20},
journal = {Jour.},
vol = {100}
}
\end{filecontents}
\documentclass{article}
\usepackage[style=authoryear-icomp,autocite=plain]{biblatex}
\addbibresource{test.bib}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\iftoggle{blx@footnote}
{\printtext[bibhyperref]{%
\printfield{labelyear}%
\printfield{extrayear}}}
{\footnote{\printtext[bibhyperref]{%
\printfield{labelyear}%
\printfield{extrayear}}}}}}
\renewbibmacro*{cite:extrayear}{%
\iffieldundef{extrayear}
{}
{\iftoggle{blx@footnote}
{\printtext[bibhyperref]{\printfield{extrayear}}}%
{\footnote{\printtext[bibhyperref]{%
\printfield{labelyear}%
\printfield{extrayear}}}}}}
\renewcommand{\compcitedelim}{\space}
\begin{document}
\thispagestyle{empty}
\autocite{Test} and
\autocite[page 3]{Test}.
Some text \parencite{Test2}.
Here is a footnote citation\footcite{Test}.
\autocite{Test,Test4,Test3}.
\printbibliography
\end{document}
As the above shows this works with \autocite
, \parencite
and accepts their optional arguments. In this style \autocite
is the same as \cite
.
I haven't demonstrated \textcite
, though its ouptut may be useful sometimes; \footcite
has also been set up to work, thanks to biblatex
's blx@footnote
toggle that detects whether we are in a footnote or not.
The code also takes care of most multiple citations \cite{ref1,ref2}
. However, there is a spurious comma, if ref1
and ref2
are two publications from the same author in the same year. Fixing that requires, more substanitial rewriting of the citation style file: each of the commands \cite
, \textcite
, etc. in author-icomp.cbx
contains an explicit comma via \setunit{\addcomma}
, that needs to be deleted.
Original solution
Here is a repost of the original solution, as this apparently helps the OP best. It simply defines a newcommand \citepfy
(plain-foot-year) that calls \citeauthor
followed by a modified \footcite
command that produces only the year. It does not accept any of the optional arguments cite commands in biblatex
usually do.
\begin{filecontents}{b.bib}
@Article{Test,
author = {Author, A. N.},
title = {Article title},
year = 2005,
pages = {10-20},
journal = {Jour.},
vol = {100}
}
\end{filecontents}
\documentclass{article}
\usepackage[style=authoryear-icomp]{biblatex}
\addbibresource{b.bib}
\newcommand{\citepfy}[1]{\citeauthor{#1}\footyearcite{#1}}
\DeclareCiteCommand{\footyearcite}[\mkbibfootnote]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{citeyear}}
{}
{\usebibmacro{cite:postnote}}
\begin{document}
\citepfy{Test}
\printbibliography
\end{document}
Best Answer
You can switch on and off the cite tracker feature with
\citetrackertrue
and\citetrackerfalse
commands. A second option is to use\mancite
(to be used in the same context where the manual citation appears);\mancite
also execute the hook defined with\OnManualCitation
. The third option is to use\citereset
(it reset all subsequent citations), and there is a global option with the same name taking a document subdivision (e.g.,part
,chapter
,...) as its argument.biblatex
also provides apagetracker
option whose possible values aretrue
,false
,page
andspread
for the case of a repeated citation in a new page.