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}

enter image description here


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.

Tags:

Biblatex