%20aus%3F.png)
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 atbegshi
und answers
Paketen.
Die Idee ist, answers
den 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 \onlytrue
nur für Theoreme und \onlyfalse
zur normalen Verwendung.
Hilfsumgebungen zum Speichern der ursprünglichen Definitionen von theorem
und 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}