私が探しているのは...
私はいくつかのコマンドを探しています \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}
}