[Tex/LaTex] Beamer and biblatex possible remedy for warning: **Patching footnotes failed**

beamerbiberbiblatexwarnings

After reading that the warning, Package biblatex Warning: Patching footnotes failed. is generated due to a redefinition of \@footnotetext by beamer I tried to retain its definition with the following patch. However, after compiling the document I noticed all my citations in the footnotes were gone. I use \footcitetext together with \footnotemark to have references in the footnotes.

\makeatletter
\let\predefinedfootnotetext\@footnotetext
\makeatother

\documentclass[10pt, xcolor = {dvipsnames}, presentation]{beamer} % xcolor is already loaded with beamer 

\makeatletter
\let\@footnotetext\predefinedfootnotetext
\makeatother 

Beamer patching footnotes warning: "Patching footnotes failed. Footnote detection will not work."

Such as the above most of the answers on this site suggest using the silence package, yet I wonder how to remedy this issue correctly. Some suggest editing the sty files, but it seems to be a daunting task.

What is the scope of this problem, when are you bound to run into trouble?

Best Answer

Starting from version 3.10, biblatex is able to detect footnotes automatically with beamer, the warning will be gone.

biblatex needs to patch the \@footnotetext commands to include \toggletrue{blx@footnote} to be able to detect if it is in a footnote or not. The usual approach is just a \patchcmd to the respective macro. But beamer needs to do some clever stuff with its version of \@footnotetext called \beamer@framefootnotetext so that patching has to look a bit different.

The necessary code can be found in https://github.com/plk/biblatex/commit/5169d2a64777090aa29d38df7543301f5c8b876b

The gist is that we had to use

\expandafter\patchcmd\csname beamerx@\string\beamer@framefootnotetext\endcsname
  {\color@begingroup}
  {\color@begingroup\toggletrue{blx@footnote}}
  {\togglefalse{blx@tempa}}
  {}

instead of just \patchmd{\beamer@framefootnotetext}.