我有一个雄心勃勃的计划,要对一本属于公共领域的相当长的书籍进行注释和评论。我计划通过大量脚注来实现这一点,但我想知道在添加脚注后,是否有任何方法可以打印原始文档无脚注。
基本上,我只想要一个可以告诉解释器忽略所有脚注的命令。
首先想到的是使用该comment
包并创建一个重新定义的命令\footnote
:
\let\Oldfootnote\footnote
\renewcommand\footnote[1]{\begin{comment}#1\end{comment}}
但这不起作用。
我觉得这个问题一定已经有一个非常简单的解决方案,但我找不到它。
答案1
由于包处理环境(或对)内所有内容的方式非常复杂(它甚至会消耗参数),因此将包包装\begin{comment}#1\end{comment}
为消耗脚注内容的东西是行不通的。comment
comment
\comment...\endcomment
#
另一个问题是,它\footnote
实际上有两个参数。第一个是可选的,用于用户定义的脚注标记,第二个是必需的,具有实际的脚注文本。
最简单的方法就是在\renewcommand
脚注中加上\relax
内容。
如果只需要放宽文档某个区域中的某些脚注并在我决定分别添加命令后启用\EnableFootNotes
它\DisableFootnotes
。
\footnote
“需要”方法的可选参数\LetLtxMacro
(使用 Heiko Oberdiek 的letltxmacro
包)
\documentclass{article}
\usepackage{letltxmacro}
\LetLtxMacro\Oldfootnote\footnote
\newcommand{\EnableFootNotes}{%
\LetLtxMacro\footnote\Oldfootnote%
}
\newcommand{\DisableFootNotes}{%
\renewcommand{\footnote}[2][]{\relax}
}
\usepackage{blindtext}
\begin{document}
With footnotes:
\blindtext\footnote{first}
\blindtext\footnote[5]{second}
Without footnotes:\DisableFootNotes
\blindtext\footnote{third}
\blindtext\footnote[6]{fourth}
Enabling again:\EnableFootNotes
\blindtext\footnote{fifth}
\blindtext\footnote[10]{sixth}
\end{document}