Cómo NO renderizar una parte de un documento (LaTeX puro)

Cómo NO renderizar una parte de un documento (LaTeX puro)

Tengo un archivo LaTeX grande y quiero ocultar la mayor parte de su contenido en el PDF, pero conservar la numeración original de teoremas, etc. Algo similar a display:noneCSS.

El commententorno no ayuda porque no procesa el contenido en absoluto. Sólo se puede utilizar para ocultar texto fuera de los teoremas.

\hphantomo \vphantomno ajuste entornos como \begin{theorem}.

Para ser más precisos, supongamos que tengo lo siguiente:

% I want to hide from here ...
\section{Section 1}
\subsection{Subsection 1.1}
\begin{theorem}
First
\end{theorem}
% ... to here
\begin{theorem}
Second
\end{theorem}

Quiero ver solo el segundo teorema con la numeración original en PDF: Theorem 1.1.2.

Mi pregunta es muy similar aÉste, pero el autor de esa pregunta trabaja con Sage y la respuesta aceptada, hasta donde tengo entendido, es específica de Sage.

Si no existe una forma genérica de lograr este efecto, me alegraría que hubiera formas de ocultar los siguientes objetos:

  • Títulos de sección/subsección
  • Teoremas/lemas, etc.
  • Cifras

También pensé en "redirigir" la salida a otro archivo (no al PDF), pero no pude encontrar una solución.

La última alternativa sería"codificar" los números de los teoremas, pero quiero evitar eso.

Respuesta1

Sólo un intento que puede funcionar si todo lo que desea excluir está dentro del argumento de un comando o envuelto en un entorno. Y si sabe exactamente lo que quiere excluir.

La imagen de la izquierda no tiene ocultación, la de la derecha tiene.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

La idea es redefinir todos los comandos y entornos para absorber el contenido de los argumentos pero aún hacer la contra aritmética.

\documentclass{article}
\usepackage{environ}
\newtheorem{theorem}{Theorem}
\newenvironment{hide}%
  {\renewcommand\section[1]{\refstepcounter{section}}%
   \renewcommand\subsection[1]{\refstepcounter{subsection}}%
   \RenewEnviron{theorem}{\refstepcounter{theorem}}%
  }%
  {}
\begin{document}
% i want to hide from here ...
\begin{hide}
\section{Section 1}
\subsection{Subsection 1.1}
\begin{theorem}
First
\end{theorem}
\end{hide}
% ... to here
\begin{theorem}
Second
\end{theorem}
\subsection{Subsection 1.2}
\section{Section 2}
\begin{theorem}
Third
\end{theorem}
\end{document}

Respuesta2

Si ejecuta este documento, luego descomenta el includeonly y lo ejecuta nuevamente, obtendrá un documento de una sola página con (solo) el teorema 2 en la página 2.

ingrese la descripción de la imagen aquí

\begin{filecontents}{zzzz1.tex}
\section{Section 1}
\subsection{Subsection 1.1}
\begin{theorem}
First
\end{theorem}

\end{filecontents}
\begin{filecontents}{zzzz2.tex}
\begin{theorem}
Second
\end{theorem}
\end{filecontents}

\documentclass{article}
\newtheorem{theorem}{Theorem}

%\includeonly{zzzz2}

\begin{document}
% i want to hide from here ...
\include{zzzz1}
% ... to here
\include{zzzz2}
\end{document}

Respuesta3

Me gusta la respuesta de Gernot, pero ya había comenzado con esto antes de ver la suya, así que también podría publicarla:

\documentclass{article}
\newif\ifskipstuff

\skipstufffalse
%\skipstufftrue

\usepackage{amsmath}
\begin{document}

\ifskipstuff
    \refstepcounter{section}
    \refstepcounter{subsection}
    \refstepcounter{equation}
\else
    \section{Section 1}
    \subsection{Subsection 1.1}
    \begin{equation}
        First
    \end{equation}
\fi

\section{A Section}
\subsection{Subsection}
\begin{equation}
    Second
\end{equation}

\end{document}

El inconveniente es que siempre es necesario aumentar todos los contadores manualmente. No es muy agradable (especialmente si tiene muchas cosas en la \elsecláusula. Tal vez eso podría refinarse aún más (incluyendo las \ifskipstuffcomprobaciones dentro de entornos redefinidos, tal vez, para que hagan sus propias comprobaciones). La ventaja es que puede configurar globalmente si desea incluir su material o no cambiando entre \skipstufffalsey \skipstufftrue, respectivamente, podría ser una ventaja, dependiendo de su caso de uso.

\skipstufftrue:

saltar cosas cierto

\skipstufffalse:

saltar cosasfalso

información relacionada