Some TeX Developments

Coding in the TeX world

biblatex: numbered citations as footnotes

with 4 comments

Most chemistry journals use numbered citation styles, with all of the references appearing at the end of the article in a References section. However, there are some that place the references at the bottom of the page they occur on, as footnotes. This is a bit more awkward to achieve than a simple section, but as biblatex has all of the citation data available from the start of a document I thought it should be easy to do.

It turns out that biblatex has the very handy \footfullcite macro, which nearly does what is needed. This macro will print the reference as a footnote, but uses LaTeX’s footnote numbering system to do this. The result is that repeating citations, compressing several citations into a range and so on is not so easy. In the end, I decided to drop Philipp Lehman (the author of biblatex) an e-mail for some guidance. He came back with two approaches, one for citations in the text and one for superscript citations:

\documentclass{article}
\usepackage[style=numeric-comp]{biblatex}
\bibliography{biblatex-examples}
\makeatletter

\ExecuteBibliographyOptions{citetracker,sorting=none}

\DeclareCiteCommand{\notefullcite}[\mkbibbrackets]
  {\usebibmacro{cite:init}%
   \usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{notefullcite}%
   \usebibmacro{cite:comp}}
  {}
  {\usebibmacro{cite:dump}%
   \usebibmacro{postnote}}

\newbibmacro*{notefullcite}{%
  \ifciteseen
    {}
    {\footnotetext[\thefield{labelnumber}]{%
       \usedriver{}{\thefield{entrytype}}.}}}
\DeclareCiteCommand{\superfullcite}[\cbx@superscript]%
  {\usebibmacro{cite:init}%
   \let\multicitedelim=\supercitedelim
   \iffieldundef{prenote}
     {}
     {\BibliographyWarning{Ignoring prenote argument}}%
   \iffieldundef{postnote}
     {}
     {\BibliographyWarning{Ignoring postnote argument}}}
  {\usebibmacro{citeindex}%
   \usebibmacro{superfullcite}%
   \usebibmacro{cite:comp}}
  {}
  {\usebibmacro{cite:dump}}

\newbibmacro*{superfullcite}{%
  \ifciteseen
    {}
    {\xappto\cbx@citehook{%
       \noexpand\footnotetext[\thefield{labelnumber}]{%
         \fullcite{\thefield{entrykey}}.}}}}

\newrobustcmd{\cbx@superscript}[1]{%
  \mkbibsuperscript{#1}%
  \cbx@citehook
  \global\let\cbx@citehook=\empty}
\let\cbx@citehook=\empty

\makeatother
\begin{document}

Some filler text \notefullcite{cotton}, then some more text
\notefullcite{hammond}. Perhaps some more text and the same
citation again \notefullcite{hammond}. Yet another one
\notefullcite{knuth:ct:a}. Now all again
\notefullcite{cotton,hammond,knuth:ct:a}.

Some filler text,\superfullcite{augustine} then some more
text.\superfullcite{companion} Perhaps some more text and the
same citation again.\superfullcite{companion} Yet another
one.\superfullcite{kastenholz} Now all
again.\superfullcite{augustine,companion,kastenholz}

\end{document}

I might add this to my biblatex styles, but I’ll wait to see if Philipp puts the code or some notes into the biblatex core before I do. I should also point out that if you want footnote citations and other footnotes then you’ll need something like the bigfoot package to do the job. But this is a pretty good place to start from.

Written by Joseph Wright

March 8th, 2010 at 8:04 am

Posted in biblatex,LaTeX

4 Responses to 'biblatex: numbered citations as footnotes'

Subscribe to comments with RSS or TrackBack to 'biblatex: numbered citations as footnotes'.

  1. Just a quick note on bigfoot: Unfortunately, this package which is potentially very useful, has some serious. For example, there is a long known bug in combination with the setspace package. Since the package hasn’t seen any updates something like two years, I don’t expect this to improve …

    Simon Spiegel

    8 Mar 10 at 2:08 pm

  2. Hello Joseph,

    I just copied the code above and tried to compile it with pdfLaTeX and Biber. (I added backend=biber, of course.)
    However, I get the error message ! Package keyval Error: hash undefined. for each use of both \notefullcite and \superfullcite.

    The created PDF looks alright, except some unwanted whitespace every time a bibliography entry is used the first time with \notefullcite, i.e. \notefullcite{cotton} gives [ 1].

    Clemens

    3 Sep 11 at 5:34 pm

  3. Stupid me! I had an out-of-date version of biblatex in my local tree…

    Clemens

    4 Sep 11 at 2:47 pm

  4. A modification of this script, which shorten the article citation and handle elegantly the superscript over punctuations, may be found at http://www.khirevich.com/latex/footnote_citation/

    As the author of this modification did not notified you (at least, not in the comment), I feel free to do it for him & the comminity.

    I guess there is no copyright infrigment here, and yet, you should add explicitly if this material is free or not!

    Clément

    11 Oct 13 at 2:53 pm

Leave a Reply