私が探しているのは...

私が探しているのは...

私が探しているのは...

私はいくつかのコマンドを探しています \disableAllButCountersが、\enableAllそれは次のことを行います:

\disableAllButCountersと の間のすべては\enableAll 無視されますが、 となるコマンドは例外です \setcounter{counterA}{k}。そのため、 と の間の唯一の共通点は

\disableAllButCounters
\manyCommands
\enableAll

そして

%\disableAllButCounters
\manyCommands
%\enableAll

両方の後、カウンターの値は同じになります。特に、これらのコマンドの間にあるものは何も出力を生成しません (もaux)。

私はラテックス用のソリューションと luatex 用のソリューションを探しています。

もし存在するなら、これらのコマンドは解決策を提供できるだろうこの質問

しかし、なぜ!?

基本的に、私は単一の LaTeX ファイルから複数の出力を生成したいと考えています。つまり、A から B へのコンテンツ用に 1 つの出力、B から C へのコンテンツ用に 1 つの出力、といった具合です。私は、ファイルを複数のファイルに分割してこれを実行するつもりです。私の質問は、参照の処理に関する問題を提起します。

万が一、もっと良い解決策が思いついたら、迷わずに!!

答え1

試してみるといいでしょう

\newcommand{\disableAllButCounters}{\setbox0=\vbox\bgroup}
\newcommand{\enableAllButCounters}{\egroup}

および同様のコマンドはグローバルに動作するため\setcounter、これは機能するはずです。\writeコマンドは、ボックスが最終的にメインの垂直リスト内に配置されたときにのみ実行されますが、構築されたボックスはそうではありません。

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

ここに画像の説明を入力してください

ファイルは次のとおりです.aux:

\relax 
\@writefile{toc}{\contentsline {section}{\numberline {1}A}{1}}
\@writefile{toc}{\contentsline {section}{\numberline {3}C}{1}}

セクション 2 に関連するエントリは表示されません。

フロートは物を台無しにする可能性があるので注意してください。必要な場合は、何らかの対策を講じる必要があります。

答え2

次の解決策は、 によって引き起こされる問題に対処します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}
}

関連情報