请参阅以下 MWE。由于某种原因,环境中的脚注tasks
未显示,但它们在 中有效enumeration
。
\documentclass{article}
\usepackage{enumitem}
\usepackage{tasks}
\begin{document}
\begin{tasks}
\task test\footnote{test a}
\end{tasks}
\begin{enumerate}
\item test\footnote{test b}
\end{enumerate}
\end{document}
答案1
我承认记录tasks
没有把这个事实说得很清楚(我会在下一个版本中添加一些内容):{tasks}
只有环境看起来类似于列表环境,因为从语义上讲它是一个列表。从内部来看,它不是 LaTeX 意义上的列表,即它不使用{list}
。它的主要目的是不是用 a)、b) 列出它的项目...使用自定义列表可以更轻松地实现{enumerate}
(例如通过enumitem
包)。它应该提供简单的方法来获得行项目而不是列。它通过收集环境主体来实现这一点,这使得它更像是一个伪环境和 意味着不能在 中使用逐字材料。然后,它会在 每次出现 时拆分正文,\task
并将各部分放入框(或 l3 棺材)中。然后根据指定的列数将这些框放在一起。因此,脚注在 内不再起作用{tasks}
。标准方法是使用\footnotemark
和\footnotetext
:
\documentclass{article}
\usepackage{tasks}
\begin{document}
\begin{tasks}(2)
\task test\footnotemark
\task test
\task test
\task test
\end{tasks}
\footnotetext{test a}
\end{document}
另一种可能性是加载footnote
打包并启用脚注\makesavenoteenv
:
\documentclass{article}
\usepackage{tasks}
\usepackage{footnote}
\makesavenoteenv{tasks}
\begin{document}
\begin{tasks}(2)
\task test\footnote{test a}
\task test
\task test
\task test
\end{tasks}
\end{document}
第三个解决方案可能是使环境{tasks}
兼容tablefootnote
这Marco Daniel 在这里使用的方法{mdframed}
:
\documentclass{article}
\usepackage{tasks}
\usepackage{tablefootnote}
\makeatletter
\AfterEndEnvironment{tasks}{%
\tfn@tablefootnoteprintout%
\gdef\tfn@fnt{0}%
}
\makeatother
\begin{document}
\begin{tasks}(2)
\task test\tablefootnote{test a}
\task test
\task test
\task test
\end{tasks}
\end{document}