Wie druckt man aus einer Tex-Datei nur Aussagen (Theoreme, Lemmata usw.) aus?

Wie druckt man aus einer Tex-Datei nur Aussagen (Theoreme, Lemmata usw.) aus?

Angenommen, ich habe eine lange Tex-Datei mit vielen Dingen. Um nur die logische Struktur zu lesen, möchte ich nur den Text innerhalb von \begin{theorem}..\end{theorem} und \begin{lemma}..\end{lemma} drucken.

Natürlich kann ich alle anderen Teile einbeziehen, beispielsweise \show{...}, und dann \show[1] als %1 definieren, wenn ich den gesamten Inhalt sehen möchte, und als {}, wenn ich nur Anweisungen sehen möchte.

Aber ich suche nach einer eleganteren Lösung. =) So etwas wie das Vorschaupakethttp://www.pirbot.com/mirrors/ctan/macros/latex/contrib/preview/preview.pdf

Antwort1

Hier ist eine Lösung basierend auf atbegshiund answersPaketen.

Die Idee ist, answersden Inhalt des Theorems und des Lemmas in eine externe Datei (mtfile.tex) zu schreiben, alle Seiten (alle Inhalte der Hauptdatei) zu verwerfenhttps://tex.stackexchange.com/a/267555/71471) und verwenden Sie dann die externe Datei, um nur Theoreme auszugeben.

Wir verwenden einen Newif-Test \onlytruenur für Theoreme und \onlyfalsezur normalen Verwendung.

Hilfsumgebungen zum Speichern der ursprünglichen Definitionen von theoremund lemma.

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

Vollständiger Code.

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

verwandte Informationen