PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abschnitte ausblenden aber Referenzen beibehalten



raspittyplatsch
21-03-2012, 19:02
Ich sitze an einem relativ umfangreichen Dokument (ca. 250 Seiten) und will nun eine Kurzvariante davon erstellen. Dabei sollen mehrere Textpassagen ausgeblendet und durch eine Variable im Header zwischen der vollständigen und der kurzen Variante getauscht werden.
Wichtig ist mir dabei, dass beide Dokumente die gleichen Nummerierungen (vor allem in Gleichungen, aber auch bei Abbildungen und Tabellen) haben, auch wenn dann in der kurzen Variante evtl. nach Gleichung (3) schon Gleichung (6) kommt.

Hat jemand eine Idee wie ich das möglichst automatisiert hinkriege, ohne die Counter im kompletten Text manuell korrigiere?

Vielen Dank,
raspittyplatsch

raspittyplatsch
22-03-2012, 12:49
Ich habe leider noch keine schöne Lösung gefunden, und muss das bis dahin erstmal manuell einarbeiten.

Hier ein Minimalbeispiel: ich will nun mit einer Variable zwischen den Modi wechseln und scheiter gerade am Versuch eine Bemerkungsumgebung mit standardmäßig. Dann spare ich mir die Arbeit die auch alle noch auszublenden.


\documentclass{scrartcl}

\usepackage{ifthen}

\newcommand{\zusammenfassung}{0} %zur Auswahl zwischen Kurz- und Langfassung. 0=Lang 1=Kurz

\newtheorem{bemerkung}{Bemerkung}

\ifthenelse{\equal{\zusammenfassung}{1}}{%
\newcommand{\kurz}[1]{}
\renewenvironment{bemerkung}{}{}
}{
\newcommand{\kurz}[1]{#1}}

\begin{document}


Hallo Welt

\kurz{Dieser Text ist unwichtig und kann ausgeblendet werden.}

Das hingegen ist wichtig und soll angezeigt werden.
\begin{bemerkung}
Das ist auch nicht sehr wichtig.
\end{bemerkung}
\end{document}

Kann mir da jemand helfen?

LuPi
22-03-2012, 12:52
Für diesen Zweck gibt es unter anderem das Paket comment.

u_fischer
22-03-2012, 14:51
Wenn du möchtest, dass die ausgeblendeten Zähler nicht ignoriert werden, musst du sie ausführen. Das kannst du tun indem du z.B. ausgeblendeten Teile in eine Box steckst, aber diese Box nachher nicht benutzt.

Allerdings musst du mit Nebenwirkungen rechnen: Vielleicht wird dadurch auch Code ausgeführt, den du eigentlich ignorieren willst. Zudem mögen manche Dinge es nicht, wenn man sie in Boxen packt (z.B. Floats), und man kann auch nicht alles haben: Im folgenden Beispiel werden die ausgeblendeten Teile nicht in die toc-Datei geschrieben (was dir wahrscheinlich recht ist), aber aus dem gleichen Grund finden die \label's nicht den Weg in die aux-Datei.


\documentclass{scrartcl}

\usepackage{environ}

\newif\iflangfassung
\newsavebox{\kurzbox}

\makeatletter
\iflangfassung
\newenvironment{bemerkung}{}{}
\else
\NewEnviron{bemerkung}
{\renewenvironment{figure}{\def\@captype{figure}}{ }%
\renewenvironment{table}{\def\@captype{table}}{}%
\savebox{\kurzbox}{\parbox{\textwidth}{\BODY}}}
\fi
\makeatother

\langfassungfalse

\begin{document}
\listoffigures
\tableofcontents
\section{A}
Hallo Welt\footnote{A}
\begin{figure}
blub
\caption{A}
\end{figure}

\begin{bemerkung}
\section{B}\label{B}
Dieser\footnote{B} Text ist unwichtig und kann ausgeblendet werden.
\begin{figure}
blub
\caption{B}
\end{figure}
\end{bemerkung}

Das hingegen\footnote{C} ist wichtig und soll angezeigt werden. \ref{B}
\section{C}
\begin{figure}
blub
\caption{C}
\end{figure}
\end{document}