Notas de rodapé com tcolorbox quebrável

Notas de rodapé com tcolorbox quebrável

Estou tentando ter apenas um sistema global de notas de rodapé (numeradas), mas parece que tenho alguns problemas com tcolorboxes quebráveis. Muitas das respostas que li parecem muito avançadas para minha simples exigência de um sistema único e global de notas de rodapé.

Meu preâmbulo é

\documentclass[a4paper,10pt,titlepage]{article}
\usepackage[utf8]{inputenc}
\newcommand{\myparagraph}[1]{\paragraph{#1}\mbox{}\\}
\usepackage[a4paper,margin=3.5cm]{geometry} %Sets the page geometry
\usepackage{url}
\usepackage{dirtytalk}
\usepackage{graphicx} % Package for \includegraphics
\usepackage{wrapfig} % Figure wrapping
\usepackage[T1]{fontenc} % Output font encoding for international characters
\setlength{\parskip}{1em} % Set space when paragraphs are used
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{hyperref}
\usepackage{mathrsfs}
\usepackage{mdframed}
\usepackage[breakable]{tcolorbox}
\usepackage[justification=centering]{caption}
\usepackage{soul}

% Note that we enforce things so that everything is numbered off of theorems
\theoremstyle{definition} % to avoid italicizing theorems
\newmdtheoremenv{theo}{Theorem}
\newtheorem{thm}{Theorem}[section] % reset theorem numbering for each chapter
\newtheorem{defn}[thm]{Definition} % definition numbers are dependent on theorem numbers
\newtheorem{rmk}[thm]{Remark}
\newtheorem{exmp}[thm]{Example} % same for example numbers
\newtheorem{crlry}[thm]{Corollary}
\newtheorem{lemma}[thm]{Lemma}
\newtheorem{problem}{Problem}[section]

%% HOW TO KEEP FOOTNOTES GLOBAL
\usepackage{footnote}
\usepackage{etoolbox}
\BeforeBeginEnvironment{tcolorbox}{\savenotes}
\AfterEndEnvironment{tcolorbox}{\spewnotes}
\usepackage{blindtext}

\usepackage{geometry}
    %\usepackage{showframe} %This line can be used to clearly show the new margins

\newgeometry{vmargin={25mm}, hmargin={22mm,22mm}}

% Lets you use \blankpage to make a blank page
\newcommand{\blankpage}{
\newpage
\thispagestyle{empty}
\mbox{}
\newpage
}

Um exemplo da minha nota de rodapé é visto aqui:

\begin{tcolorbox}[breakable]
\begin{defn}[Equivalence class]
    Given an equivalence relation $\equiv$ defined on a set $S$, we define the equivalence class corresponding to any $a \in S$ as the set\footnote{If the equivalence relation in question is understood from context we'll sometimes just write $[a]$.}
    $$[a]_\equiv = \{ b \in S | a \equiv B \}$$
\end{defn}
\end{tcolorbox}

Um exemplo do meu problema é visto na imagem abaixo (observe as duas tcolorboxes, cada uma começando com a nota de rodapé "a"). Qualquer coisa que eu faça fora dos tcolorboxes não tem problema e é global e incrementa corretamente.

insira a descrição da imagem aqui

Qualquer ajuda seria muito apreciada, obrigado!

Responder1

Observe que isso combina \BeforeBeginEnvironmente \renewenvironment. Tem a ver com a execução de comandos antes ou depois do argumento opcional.

\documentclass[a4paper,10pt,titlepage]{article}
\usepackage[utf8]{inputenc}
\newcommand{\myparagraph}[1]{\paragraph{#1}\mbox{}\\}
\usepackage[a4paper,margin=3.5cm]{geometry} %Sets the page geometry
\geometry{vmargin={25mm}, hmargin={22mm,22mm}}

\usepackage{url}
%\usepackage{dirtytalk}
\usepackage{graphicx} % Package for \includegraphics
\usepackage{wrapfig} % Figure wrapping
\usepackage[T1]{fontenc} % Output font encoding for international characters
\setlength{\parskip}{1em} % Set space when paragraphs are used
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{mathrsfs}
\usepackage{mdframed}
\usepackage[justification=centering]{caption}
\usepackage{soul}

% Note that we enforce things so that everything is numbered off of theorems
\theoremstyle{definition} % to avoid italicizing theorems
\newmdtheoremenv{theo}{Theorem}
\newtheorem{thm}{Theorem}[section] % reset theorem numbering for each chapter
\newtheorem{defn}[thm]{Definition} % definition numbers are dependent on theorem numbers
\newtheorem{rmk}[thm]{Remark}
\newtheorem{exmp}[thm]{Example} % same for example numbers
\newtheorem{crlry}[thm]{Corollary}
\newtheorem{lemma}[thm]{Lemma}
\newtheorem{problem}{Problem}[section]

%% HOW TO KEEP FOOTNOTES GLOBAL
\usepackage[breakable]{tcolorbox}
\usepackage{footnote}
\BeforeBeginEnvironment{tcolorbox}{\savenotes}
\AfterEndEnvironment{tcolorbox}{\spewnotes}
\makeatletter
\let\oldtcolorbox=\tcolorbox
\let\endoldtcolorbox=\endtcolorbox
\renewenvironment{tcolorbox}[1][]{\oldtcolorbox[#1]%
  \def\@mpfn{footnote}%
  \def\thempfn{\thefootnote}}%
{\endoldtcolorbox}
\makeatother

\usepackage{hyperref}

% Lets you use \blankpage to make a blank page
\newcommand{\blankpage}{
\newpage
\thispagestyle{empty}
\mbox{}
\newpage
}
\begin{document}
Test\footnote{First}

\begin{tcolorbox}[breakable]
\begin{defn}[Equivalence class]
    Given an equivalence relation $\equiv$ defined on a set $S$, we define the equivalence class corresponding to any $a \in S$ as the set\footnote{If the equivalence relation in question is understood from context we'll sometimes just write $[a]$.}
    $$[a]_\equiv = \{ b \in S | a \equiv B \}$$
\end{defn}
\end{tcolorbox}
\end{document}

informação relacionada