Text per Befehl in den Anhang

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Dediggefedde
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Fr 15. Apr 2011, 13:34

Text per Befehl in den Anhang

Beitrag von Dediggefedde »

Hallo zusammen^^,

Ich möchte gerne Im Zuge einer Vorlesungsmitschrift alle Beweise bestimmter mathematischer Sätze in einen Anhang verschieben, sodass man den Rest der Vorlesung besser/zusammenhängender lesen kann.

natürlich kann ich dazu einfach etwa per Lesezeichen o.ä. an das Ende der tex-Datei gehen und die Beweise gleich dort mitschreiben bzw. eine Datei parallel offen halten und per include später hinten einbinden...

Allerdings möchte ich gerne eine Lösung, mit der die Beweise an der selben Stelle stehen (in .tex), an der sie auch in der Vorlesung erschienen, jedoch in der Ausgabe (.pdf/.ps) hinten angefügt werden.

Dies ist einerseits nützlich, falls man die Beweise später wieder an dieser Stelle erscheinen lassen möchte oder wenn bereits einige Beweise mittels einer Beweis-Umgebung oder eines Beweis-Befehls eingebettet eingebunden wurden.


Da ich nicht alle Möglichkeiten kenne, dachte ich zunächst, man könne evtl ein Array aus Befehlen erstellen, zu dem man pro Aufruf des Beweis-Befehls einen weiteren Befehl mit dem Inhalt des Beweisinhaltes hinzufügt und an gewünschter Stelle mittels Schleife alle Befehle einmal aufruft...
Allerdings scheint so-etwas nicht möglich zu sein...

Auch möglich schien mir, einen Befehl jeweils zu erweitern.
Dabei habe ich verschiedene let/def/edef/let/renewcommand-Kombinationen ausprobiert, allerdings entsprach nichts davon vollends meinen Vorstellungen.
Es scheint, dass z.b.
\def\myindexlist{}%
\newcommand{\Beweis}[1]{%
\let\myindexlistold=\myindexlist
\let\myindexlist=\myindexlistold#1\hrule
}
nicht funktioniert, da \let\myindexlist nur das erste Wort erhält und der Versuch \let\myindexlist={\myindexlistold#1\hrule} mit "Too many }'s" abbricht.

Auch habe ich mir überlegt, man könnte die Beweise mittels
\newwrite\outfile
\immediate\openout\outfile=seminar.dat
\newcommand{\Beweis}[1]{\immediate\write\outfile{#1}}
in eine Datei schreiben... allerdings benötige ich natürlich Zeilenumbrüche, die diese Methode nicht unterstützt.


Gibt es denn schon entsprechende Lösungen bzw. Verbesserungsmöglichkeiten der von mir ausprobierten Code-Stücke?

mit freundlichen Grüßen
Dediggefedde


EDIT:

Ich bin zufällig auf das Paket etoolbox gestoßen!
Damit habe ich jetzt mittels 2 countern und dem Paket hyperref einen recht zufriedenstellenden Anhang generiert:
\usepackage{etoolbox}
\usepackage[pdftex, colorlinks=true, breaklinks=true,plainpages=false,linkcolor=black]{hyperref} 

\newcounter{Bew1}
\newcounter{Bew2}

\newcommand{\Beweisa}[1]{
	\stepcounter{Bew1}
	\\
	\hyperref[\arabic{Bew1}]{Siehe Beweis \arabic{Bew1} (Anhang)}
	\label{L\arabic{Bew1}}
	\gappto{\Beweistext}{ \phantomsection \stepcounter{Bew2}\label{\arabic{Bew2}}\textbf{\arabic{Bew2} Beweis} 
	(\autoref{L\arabic{Bew2}}):\begin{quote}#1\end{quote}\hrule\vspace{1mm}\hrule\vspace{3mm}}
}
Dabei kann man nun die Beweise mittels \Beweistext an beliebiger Stelle einbinden. Es gibt einen Link von der Stelle des Beweises zum Beweis und zurpck...