我在找什麼...

我在找什麼...

我在找什麼...

我正在尋找幾個命令, \disableAllButCounters\enableAll將執行以下操作:

\disableAllButCounters和 之間的所有內容\enableAll 都會被忽略,除了這樣的命令 \setcounter{counterA}{k},因此之間唯一的共同點

\disableAllButCounters
\manyCommands
\enableAll

%\disableAllButCounters
\manyCommands
%\enableAll

兩者之後,計數器的值是相同的。特別是,這些命令之間的任何內容都不會產生任何輸出(也不會aux)。

我正在尋找 Latex 的解決方案和 luatex 的解決方案。

如果存在,這些命令可以提供解決方案這個問題

但為什麼!

基本上,我想從一個乳膠檔案中產生多個輸出:一個輸出為從A 到B 的內容,一個輸出為從B 到C 的內容,等等。 。我的問題提出了處理參考文獻的問題。

如果有機會,您想到更好的解決方案,請不要猶豫!

答案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}
}

相關內容