%20de%20un%20archivo%20tex%3F.png)
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 atbegshi
y answers
.
La idea es utilizar answers
ese 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 \onlytrue
solo para el teorema y \onlyfalse
para uso normal.
Entornos auxiliares utilizados para guardar las definiciones originales de theorem
y 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}