von KOMA » So 31. Jan 2010, 10:54
\footnotemark und \footnotetext musst Du natürlich auch sichern und wiederherstellen. Und dann könntest Du noch eine Sicherung einbauen, damit nicht zweimal gesichert wird, was ja zur Vernichtung von \footnote etc. führen würde.
\makeatletter% wegen \@empty
\newcommand*{\nofoot}{}
\newcommand*{\nofootmark}{}
\newcommand*{\nofoottext}{}
\newcommand{\deactivatefoot}{%
\ifx\nofoot\@empty% noch nicht deaktiviert
\let\nofoot\footnote
\renewcommand{\footnote}[2][]{}%
\let\nofootmark\footnotemark
\renewcommand*{\footnotemark}[1]{}%
\let\nofoottext\footnotetext
\renewcommand{\footnotetext}[1]{}%
\else
% Hier könnte man eine Fehlermeldung ausgeben
\fi
}
\newcommand{\reactivatefoot}{%
\ifx\nofoot\@empty% noch nicht deaktiviert
% Hier könnte man eine Fehlermeldung ausgeben
\else% deaktiviert
\let\footnote\nofoot
\let\footnotemark\nofootmark
\let\footnotetext\nofoottext
\let\nofoot\@empty
\let\nofootmark\@empty
\let\nofoottext\@empty
\fi
}
\makeatother% wegen \makeatletter
Wenn man das in ein Paket auslagert, entfällt übrigens \makeatletter und \makeatother. Dafür kann man dann mit \PackageError (siehe clsguide) noch die beiden Fehlermeldungen ergänzen.
\footnotemark und \footnotetext musst Du natürlich auch sichern und wiederherstellen. Und dann könntest Du noch eine Sicherung einbauen, damit nicht zweimal gesichert wird, was ja zur Vernichtung von \footnote etc. führen würde. [code]\makeatletter% wegen \@empty
\newcommand*{\nofoot}{}
\newcommand*{\nofootmark}{}
\newcommand*{\nofoottext}{}
\newcommand{\deactivatefoot}{%
\ifx\nofoot\@empty% noch nicht deaktiviert
\let\nofoot\footnote
\renewcommand{\footnote}[2][]{}%
\let\nofootmark\footnotemark
\renewcommand*{\footnotemark}[1]{}%
\let\nofoottext\footnotetext
\renewcommand{\footnotetext}[1]{}%
\else
% Hier könnte man eine Fehlermeldung ausgeben
\fi
}
\newcommand{\reactivatefoot}{%
\ifx\nofoot\@empty% noch nicht deaktiviert
% Hier könnte man eine Fehlermeldung ausgeben
\else% deaktiviert
\let\footnote\nofoot
\let\footnotemark\nofootmark
\let\footnotetext\nofoottext
\let\nofoot\@empty
\let\nofootmark\@empty
\let\nofoottext\@empty
\fi
}
\makeatother% wegen \makeatletter[/code]
Wenn man das in ein Paket auslagert, entfällt übrigens \makeatletter und \makeatother. Dafür kann man dann mit \PackageError (siehe clsguide) noch die beiden Fehlermeldungen ergänzen.