19

I want to use biblatex (with Biber) to produce my reference list, and I also want to use the bibentry package to print individual citations in the text. However, it seems that I can't do both.

In the example below, the \bibentry just produces empty output

\documentclass{article}
\begin{filecontents}{ref.bib}
  @Book{abramowitz+stegun,
    author    = "Milton {Abramowitz} and Irene A. {Stegun}",
    title     = "Handbook of Mathematical Functions with
    Formulas, Graphs, and Mathematical Tables",
    publisher = "Dover",
    year      =  1964,
    address   = "New York",
    edition   = "ninth Dover printing, tenth GPO printing"
  }
\end{filecontents}

\usepackage{bibentry}
\usepackage[backend=biber]{biblatex}
\addbibresource{ref.bib}

\begin{document}
Here's a citation
\bibentry{abramowitz+stegun}

\nocite{*}
\printbibliography
\end{document}
  • 6
    From the bibentry documentation it looks like the \bibentry is doing the same thing as biblatex's \fullcite command. – Benedikt Bauer Oct 1 '13 at 11:50
  • Aha! If you post this as an answer, I'll mark it as correct. – Supernormal Oct 1 '13 at 13:04
23

As far as I could see from bibentry's package documentation, the \bibentry command is just outputting the whole reference as it stands in the bibliography. This is exactly what the \fullcite command of biblatex is doing, too.

Compare the output of the following code example that I adapted from your MWE:

\begin{filecontents}{ref.bib}
  @BOOK{abramowitz+stegun,
    author    = "Milton {Abramowitz} and Irene A. {Stegun}",
    title     = "Handbook of Mathematical Functions with
    Formulas, Graphs, and Mathematical Tables",
    publisher = "Dover",
    year      =  1964,
    address   = "New York",
    edition   = "ninth Dover printing, tenth GPO printing"
  }
\end{filecontents}

\documentclass{article}

\usepackage[backend=biber]{biblatex}
\addbibresource{ref.bib}

\begin{document}
Here's a citation \fullcite{abramowitz+stegun}

\nocite{*}
\printbibliography
\end{document}

enter image description here

3

When you are using biber as backend, it is actually not true (as suggested in the other answer) that fullcite always produces the same result as appearing in the references list. In the example given above this is the case, but only due to the limited number of authors.

The problem is that the fullcite command does not respect all the parameters that you pass on to the bibtex package. Let's say you tell bibtex that it is never to abbreviate the authors list using "maxbibnames=99", then fullcite will still do so as seen in the following MWE:

\documentclass{article}
\usepackage[backend=biber,maxbibnames=99]{biblatex}

\begin{filecontents}{\jobname.bib}
@InProceedings{identifier1,
  Title                    = {Some So-So Title},
  Author                   = {First Author and Second Author and Third Author and Fourth Author},
  Booktitle                = {An okay Booktitle},
  Year                     = {2000},
  Pages                    = {1--100}
}
@InProceedings{identifier2,
  Title                    = {Some Awesome Title},
  Author                   = {Some Writer and Another Writer},
  Booktitle                = {Some Book about the Future},
  Year                     = {2042},
  Pages                    = {1--42}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\setlength\parindent{0pt} % just cosmetics to ignore indendations 

Here's a citation of \textcite{identifier1}:\\
\fullcite{identifier1}\\

And here a citation of \textcite{identifier2}:\\ \fullcite{identifier2}

\nocite{*}
\printbibliography
\end{document}

This will produce the following output, in which you see that fullcite does not produce the same output as in the refences list.

enter image description here

A very simple solution to this problem is proposed here. You simply have to insert the following code, which makes fullcite use maxbibnames instead of maxcitenames, which it uses by default.

\makeatletter
\DeclareCiteCommand{\fullcite}
  {\defcounter{maxnames}{\blx@maxbibnames}%
    \usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
\makeatother

The result looks as follows: enter image description here

As said, the solution is from another stack overflow post. So please vote for that one if you find this answer useful!

  • Another difference (that only has effect in some styles, numeric is not among them, but authoryear for example is) is that \fullcite does \DeclareNameAlias{sortname}{default} locally, so that the names come in default (normally Given Family) order. – moewe Jun 19 '17 at 8:00

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.