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.

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

  • 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 5 '13 at 13:31
  • @FrederickNord: I edited my answer. – Marco Daniel Jul 5 '13 at 13:36
  • @FrederickNord: Does it work for you? – Marco Daniel Jul 5 '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 5 '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 5 '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

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.