¿Cómo imprimir sólo declaraciones (teoremas, lemas, etc.) de un archivo tex?

¿Cómo imprimir sólo declaraciones (teoremas, lemas, etc.) de un archivo tex?

Supongamos que tengo un archivo tex largo con muchas cosas. Para leer solo la estructura lógica, quiero imprimir solo texto dentro de \begin{theorem}..\end{theorem} y \begin{lemma}..\end{lemma}.

Claro, puedo abarcar todas las demás partes, incluyendo algo como \show{...} y luego definir \show[1] como %1 cuando quiero ver todo el contenido y como {} si quiero ver solo declaraciones.

Pero estoy buscando una solución más elegante. =) Algo así como el paquete de vista previahttp://www.pirbot.com/mirrors/ctan/macros/latex/contrib/preview/preview.pdf

Respuesta1

Aquí hay una solución basada en paquetes atbegshiy answers.

La idea es utilizar answersese contenido para escribir el teorema, lema en un archivo externo (mtfile.tex), descartar todas las páginas (todo el contenido del archivo principalhttps://tex.stackexchange.com/a/267555/71471) y luego use el archivo externo para generar solo teoremas.

Usamos una prueba newif \onlytruesolo para el teorema y \onlyfalsepara uso normal.

Entornos auxiliares utilizados para guardar las definiciones originales de theoremy lemma.

\newtheorem{xtheorem}{Theorem}
\newtheorem{xlemma}{Lemma} 

Código completo.

\documentclass{article}
\usepackage{lipsum}

\usepackage{atbegshi}
\newcommand{\handlethispage}{}
\AtBeginShipout{\handlethispage}

\newtheorem{xtheorem}{Theorem}
\newtheorem{xlemma}{Lemma}

\newif\ifonly % uncomment next line
%\onlytrue   
\ifonly
\usepackage{answers}
\Newassociation{lemma}{mtlemma}{mtfile}
\Newassociation{theorem}{mttheorem}{mtfile}
\renewenvironment{mttheorem}{\begin{xtheorem}}{\end{xtheorem}}
\renewenvironment{mtlemma}{\begin{xlemma}}{\end{xlemma}}
\Opensolutionfile{mtfile}
\AtBeginDocument{%
\let\handlethispage\AtBeginShipoutDiscard}
\AtEndDocument{%
\clearpage\pagenumbering{arabic}
\let\handlethispage\relax
\Closesolutionfile{mtfile}
\Readsolutionfile{mtfile}}
\else
\newenvironment{theorem}{\begin{xtheorem}}{\end{xtheorem}}
\newenvironment{lemma}{\begin{xlemma}}{\end{xlemma}}
\fi


\begin{document}
\lipsum[1-12]
\begin{lemma}
this is some bla bla in lamma
\end{lemma}
\lipsum[1-12]
\begin{theorem}
some bla bla in lamma
\end{theorem}
\lipsum[1-12]
\begin{lemma}
some bla bla in lamma
\end{lemma}
\end{document}

información relacionada