28

I have to prepare a beamer presentation on the topic of citations and bibliographies. So I should be able to display selected bibliographic items in the slides as examples in most of the slides. I will be having a main .bib file. So how can I display selected bibliographic items in arbitrary places in the main body of the text?

I am using biblatex with the biblatex-mla style.

lockstep
  • 250,273
nixnotwin
  • 3,022
  • 2
    I've edited your question to reflect the fact that you're using biblatex-mla. This was really important information that you should have mentioned in your question originally. (As a result, two people gave good answers that don't actually work for you.) – Alan Munn Dec 17 '11 at 16:13

3 Answers3

16

You may use biblatex and its \fullcite macro. Note that is not necessary to typeset the full bibliography.

\documentclass{beamer}

\usepackage{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{Bli74,
  author = {Blinder, Alan S.},
  year = {1974},
  title = {The economics of brushing teeth},
  journaltitle = {Journal of Political Economy},
  volume = {82},
  number = {4},
  pages = {887--891},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

\begin{frame}
\fullcite{Bli74}
\end{frame}

% \begin{frame}
% \printbibliography
% \end{frame}

\end{document}
lockstep
  • 250,273
  • 1
    Unfortunately biblatex-mla doesn't provide a \fullcite command (not surprising, since it's heavily footnote driven). So this solution as it stands won't work with style=mla. – Alan Munn Dec 17 '11 at 14:28
  • @AlanMunn You are right. The tex document fails to compile. Is there any other way I can address the issue? – nixnotwin Dec 17 '11 at 14:58
15

The biblatex-mla package doesn't define a \fullcite command (it would have been very helpful to have mentioned that you were using this package in your question). Adapting some code (and naming convention) from the biblatex-apa package, based on Hanging references using \fullcite, here is a solution to your problem. Since MLA uses different author name ordering in footnote references and bibliography references but you want to be able to display both, we define a \fullcitebib command which will insert a properly formatted full bibliography entry in the text and a \fullcitefoot command which will insert a properly formatted footnote-style entry.

\documentclass{beamer}

\usepackage[style=mla,autocite=footnote]{biblatex}
\DeclareAutoCiteCommand{footnote}[f]{\footcite}{\footcites}
\setlength{\bibhang}{1.5em}
\makeatletter
\DeclareCiteCommand{\fullcitefoot}
  {\renewcommand{\finalnamedelim}
   {\ifnum\value{liststop}>2 \finalandcomma\fi\addspace\&\space}%
   \list{}
   {\setlength{\leftmargin}{\bibhang}%
     \setlength{\itemindent}{-\leftmargin}%
     \setlength{\itemsep}{\bibitemsep}%
     \setlength{\parsep}{\bibparsep}}\item}
  {\usedriver
    {\DeclareNameAlias{sortname}{default}}
    {\thefield{entrytype}}\finentry}
  {\item}
  {\endlist\global\undef\bbx@lasthash}

\DeclareCiteCommand{\fullcitebib}
  {\renewcommand{\finalnamedelim}
   {\ifnum\value{liststop}>2 \finalandcomma\fi\addspace\&\space}%
   \list{}
   {\setlength{\leftmargin}{\bibhang}%
     \setlength{\itemindent}{-\leftmargin}%
     \setlength{\itemsep}{\bibitemsep}%
     \setlength{\parsep}{\bibparsep}}\item}
  {\usedriver
    {}
    {\thefield{entrytype}}\finentry}
  {\item}
  {\endlist\global\undef\bbx@lasthash}
\makeatother
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{Bli74,
  author = {Blinder, Alan S.},
  year = {1974},
  title = {The economics of brushing teeth},
  journaltitle = {Journal of Political Economy},
  volume = {82},
  number = {4},
  pages = {887--891},
}
\end{filecontents}

\addbibresource{\jobname.bib}

%\renewcommand{\footnotesize}{\scriptsize} uncomment this if you want footnotes smaller
\begin{document}

\begin{frame}
This is a full citation in  footnote style: \fullcitefoot{Bli74}.

This is a full citation in bibliography style: \fullcitebib{Bli74}
\end{frame}

 \begin{frame}
 \printbibliography
 \end{frame}

\end{document}

output of code

Alan Munn
  • 218,180
  • It works well. One small change needs to be done. MLA does not invert author's name in footnote citation. So all the entries show author names as they are (without inversion). Let the \fullbibcite command remain as it is, because I can use it to show how footnote citations appear. So there should be another command to show entires with inverted author names. – nixnotwin Dec 18 '11 at 12:36
  • @nixnotwin I've updated the answer to give you both options. – Alan Munn Dec 18 '11 at 15:30
  • That worked as well. If you don't mind I need one more feature. The \printbibliography prints all the entries on one slide. So only 4 items are visible and rest (about 10) are invisible. Can there be an option to display a limited number of items, and rest pushed to the next slides. – nixnotwin Dec 19 '11 at 08:51
  • 1
    @nixnotwin Add [allowframebreaks] to the frame command that contains the bibliography. – Alan Munn Dec 19 '11 at 14:01
  • Yes, it worked. – nixnotwin Dec 19 '11 at 14:11
  • @AlanMunn mla.cbx actually does define a \fullcite command. It works with biblatex 1.0. – Audrey Apr 01 '12 at 05:16
  • @Audrey I don't have biblatex 1.0 any more. :) Anyway, I don't think it would deal with both the footnote version and the bib version. It seems that biblatex-mla really needs some work. – Alan Munn Apr 01 '12 at 05:36
  • @AlanMunn \footcite gives a full citation this first time an entry is cited. biblatex-mla's code is messy (the author even says so in file headers), but it works with 1.0. Until it gets updated, reverting back to this version is probably the best solution to all these style issues we've been having to look at lately. – Audrey Apr 01 '12 at 05:49
  • This is super helpful. Thank you so much for putting this out into the world – Mark Mendoza Oct 19 '14 at 00:45
2

You can use the bibentry package. First, place \usepackage{bibentry} in the preamble. Then use the \bibentry{AuthorYear} to display the full bibliography entry anywhere in the document.

\begin{document}
\usepackage{bibentry}
\begin{document}
    You should read this book: \bibentry{AuthorYear}.
    \bibliography{mybooks}
\end{document}
Au101
  • 10,278
Village
  • 13,603
  • 23
  • 116
  • 219
  • 1
    It does not work. I'm using bilatex-mla package. – nixnotwin Dec 17 '11 at 10:25
  • It works if you add the \nobibliography* line in the preamble as it is shown in the example of the package author at https://www.stefaanlippens.net/bibentry/ – cengique Oct 31 '22 at 14:39