lo que estoy buscando...

lo que estoy buscando...

lo que estoy buscando...

Estoy buscando un par de comandos \disableAllButCountersque \enableAllharían lo siguiente:

Todo lo que esté entre \disableAllButCountersy \enableAll sería ignorado, excepto los comandos tales que \setcounter{counterA}{k}, de modo que lo único en común entre

\disableAllButCounters
\manyCommands
\enableAll

y

%\disableAllButCounters
\manyCommands
%\enableAll

Sería que después de ambos, los valores de los contadores son los mismos. En particular, cualquier cosa entre estos comandos no producirá ningún resultado (ni aux).

Estoy buscando una solución para látex y una solución para luatex.

Si existe, estos comandos podrían proporcionar una solución aesta pregunta.

¿¡pero por qué!?

Básicamente, me gustaría producir varios resultados a partir de un único archivo de látex: un resultado para el contenido de A a B, un resultado para el contenido de B a C, etc. Planeo hacerlo cortando el archivo en varios archivos. Mi pregunta plantea el problema de abordar las referencias.

Si por casualidad se te ocurre una solución mejor, ¡no lo dudes!

Respuesta1

Podrías probar con

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

Dado que \setcountercomandos similares actúan globalmente, esto debería ser suficiente; \writeLos comandos se ejecutan sólo cuando el cuadro finalmente encuentra su camino en la lista vertical principal, lo que el cuadro construido no hará.

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

ingrese la descripción de la imagen aquí

Este es el .auxarchivo:

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

que no muestra ninguna entrada relacionada con la sección 2.

Tenga cuidado porque los flotadores podrían arruinarlo; si los necesita, se deben tomar algunas contramedidas.

Respuesta2

La siguiente solución soluciona el 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}
}

información relacionada