There are two ways you can do this: you can redefine the \fullcite
command to clear the fields you don't want, or as noted in the comments, you can use \AtEverycitekey
to do the same thing.
Conceptually, modifying \fullcite
seems like the better solution, since using \AtEveryCitekey
modifies any citation, so if you want to remove any information from the \fullcite
that is normally included in the regular \cite
then you must use this solution.
If you're just removing URL, edition and pages from the \fullcite
there will be no bad side-effects of using \AtEveryCitekey
since it is only the \fullcite
citation command that would ever output those fields. But if you want to remove the year as well (as you mention in the comments), then modifying \fullcite
is the only way to do it. I've removed the \AtEveryCitekey
solution from the code for this reason, but placed it separately at the end.
Depending on the type of information you need to suppress, you may need to use one of \clearfield
, \clearlist
or \clearname
. In the case of publisher
, or location
, for example, their type is a list, and so you need to use \clearlist
to clear them. Section 2.2.2 of the biblatex
documentation describes each field and its data type.
\documentclass[en-US,de-DE]{article}
\usepackage[
style=authoryear-ibid,
maxnames=2,
backend=biber,
safeinputenc,
isbn=false,
doi=false,
maxcitenames=2,
urldate=iso8601,
date=iso8601
]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{key,
author = {Author, A.},
year = {2001},
title = {Title},
publisher = {Publisher},
pagetotal = {383},
edition = {1},
pages = {151--154},
url = {http://www.google.com},
}
\end{filecontents}
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\clearfield{url}%
\clearfield{pages}%
\clearfield{pagetotal}%
\clearfield{edition}%
\clearfield{labelyear}%
\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
\begin{document}
text1
\cite{key}
\fullcite{key}
text2
\cite{key}
text3
\printbibliography[heading=bibintoc]
\end{document}
Using \AtEveryCitekey
As noted above, using \AtEveryCitekey
can also work if there is no overlap in the information you need in a regular cite and the information you suppress in the \fullcite
. Here's the code to use that method:
\AtEveryCitekey{
\clearfield{url}
\clearfield{pages}
\clearfield{pagetotal}
\clearfield{edition}
\clearfield{labelyear}
}
.bib
items. And you haven't specified enough information: page numbers from all entry types? Editions from all entry types? etc.\AtNextCitekey
hook and\clearfield
. But, in this case, it is hard to help without a minimal working example with bibliography (MWEB).