![在页面底部而不是框架后打印 mdframed 脚注](https://linux22.com/image/268230/%E5%9C%A8%E9%A1%B5%E9%9D%A2%E5%BA%95%E9%83%A8%E8%80%8C%E4%B8%8D%E6%98%AF%E6%A1%86%E6%9E%B6%E5%90%8E%E6%89%93%E5%8D%B0%20mdframed%20%E8%84%9A%E6%B3%A8.png)
如果存在\footnote
inside anmdframed
环境,那么我可以通过标志控制footnoteinside=false
是否要将这些脚注包含在框架内或框架外。但即使在框架外排版,它们也会立即跟随框架。有没有办法,也许使用一个小技巧,将这些脚注打印在包含框架的(最后一页)末尾?
答案1
这似乎有效。
\documentclass{article}
\usepackage{mdframed}
\usepackage{footnote}
\newenvironment{mdframedwithfoot}
{
\savenotes
\begin{mdframed}
\stepcounter{footnote}
\renewcommand{\thempfootnote}{\arabic{footnote}}
}
{
\end{mdframed}
\spewnotes
}
\usepackage{hyperref}
\begin{document}
aa\footnote{test1}
\begin{mdframedwithfoot}
bb\footnote{test2}
\end{mdframedwithfoot}
qq
\begin{mdframed}
cc
\end{mdframed}
dd\footnote{test3}
\end{document}
答案2
脚注的标准行为mdframed
与 脚注的标准行为相同minipage
。mdframed
然而,在包底部打印脚注的简单方法是tablefootnote
对包提供的tablefootnotes
:
\documentclass[]{article}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{tablefootnote}
\makeatletter
\AfterEndEnvironment{mdframed}{%
\tfn@tablefootnoteprintout%
\gdef\tfn@fnt{0}%
}
\makeatother
\begin{document}
\begin{mdframed}
foo\tablefootnote{foo}
bar\tablefootnote{bar}
\end{mdframed}
\end{document}
答案3
我发现,通过\footnotemark
在框架内和\footnotetext{…}
框架后书写,我可以达到预期的效果。这样做还有一个好处,那就是使用与文档其余部分一致的编号方案:脚注使用mdframed
小写字母编号,而文档的其余部分使用阿拉伯数字作为脚注。使用上述方法,所有内容都是阿拉伯语。