PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Umgebung für Beispiel-Code wie TikZ-Handbuch



alexraasch
28-03-2010, 22:50
Hallo,

ich habe jetzt 1 Stunde das Forum durchsucht, aber nichts gefunden, obwohl ich glaubte das Thema schon einmal gelesen zu haben.

Ich möchte eine "Beispiel-Code-Umgebung" schaffen genau so wie im PGF/TikZ-Handbuch. Also rechts soll ein LaTeX-Quelltext dargestellt werden, links das Ergebnis, wenn man diesen Text ausführt. So:



\begin{beispiel}[both/code/result]
...
\end{beispiel}


Mit dem optionalen Parameter möchte ich steuern, ob Quelltext und Ergebnis oder nur eines von beiden angezeigt werden soll.

Das habe ich bisher versucht:
Ich habe den Quelltext des TikZ-Handbuches durchsucht und in der Datei pgfmanual-en-macros.tex die Stelle gefunden, an der ich die Definition vermute.
Leider kenne ich mich mit TeX-Programmierung überhaupt nicht aus und verstehe den Quelltext in dieser Datei auch nicht. Ich habe ein Beispiel erstellt:


\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{automata}

\begin{document}
\begin{codeexample}[]
\begin{tikzpicture}[shorten >=1pt,node distance=2cm,on grid,auto]
\draw[help lines] (0,0) grid (3,2);

\node[state,initial] (q_0) {$q_0$};
\node[state] (q_1) [above right=of q_0] {$q_1$};
\node[state] (q_2) [below right=of q_0] {$q_2$};
\node[state,accepting](q_3) [below right=of q_1] {$q_3$};

\path[->] (q_0) edge node {0} (q_1)
edge node [swap] {1} (q_2)
(q_1) edge node {1} (q_3)
edge [loop above] node {0} ()
(q_2) edge node [swap] {0} (q_3)
edge [loop below] node {1} ();
\end{tikzpicture}
\end{codeexample}
\end{document}

Dieses unter Test.tex abgespeichert und pgfmanual-en-macros.tex und alle darin importierten Dateien in dasselbe Verzeichnis kopiert. Gab leider einen Haufen Fehler, u.a. "environment codeexample undefined".

tral
28-03-2010, 23:46
Also, die Datei nur in den gleichen Ordner zu kopieren, scheint mir zu wenig. Irgendwie musst du sie noch einbinden... Probier doch mal:



\input{pgfmanual-en-macros.tex}


vor \begin{document}.

Christian.

alexraasch
29-03-2010, 00:18
Oh, Verzeihung. Das habe ich natürlich gemacht. Und zusätzlich auch noch \usepackage{pgfmanual}. Das komplette Beispiel:



\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{automata}

\usepackage{pgfmanual}
\input{pgfmanual-en-macros}

\begin{document}
\begin{codeexample}[]
\begin{tikzpicture}[shorten >=1pt,node distance=2cm,on grid,auto]
\draw[help lines] (0,0) grid (3,2);

\node[state,initial] (q_0) {$q_0$};
\node[state] (q_1) [above right=of q_0] {$q_1$};
\node[state] (q_2) [below right=of q_0] {$q_2$};
\node[state,accepting](q_3) [below right=of q_1] {$q_3$};

\path[->] (q_0) edge node {0} (q_1)
edge node [swap] {1} (q_2)
(q_1) edge node {1} (q_3)
edge [loop above] node {0} ()
(q_2) edge node [swap] {0} (q_3)
edge [loop below] node {1} ();
\end{tikzpicture}
\end{codeexample}
\end{document}