was ich suche...

was ich suche...

was ich suche...

Ich suche nach ein paar Befehlen, \disableAllButCountersdie \enableAllFolgendes bewirken würden:

Alles zwischen \disableAllButCountersund \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 \setcounterund ähnliche Befehle global wirken, sollte dies ausreichen; \writeBefehle 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}

Bildbeschreibung hier eingeben

Dies ist die .auxDatei:

\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}
}

verwandte Informationen