was ich suche...
Ich suche nach ein paar Befehlen, \disableAllButCounters
die \enableAll
Folgendes bewirken würden:
Alles zwischen
\disableAllButCounters
und\enableAll
würde ignoriert werden, außer Befehle wie\setcounter{counterA}{k}
, so dass die einzige Gemeinsamkeit zwischen\disableAllButCounters \manyCommands \enableAll
Und
%\disableAllButCounters \manyCommands %\enableAll
wäre, dass nach beiden die Werte der Zähler gleich sind. Insbesondere erzeugt alles zwischen diesen Befehlen keine Ausgabe (noch
aux
).Ich suche nach einer Lösung für Latex und nach einer Lösung für Luatex.
Wenn es existiert, könnten diese Befehle eine Lösung fürdiese Frage.
aber warum!?
Grundsätzlich möchte ich aus einer einzigen Latex-Datei mehrere Ausgaben erzeugen: eine Ausgabe für den Inhalt von A nach B, eine Ausgabe für den Inhalt von B nach C usw. Ich plane, dies zu tun, indem ich die Datei in mehrere Dateien aufteile. Meine Frage wirft das Problem des Umgangs mit den Referenzen auf.
Wenn Ihnen zufällig eine bessere Lösung einfällt, zögern Sie nicht!!
Antwort1
Sie könnten es mit versuchen
\newcommand{\disableAllButCounters}{\setbox0=\vbox\bgroup}
\newcommand{\enableAllButCounters}{\egroup}
Da \setcounter
und ähnliche Befehle global wirken, sollte dies ausreichen; \write
Befehle werden nur ausgeführt, wenn die Box schließlich ihren Weg in die vertikale Hauptliste findet, was bei der erstellten Box nicht der Fall ist.
\documentclass{article}
\newcommand{\disableAllButCounters}{\setbox0=\vbox\bgroup}
\newcommand{\enableAllButCounters}{\egroup}
\begin{document}
\section{A}
Text
\disableAllButCounters
\section{B}
Text
\enableAllButCounters
\section{C}
Text
\end{document}
Dies ist die .aux
Datei:
\relax
\@writefile{toc}{\contentsline {section}{\numberline {1}A}{1}}
\@writefile{toc}{\contentsline {section}{\numberline {3}C}{1}}
das keinen Eintrag zu Abschnitt 2 anzeigt.
Beachten Sie, dass Schwimmer das Ganze ruinieren könnten. Wenn Sie sie benötigen, sollten einige Gegenmaßnahmen ergriffen werden.
Antwort2
Die folgende Lösung behebt das durch verursachte Problem figure
.
\usepackage{letltxmacro}
\newcommand{\disableAllButCounters}{%
% Dealing with the figure environment
\LetLtxMacro{\savedfigure}{\figure}
\renewcommand{\figure}{}
\LetLtxMacro{\savedendfigure}{\endfigure}
\renewcommand{\endfigure}{}
% Disabling everything but counter
\setbox0=\vbox\bgroup
}
\newcommand{\enableAllButCounters}{%
% Reenabling everything but counter
\egroup
% Dealing with the figure environment
\renewenvironment{figure}{\savedfigure}{\savedendfigure}
}