Tex ファイルからステートメント (定理、補題など) のみを印刷するにはどうすればよいでしょうか?

Tex ファイルからステートメント (定理、補題など) のみを印刷するにはどうすればよいでしょうか?

たくさんの内容が書かれた長い tex ファイルがあるとします。論理構造だけを読み取るために、\begin{theorem}..\end{theorem} と \begin{lemma}..\end{lemma} 内のテキストだけを出力したいとします。

もちろん、\show{...} のようなものを含む他のすべての部分を含めて、すべてのコンテンツを表示する場合は \show[1] を %1 として定義し、ステートメントのみを表示する場合は {} として定義することができます。

しかし、私はもっとエレガントな解決策を探しています。=) プレビューパッケージのようなものhttp://www.pirbot.com/mirrors/ctan/macros/latex/contrib/preview/preview.pdf

答え1

atbegshi以下は、およびanswersパッケージに基づくソリューションです。

アイデアは、answers定理、補題の内容を外部ファイル(mtfile.tex)に書き出し、すべてのページ(メインファイルのすべての内容)を破棄することです。https://tex.stackexchange.com/a/267555/71471) を実行し、外部ファイルを使用して定理のみを出力します。

\onlytrue定理と通常の使用のためだけにnewif テストを使用します\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}

関連情報