то, что я ищу...

то, что я ищу...

то, что я ищу...

Мне нужна пара команд, \disableAllButCountersкоторые \enableAllвыполняли бы следующее:

Все, что находится между \disableAllButCountersи \enableAll будет проигнорировано, за исключением команд, таких как \setcounter{counterA}{k}, так что единственное общее между

\disableAllButCounters
\manyCommands
\enableAll

и

%\disableAllButCounters
\manyCommands
%\enableAll

будет, если после обоих значений счетчиков будет одно и то же. В частности, все, что находится между этими командами, не даст никакого вывода (ни aux).

Я ищу решение для латекса и решение для люатекса.

Если он существует, эти команды могли бы обеспечить решениеэтот вопрос.

но почему!?

По сути, я хотел бы создать несколько выходов из одного файла latex: один выход для контента от 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}
}

Связанный контент