O que estou olhando...
Estou procurando alguns comandos \disableAllButCounters
e \enableAll
isso faria o seguinte:
Tudo entre
\disableAllButCounters
e\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 \setcounter
comandos semelhantes atuam globalmente, isso deve servir; \write
os 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}
Este é o .aux
arquivo:
\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}
}