Subfigure Umgebung mit pgfplots und legend Eintrag Referenzierung Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


robert26
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mi 20. Jan 2021, 17:24

Subfigure Umgebung mit pgfplots und legend Eintrag Referenzierung

Beitrag von robert26 »

Hallo zusammen,

ich arbeite an einem großen Dokument mit vielen Abbildungen. Dabei füge ich auch tikzfigures innerhalb der Subfigure Umgebung ein. In der Caption der Abbildung möchte ich nun die Markierung referenzieren wie im pgfplot manual beschrieben über \label und \ref. Zusätzlich definiere ich lokal Farben für die entsprechende Abbildung.

Das Problem besteht nun darin, dass die Farbe der Marker in der Hauptcaption nicht korrekt ist und eine Fehlermeldung erscheint: "Package pgfkeys Error: I do not know the key '/tikz/mycolor1' and I am going". Nur in den Captions der Subfigures ist das Referenzieren möglich. Mit einer globalen Farbdefinition kann das Problem gelöst werden. Das möchte ich aber unbedingt vermeiden.

Ich habe mich schon intensiv durch das subcaption manual und andere Foren gearbeitet aber bin leider nicht fündig geworden.

Kennt jemand eine Lösung unabhängig von globalen Farbdefinitionen?

Im Beispiel ist das enstprechende Problem zu erkennen.

\documentclass{article}

\usepackage{xcolor}
\usepackage[format=plain]{caption}
\usepackage{subcaption}
\usepackage{pgfplots}
\usepackage{tikz}

\begin{document}
\begin{figure}
\begin{subfigure}[]{\textwidth}
\centering
\definecolor{mycolor1}{rgb}{1,0,0}%
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=square*,mycolor1,samples=15]{3*x+2.5*rand};\label{pgfplots:label1}
\end{axis}
\end{tikzpicture}
\caption{Caption A. \ref{pgfplots:label1} mark.}
\end{subfigure}\vfill
\begin{subfigure}[]{\textwidth}
\centering
\definecolor{mycolor2}{rgb}{0.5,1,1}%
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=square*,mycolor2,samples=15]{3*x+2.5*rand};\label{pgfplots:label2}
\end{axis}
\end{tikzpicture}
\caption{Caption B. \ref{pgfplots:label2} mark.}
\end{subfigure}
\caption{Caption total: Mark A \ref{pgfplots:label1}, Mark B \ref{pgfplots:label2}.}
\end{figure}
\end{document}
Zuletzt geändert von robert26 am Do 21. Jan 2021, 07:30, insgesamt 1-mal geändert.

gast

Re: Subfigure Umgebung mit pgfplots und legend Eintrag Referenzierung

Beitrag von gast »

Zunächst sei darauf hingewiesen, dass dein Code nicht funktioniert, weil er falsch markiert wurde. Der MWE-Knopf in der Toolbar dient lediglich dazu einen Link auf die Minimalbeispiel-Anleitung zu setzen. Für den Code eine Minimalbeispiels, ist hingegen der </>-Knopf bzw. ein Code-Tag zu verwenden.

Da \definecolor lokale arbeitet (was du ja auch ausdrücklich möchtest), kann das nicht funktionieren. Lokale Definitionen enden am Ende der aktuellen Gruppe. Jede Umgebung stellt auch eine Gruppe dar. Damit endet eine Farbdeklaration mit \definecolor, die innerhalb einer subfigure-Umgebung vorgenommen wird, immer am zugehörigen \end{subfigure}. Die Farbdeklaration muss also zwingend min. außerhalb der subfigure-Umgebung in die figure-Umgebung verschoben werden:

\documentclass{article}

\usepackage[format=plain]{caption}
\usepackage{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}% Siehe unbedingt: https://texwelt.de/fragen/19163

\begin{document}
\begin{figure}
\definecolor{mycolor1}{rgb}{1,0,0}%
\definecolor{mycolor2}{rgb}{0.5,1,1}%
\begin{subfigure}[]{\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=square*,mycolor1,samples=15]{3*x+2.5*rand};\label{pgfplots:label1}
\end{axis}
\end{tikzpicture}
\caption{Caption A. \ref{pgfplots:label1} mark.}
\end{subfigure}\vfill
\begin{subfigure}[]{\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=square*,mycolor2,samples=15]{3*x+2.5*rand};\label{pgfplots:label2}
\end{axis}
\end{tikzpicture}
\caption{Caption B. \ref{pgfplots:label2} mark.}
\end{subfigure}
\caption{Caption total: Mark A \ref{pgfplots:label1}, Mark B \ref{pgfplots:label2}.}
\end{figure}
\end{document}

Die Pakete, die ich weggelassen habe, werden alle von pgfplots geladen.


robert26
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mi 20. Jan 2021, 17:24

Re: Subfigure Umgebung mit pgfplots und legend Eintrag Referenzierung

Beitrag von robert26 »

Vielen Dank für die schnelle Antwort. Mit deiner Lösung kann ich jetzt auf jeden Fall arbeiten.


Antworten