Probleme mit \usebox und \label
Verfasst: Fr 6. Jan 2012, 15:17
Ich habe in meinem newenvironment das Problem, dass ich die Fehlermeldung "Missing \endcsname inserted" erhalte.
Die Umgebung soll folgendermaßen funktionieren:
Das newenvironment soll einfach den Code innerhalb der Arbeit abkürzen. Mit Caption soll eine Beschriftung unterhalb der Grafik entstehen, daher die Verschachtelung mit newsavebox. Die Labels brauche ich für einen Bezug.
Das Problem scheint die Stelle \label{\usebox{\GrafikLabel} zu sein. Wenn ich stattdessen \label{test} eingebe, funktioniert es einwandfrei. Das Label muss ja aber nach Caption kommen, deshalb sind andere Stellen ausgeschlossen.
Wo ist mein Fehler?
Ich habe auch schon versucht, das \label nicht ins Environment zu nehmen sondern manuell an die Stelle vor \end{grafik} zu schreiben. Allerdings ist die Referenz dann nicht die Grafik, sondern die Section. Das bringt also auch nichts.
Die Umgebung soll folgendermaßen funktionieren:
\documentclass[12pt,oneside]{scrreprt} \usepackage[latin1]{inputenc} \usepackage[babel,german=quotes]{csquotes} \usepackage[german]{babel} \usepackage{fancyhdr} \usepackage{float} \usepackage{tikz} \usetikzlibrary{shapes,backgrounds} \usepackage{array} \newsavebox{\GrafikCaption} \newsavebox{\GrafikLabel} \newenvironment{grafik}[2] {\begin{figure}[H] \sbox{\GrafikCaption}{#1} \sbox{\GrafikLabel}{#2} \begin{center} \begin{tikzpicture}} {\end{tikzpicture} \end{center} \caption{\label{\usebox{\GrafikLabel}}\usebox{\GrafikCaption}} \end{figure}} \begin{grafik}{Venn-Diagramm einer echten Teilmenge}{label} \draw [fill=yellow!50] (0,0) circle(1) node[]{$Z_1$}; \draw (0.5,0) circle(2) node[]{}; \node (L) at (1.75,0) {L}; \end{grafik}
Das Problem scheint die Stelle \label{\usebox{\GrafikLabel} zu sein. Wenn ich stattdessen \label{test} eingebe, funktioniert es einwandfrei. Das Label muss ja aber nach Caption kommen, deshalb sind andere Stellen ausgeschlossen.
Wo ist mein Fehler?
Ich habe auch schon versucht, das \label nicht ins Environment zu nehmen sondern manuell an die Stelle vor \end{grafik} zu schreiben. Allerdings ist die Referenz dann nicht die Grafik, sondern die Section. Das bringt also auch nichts.