biblatex: \fullcite produces different result from bibliography entry
Like bibliography entries and \footfullcite
, \fullcite
is generated by the bibliography driver. The only difference is that \fullcite
doesn't set \finentrypunct
.
You can apply edits to the finentry
bibliography macro to resolve this difference. See the code below for a demonstration. I've also illustrated another approach to line-breaking before doi
/url
and use of the xpatch package.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=numeric-comp,dateabbrev=false]{biblatex}
\usepackage[colorlinks]{hyperref}
\usepackage{xpatch}
\newtoggle{bbx:urlbreak}
% Set \finentrypunct unless the entry ends with an URL
\xpretobibmacro{finentry}
{\iftoggle{bbx:urlbreak}
{\nopunct}
{\ifboolexpr{ test {\ifcitation} and not test {\iffootnote} }
{\finentrypunct}
{}}%
\global\togglefalse{bbx:urlbreak}}
{}{}
\newbibmacro*{bbx:parunit}{%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\clearlist{pageref}%
\setunit{%
\adddot\par\noindent\nobreak%
\global\toggletrue{bbx:urlbreak}}}
% Insert linebreak before printing URLs
\xpretobibmacro{doi+eprint+url}{\usebibmacro{bbx:parunit}}{}{}
\xpretobibmacro{url+urldate}{\usebibmacro{bbx:parunit}}{}{}
% Suppress eprint
\xpretobibdriver{inproceedings}{\clearfield{eprint}}{}{}
% Suppress date, event data
\renewbibmacro*{date}{\ifkeyword{-showdate}{}{\printdate}}
\renewbibmacro{event+venue+date}{}
% Print ISSN
\xpatchbibdriver{inproceedings}
{\printfield{isbn}}
{\printfield{isbn}\newunit\newblock\printfield{issn}}
{}{}
\begin{filecontents}{\jobname.bib}
@INPROCEEDINGS{stevens,
author = {Matthias Stevens and Ellie D'Hondt},
title = {Crowdsourcing of Pollution Data using Smartphones},
booktitle = {Proceedings of the Workshop on Ubiquitous Crowdsourcing, held at
Ubicomp '10 (Copenhagen, Denmark, September 26-29, 2010)},
keywords = {-showdate},
year = {2010},
month = {9},
url = {http://soft.vub.ac.be/Publications/2010/vub-tr-soft-10-15.pdf}}
@INPROCEEDINGS{test,
author = {John Doe and Jane Doe},
title = {Seminar Title},
booktitle = {Proceedings Title},
year = {2010},
month = {12},
isbn = {1234},
issn = {5678},
eprint = {http://eprint.com}}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\null\vfill\noindent
\fullcite{test} \\
\fullcite{stevens} \\
Filler text.\footfullcite{test}
More filler text.\footfullcite{stevens}
\printbibliography
\end{document}
Though not as extensive as Audrey's helpful answer, I found solution that worked for my needs (I only wanted to change the number of authors in the citation). Full credit should go to the github user aboruvka who provided an answer while responding to a biblatex issue on github. Below is the code copied from his/her post. My addition of a period after {\thefield{entrytype}}
is more of a hack than a generic solution.
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\usedriver
{\defcounter{minnames}{6}%
\defcounter{maxnames}{6}}
{\thefield{entrytype}}.}
{\multicitedelim}
{\usebibmacro{postnote}}
After adding this to the preamble, my \fullcite
references appear the same as they would in my bibliography.