Beamer 和 biblatex 可能对警告的补救措施:**修补脚注失败**

Beamer 和 biblatex 可能对警告的补救措施:**修补脚注失败**

读完警告后,Package biblatex Warning: Patching footnotes failed.由于重新定义而\@footnotetext生成投影机我尝试使用以下补丁保留其定义。但是,编译文档后,我发现脚注中的所有引用都消失了。我\footcitetext一起使用了 以\footnotemark在脚注中添加参考。

\makeatletter
\let\predefinedfootnotetext\@footnotetext
\makeatother

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

\makeatletter
\let\@footnotetext\predefinedfootnotetext
\makeatother 

Beamer 修补脚注警告:“修补脚注失败。脚注检测将不起作用。”

如上所述,本网站上的大多数答案都建议使用该silence包,但我不知道如何正确解决这个问题。有些人建议编辑麦粒肿文件,但这似乎是一项艰巨的任务。

这个问题的范围有多大,你什么时候必然会遇到麻烦?

答案1

从 3.10 版本开始,biblatex可以使用 自动检测脚注beamer,警告将消失。

biblatex需要修补\@footnotetext要包含的命令,\toggletrue{blx@footnote}以便能够检测它是否在脚注中。通常的方法只是\patchcmd对相应的宏进行修补。但需要对其调用beamer的版本进行一些巧妙的操作,以便修补看起来有点不同。\@footnotetext\beamer@framefootnotetext

必要的代码可以在https://github.com/plk/biblatex/commit/5169d2a64777090aa29d38df7543301f5c8b876b

要点是我们必须使用

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

而不仅仅是\patchmd{\beamer@framefootnotetext}

相关内容