Как распечатать только утверждения (теоремы, леммы и т. д.) из tex-файла?

Как распечатать только утверждения (теоремы, леммы и т. д.) из tex-файла?

Предположим, что у меня есть длинный tex-файл с большим количеством вещей. Чтобы прочитать только логическую структуру, я хочу напечатать только текст внутри \begin{theorem}..\end{theorem} и \begin{lemma}..\end{lemma}.

Конечно, я могу охватить все остальные части, включая что-то вроде \show{...}, а затем определить \show[1] как %1, когда я хочу увидеть все содержимое, и как {}, если я хочу увидеть только утверждения.

Но я ищу более элегантное решение. =) Что-то вроде пакета previewhttp://www.pirbot.com/mirrors/ctan/macros/latex/contrib/preview/preview.pdf

решение1

Вот решение на основе atbegshiи answersпакетов.

Идея состоит в том, чтобы использовать answersзапись содержимого теоремы, леммы во внешний файл (mtfile.tex), отбрасывая все страницы (все содержимое основного файлаhttps://tex.stackexchange.com/a/267555/71471) и затем использовать внешний файл для вывода только теорем.

Мы используем проверку newif \onlytrueтолько для теоремы и \onlyfalseдля обычного использования.

Вспомогательные среды, используемые для сохранения исходных определений theoremи lemma.

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

Полный код.

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

Связанный контент