脚注在任务中不起作用

脚注在任务中不起作用

请参阅以下 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}兼容tablefootnoteMarco 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}

相关内容