Como NÃO renderizar parte de um documento (LaTeX puro)

Como NÃO renderizar parte de um documento (LaTeX puro)

display:noneTenho um arquivo LaTeX grande e quero ocultar a maior parte do seu conteúdo no PDF, mas preservar a numeração original dos teoremas, etc.

O commentambiente não ajuda, porque não processa o conteúdo de forma alguma. Só pode ser usado para ocultar texto fora dos teoremas.

\hphantomou \vphantomnão envolva ambientes como \begin{theorem}.

Para ser mais preciso, suponha que eu tenha o seguinte:

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

Quero ver apenas o segundo teorema com a numeração original em PDF: Theorem 1.1.2.

Minha pergunta é muito parecida comEste, mas o autor dessa pergunta trabalha com o Sage e a resposta aceita, pelo que entendi, é específica do Sage.

Se não houver uma maneira genérica de conseguir esse efeito, ficaria feliz se houvesse maneiras de ocultar os seguintes objetos:

  • Títulos de seções/subseções
  • Teoremas/lemas, etc.
  • Figuras

Também pensei em "redirecionar" a saída para outro arquivo (não o PDF), mas não consegui encontrar uma solução.

A última alternativa seria"codificar" os números dos teoremas, mas quero evitar isso.

Responder1

Apenas uma tentativa que pode funcionar se tudo o que você deseja excluir estiver dentro do argumento de um comando ou agrupado em um ambiente. E se você souber exatamente o que deseja excluir.

A imagem da esquerda está sem esconder, a da direita está com.

insira a descrição da imagem aqui insira a descrição da imagem aqui

A ideia é redefinir todos os comandos e ambientes para engolir o conteúdo dos argumentos mas ainda fazer a 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}

Responder2

Se você executar este documento, descomentar includeonly e executá-lo novamente, obterá um documento de página única com (apenas) o teorema 2 na página 2.

insira a descrição da imagem aqui

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

Responder3

Gosto da resposta de Gernot, mas já tinha começado com isso antes de ver a dele, então é melhor postá-la:

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

A desvantagem é que você precisa aumentar todos os contadores manualmente, sempre. Não é muito bom (especialmente se você tiver muitas coisas na \elsecláusula. Talvez isso possa ser ainda mais refinado (incluindo as \ifskipstuffverificações dentro de ambientes redefinidos, talvez, para que eles façam suas próprias verificações). A vantagem é que você pode definir globalmente se você deseja incluir seu material ou não, alternando entre \skipstufffalsee \skipstufftrue, respectivamente. Bem, isso pode ser uma vantagem, dependendo do seu caso de uso.

\skipstufftrue:

ignorar coisas verdadeiras

\skipstufffalse:

skipstufffalso

informação relacionada