O que estou olhando...

O que estou olhando...

O que estou olhando...

Estou procurando alguns comandos \disableAllButCounterse \enableAllisso faria o seguinte:

Tudo entre \disableAllButCounterse \enableAll seria ignorado, exceto comandos tais que \setcounter{counterA}{k}, de modo que a única coisa comum entre

\disableAllButCounters
\manyCommands
\enableAll

e

%\disableAllButCounters
\manyCommands
%\enableAll

seria que depois de ambos os valores dos contadores fossem os mesmos. Em particular, qualquer coisa entre esses comandos não produzirá nenhuma saída (nem aux).

Estou procurando uma solução para látex e uma solução para luatex.

Se existir, esses comandos podem fornecer uma solução paraessa questão.

mas por que!?

Basicamente, eu gostaria de produzir várias saídas a partir de um único arquivo látex: uma saída para o conteúdo de A a B, uma saída para o conteúdo de B a C, etc. A minha pergunta levanta o problema de lidar com as referências.

Se por acaso você pensar em uma solução melhor, não hesite!!

Responder1

Você poderia tentar com

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

Como \setcountercomandos semelhantes atuam globalmente, isso deve servir; \writeos comandos são executados somente quando a caixa eventualmente encontra seu caminho na lista vertical principal, o que a caixa construída não acontece.

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

insira a descrição da imagem aqui

Este é o .auxarquivo:

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

que não mostra nenhuma entrada relacionada à seção 2.

Cuidado, pois os carros alegóricos podem estragar tudo; se você precisar deles, algumas contramedidas devem ser tomadas.

Responder2

A solução a seguir resolve o problema causado por 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}
}

informação relacionada