Como imprimir apenas declarações (teoremas, lemas, etc) de um arquivo tex?

Como imprimir apenas declarações (teoremas, lemas, etc) de um arquivo tex?

Suponha que eu tenha um longo arquivo tex com muitas coisas. Para ler apenas a estrutura lógica, quero imprimir apenas texto dentro de \begin{teorema}..\end{teorema} e \begin{lema}..\end{lema}.

Claro, posso abraçar todas as outras partes, incluindo algo como \show{...} e então definir \show[1] como %1 quando quiser ver todo o conteúdo e como {} se quiser ver apenas instruções.

Mas estou procurando uma solução mais elegante. =) Algo parecido com o pacote de visualizaçãohttp://www.pirbot.com/mirrors/ctan/macros/latex/contrib/preview/preview.pdf

Responder1

Aqui está uma solução baseada em atbegshipacotes answers.

A ideia é answersescrever o conteúdo do teorema, lema em um arquivo externo (mtfile.tex), descartar todas as páginas (todo o conteúdo do arquivo principalhttps://tex.stackexchange.com/a/267555/71471) e, em seguida, use o arquivo externo para gerar apenas teoremas.

Usamos um teste newif \onlytrueapenas para teorema e \onlyfalsepara uso normal.

Ambientes auxiliares usados ​​para salvar as definições originais de theoreme 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}

informação relacionada