У меня есть амбициозный план аннотировать и комментировать довольно длинную книгу, которая находится в общественном достоянии. Я планирую сделать это с помощью обширных сносок, но мне было интересно, есть ли способ, после добавления сносок, распечатать исходный документбезсноски.
По сути, мне просто нужна команда, которая может указать интерпретатору игнорировать все сноски.
Первая мысль, которая приходит в голову, — использовать пакет 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
подхода (используя пакет Хайко Обердика 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}