7

I am supposed to use a certain citation style which has the citations in footnotes and square brackets around the references, just like "regular" citations in text (see screenshot).

I can't however, make biblatex use brackets in the footnotes when using \footcite, i.e.:

\documentclass{article}
\usepackage[style=alphabetic]{biblatex}

\begin{filecontents*}{bibliography.bib}
@BOOK{Cornelisse1979,
  author = {Cornelisse, J. W. and Schöyer, H. Ferry R. and Wakker, Karel F.},
  title = {Rocket Propulsion and Spaceflight Dynamics},
  year = {1979},
  publisher = {Pitman},
}
\end{filecontents*}

\bibliography{bibliography.bib}

\begin{document}
\null
\vfill

Regular citation: \cite{Cornelisse1979} and a footnote citation
here\footcite{Cornelisse1979}.
But it shall look like this\footnote{\cite{Cornelisse1979}}.
\end{document}

enter image description here

In the screenshot, one can see that the "CSW79" is not bracketed. Using \footnote manually seems like a hack to me.

How to make it print brackets around the reference in the footnote when using footcite?

Ideally: How to make it cite in the footnotes by default, so that I can \cite away without having to use \footcite?

I had a look at other tex.sx questions like this or this, but they solve different problems as I don't want the superscript or number to be bracketed but the reference.

2 Answers2

9

You can redefine the wrapper of footnotes created by \footcite:

\renewcommand{\bibfootnotewrapper}[1]{%
  \bibsentence\mkbibbrackets{#1}\addperiod}

This puts the complete citation inside brackets including the pre/post note. If you want to do it only for the label you can use:

\DeclareCiteCommand{\footcite}[\mkbibfootnote]
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \printtext[brackets]{\usebibmacro{cite}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

A small hint: biblatex uses \addbibresource instead of \bibliography


Here the example:

\documentclass{article}
\usepackage[style=alphabetic]{biblatex}

\begin{filecontents*}{bibliography.bib}
@BOOK{Cornelisse1979,
  author = {Cornelisse, J. W. and Schöyer, H. Ferry R. and Wakker, Karel F.},
  title = {Rocket Propulsion and Spaceflight Dynamics},
  year = {1979},
  publisher = {Pitman},
}
\end{filecontents*}

\addbibresource{bibliography.bib}
\renewcommand{\bibfootnotewrapper}[1]{%
  \bibsentence\mkbibbrackets{#1}\addperiod}

\begin{document}
\null
\vfill

Regular citation: \cite{Cornelisse1979} and a footnote citation
here\footcite{Cornelisse1979}.
But it shall look like this\footnote{\cite{Cornelisse1979}}.
\end{document}

enter image description here

Marco Daniel
  • 95,681
  • Cool! Thanks. It works perfectly. A side question, hopefully related enough to not having to open a new question: Is it possible to only bracket the reference and not the pre or post text, i.e. \cite[P. 23]{foo} shall yield ¹ [foo], P. 23. If it's not related enough, I will open a new question. – Frederick Nord Jul 05 '13 at 13:31
  • @FrederickNord: I edited my answer. – Marco Daniel Jul 05 '13 at 13:36
  • @FrederickNord: Does it work for you? – Marco Daniel Jul 05 '13 at 13:44
  • Wow! Amazing. It works. A minor thing now is that the footnotes are followed by a period. The documentation also mentions that \footcite exposes this behaviour. But it's not the required style. So if it's possible to get rid of that, it'd be super cool. I think I understand that the various used bibmacros are to look at, but I have a hard time finding out how the bibmacros are defined. So a pointer here would be appreciated. Many thanks! – Frederick Nord Jul 05 '13 at 14:23
  • @FrederickNord: The last period is done by \addperiod inside the macro \bibfootnotewrapper. So just remove this \addperiod from the definition. – Marco Daniel Jul 05 '13 at 15:26
0

@Marco Daniel - An update to your code: If you just want to put the citation in brackets use:

\DeclareCiteCommand{\footcite}[\mkbibfootnote]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printtext[brackets]{\usebibmacro{cite:comp}}}
{\multicitedelim}
{\usebibmacro{cite:dump}%
\usebibmacro{postnote}}

I found that to work as expected. Thanks