如何在使用 tcolorbox 包制作的示例环境中处理 \footnote 命令?

如何在使用 tcolorbox 包制作的示例环境中处理 \footnote 命令?

我想使用@Jonathan 在相关邮政. 这几乎是相同的 MWE:

\documentclass{article}
\usepackage[most]{tcolorbox}
\newcounter{testexample}
\usepackage{xparse}
\usepackage{lipsum}
\def\exampletext{Example}
\NewDocumentEnvironment{testexample}{ O{} }
{
\colorlet{colexam}{red!55!black}
\newtcolorbox[use counter=testexample]{testexamplebox}{
    empty,
    title={\exampletext: #1},
    attach boxed title to top left,
       minipage boxed title,
    boxed title style={empty,size=minimal,toprule=0pt,top=4pt,left=3mm,overlay={}},
coltitle=colexam,fonttitle=\bfseries,
before=\par\medskip\noindent,parbox=false,boxsep=0pt,left=3mm,right=0mm,top=2pt,breakable,pad at break=0mm,
   before upper=\csname @totalleftmargin\endcsname0pt,
overlay unbroken={\draw[colexam,line width=.5pt] ([xshift=-0pt]title.north west) -- ([xshift=-0pt]frame.south west); },
overlay first={\draw[colexam,line width=.5pt] ([xshift=-0pt]title.north west) -- ([xshift=-0pt]frame.south west); },
overlay middle={\draw[colexam,line width=.5pt] ([xshift=-0pt]frame.north west) -- ([xshift=-0pt]frame.south west); },
overlay last={\draw[colexam,line width=.5pt] ([xshift=-0pt]frame.north west) -- ([xshift=-0pt]frame.south west); },%
}
\begin{testexamplebox}}
{\end{testexamplebox}\endlist}

\begin{document}

\begin{testexample}[Latin Text]
\lipsum[1]\footnote{my footnote}
\lipsum[2]
\end{testexample}

\end{document}

然后,我希望将\footnote脚注放在页面底部,而不是示例的末尾。我已经找到了这个答案关于类似问题,但关于使用之前已经出现过的脚注。如果\footnote示例中只出现一次,我可以做同样的事情吗?

答案1

这是在您的环境中重新定义脚注的一种方法:

\documentclass{article}
\usepackage[most]{tcolorbox}
\newcounter{testexample}
\usepackage{xparse}
\usepackage{pgffor}
\usepackage{lipsum}
\newcounter{FootnoteCounter}
\newcounter{Init}
\let\oldfootnote\footnote
\def\exampletext{Example}

\NewDocumentEnvironment{testexample}{ O{} }
{
\colorlet{colexam}{red!55!black}
\newtcolorbox[use counter=testexample]{testexamplebox}{
    empty,
    title={\exampletext: #1},
    attach boxed title to top left,
       minipage boxed title,
    boxed title style={empty,size=minimal,toprule=0pt,top=4pt,left=3mm,overlay={}},
coltitle=colexam,fonttitle=\bfseries,
before=\par\medskip\noindent,parbox=false,boxsep=0pt,left=3mm,right=0mm,top=2pt,breakable,pad at break=0mm,
   before upper=\csname @totalleftmargin\endcsname0pt,
overlay unbroken={\draw[colexam,line width=.5pt] ([xshift=-0pt]title.north west) -- ([xshift=-0pt]frame.south west); },
overlay first={\draw[colexam,line width=.5pt] ([xshift=-0pt]title.north west) -- ([xshift=-0pt]frame.south west); },
overlay middle={\draw[colexam,line width=.5pt] ([xshift=-0pt]frame.north west) -- ([xshift=-0pt]frame.south west); },
overlay last={\draw[colexam,line width=.5pt] ([xshift=-0pt]frame.north west) -- ([xshift=-0pt]frame.south west); },%
}
\begin{testexamplebox}%
\setcounter{Init}{\value{footnote}}
\setcounter{FootnoteCounter}{\value{Init}}
\def\footnote##1{\stepcounter{footnote}\stepcounter{FootnoteCounter}\footnotemark[\arabic{FootnoteCounter}]\def\temp{##1}\expandafter\expandafter\expandafter\global\expandafter\let\csname F\arabic{FootnoteCounter}\endcsname\temp
}}
{\end{testexamplebox}\endlist\stepcounter{Init}\foreach \f in {\arabic{Init},...,\arabic{FootnoteCounter}}{\footnotetext[\f]{\csname F\f\endcsname}}}


\begin{document}

\begin{testexample}[Latin Text]
\lipsum[1]\footnote{my first footnote}
\lipsum[2]\footnote{Another Footnote}
\end{testexample}

A text with a footnote here\footnote{Test Outside}

\begin{testexample}[Latin Text]
\lipsum[1]\footnote{my third footnote}
\lipsum[2]\footnote{Another Footnote}
\end{testexample}

\end{document}

在此处输入图片描述

相关内容