摆脱定理注释中关于脚注的限制

摆脱定理注释中关于脚注的限制

如以下 MWE 所示,定理注释中的脚注对于amsthm的定理很有效:

\documentclass{article}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}[Foo\footnote{Bar.}]
Baz.
\end{theorem}
\end{document}

但如以下 M 所示我们并根据这个答案,不适用于ntheorem脚注文本丢失且需要\footnotemark/技巧的定理:\footnotetext

\documentclass{article}
\usepackage{ntheorem}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}[Foo\footnote{Bar.}]
Baz.
\end{theorem}
\begin{theorem}[Foo\footnotemark]
  \footnotetext{Bar.}
Baz.
\end{theorem}
\end{document}

虽然在定理可选参数中添加脚注可能不是一个很好的做法,但在某些情况下它可能很有用,例如在脚注中引用,如以下 MWE 所示:

\documentclass{article}
\usepackage{amsthm}
% \usepackage{ntheorem}
\usepackage[backend=biber,style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}[\citeauthor{knuth:ct}\footcite{knuth:ct}]
Baz.
\end{theorem}
\printbibliography
\end{document}

由于某些原因,我坚持使用ntheorem并且无法将其更改为amsthm。有希望解决此ntheorem限制的解决方法吗?

答案1

只需加载该footnote包,并借助其\makesavenoteenv命令,要求(ntheorem)定理正确处理脚注:

\documentclass{article}
\usepackage{ntheorem}
\usepackage{footnote}
\usepackage[backend=biber,style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}
\makesavenoteenv{theorem}
\makesavenoteenv{lemma}
\begin{document}
\begin{theorem}[\citeauthor{knuth:ct}\footcite{knuth:ct}]
Baz.
\end{theorem}
\begin{lemma}[\citeauthor{knuth:ct}\footcite{knuth:ct}]
Baz.
\end{lemma}
\printbibliography
\end{document}

相关内容