![Tikzpicture verschiebt die Subfigure-Umgebung](https://rvso.com/image/391696/Tikzpicture%20verschiebt%20die%20Subfigure-Umgebung.png)
Ich hätte gerne eine Achse die mit Ti gezeichnet wirdkZ in der Ecke des Bildrasters, um die Zunahme der Variablen deutlich zu sehen. Das folgende MWE ergibt Abbildung 1. Ich habe versucht, ein \linebreak
dazwischen zu setzen \end{tikzpicture}
, \foreach \a
was zu Abbildung 2 führt. Idealerweise möchte ich etwas wie Abbildung 3 erhalten, aber ohne den weißen Hintergrund auf der tikzpicture
ie-Achse sehr nahe an der ersten Abbildung.
\documentclass{article}
\usepackage[demo]{graphics}
\usepackage{tikz}
\usepackage{pgffor}
\usepackage{subcaption}
\begin{document}
\begin{figure}[!htb]
\centering
\begin{tikzpicture}
\draw [->] (0,0) -- (0.5,0) node[right]{\(\sigma_{\theta}\)};
\draw [->] (0,0) -- (0,-0.5) node[below]{\(\sigma_{\phi}\)};
\end{tikzpicture}
\foreach \a in {1,...,2} {
\foreach \b in {1,...,5} {
\begin{subfigure}{.185\textwidth}
\includegraphics[width=\textwidth]{example-image-duck}
\caption{\((\a,\b)\)}
\end{subfigure}
}
\linebreak
}
\end{figure}
\end{document}
Abbildung 1
Figur 2
Figur 3
Antwort1
Lassen Sie mich wissen, ob das Folgende das ist, wonach Sie suchen :)
Sie können die Achsen anpassen \vspace{}
und \hspace{}
an die gewünschte Stelle verschieben.
\documentclass{article}
\usepackage[demo]{graphics}
\usepackage{tikz}
\usepackage{pgffor}
\usepackage{subcaption}
\begin{document}
\begin{figure}[!htb]
\hspace{-1cm} %shifts the tikzpicture to the left 1cm
\begin{tikzpicture}
\draw [->] (0,0) -- (0.5,0) node[right]{\(\sigma_{\theta}\)};
\draw [->] (0,0) -- (0,-0.5) node[below]{\(\sigma_{\phi}\)};
\end{tikzpicture}
\vspace{-0.5cm} %pulls the following pictures up half a cm
\begin{center} % Only centers the pictures, not the axes
\foreach \a in {1,...,2} {
\foreach \b in {1,...,5} {
\begin{subfigure}{.185\textwidth}
\includegraphics[width=\textwidth]{example-image-duck}
\caption{\((\a,\b)\)}
\end{subfigure}
}
\linebreak
}
\end{center}
\end{figure}
\end{document}
erzeugt:
Antwort2
\documentclass{article}
\usepackage{graphics}
\usepackage{tikz}
\usepackage{pgffor}
\usepackage{subcaption}
\usepackage{stackengine}
\begin{document}
\begin{figure}[!htb]
\centering
\savestack\myaxes{\raisebox{-23pt}{%
\begin{tikzpicture}
\draw [->] (0,0) -- (0.5,0) node[right]{\(\sigma_{\theta}\)};
\draw [->] (0,0) -- (0,-0.5) node[below]{\(\sigma_{\phi}\)};
\end{tikzpicture}
}}
\foreach \a in {1,...,2} {
\foreach \b in {1,...,5} {
\begin{subfigure}{.185\textwidth}
\ifnum\a=1\relax
\ifnum\b=1\relax
\stackinset{l}{-15pt}{t}{}{\smash{\myaxes}}{%
\includegraphics[width=\textwidth]{example-image-duck}%
}
\else
\includegraphics[width=\textwidth]{example-image-duck}
\fi
\else
\includegraphics[width=\textwidth]{example-image-duck}
\fi
\caption{\((\a,\b)\)}
\end{subfigure}
}
\linebreak
}
\end{figure}
\end{document}
Die folgende Alternative erfordert weniger Code, erfordert aber mehr Ausführung, da sie \stackinset
für jede Figur eine ausführt. Allerdings wird das Inset nach der ersten Verwendung auf Null gesetzt:
\documentclass{article}
\usepackage{graphics}
\usepackage{tikz}
\usepackage{pgffor}
\usepackage{subcaption}
\usepackage{stackengine}
\begin{document}
\begin{figure}[!htb]
\centering
\savestack\myaxes{\raisebox{-23pt}{%
\begin{tikzpicture}
\draw [->] (0,0) -- (0.5,0) node[right]{\(\sigma_{\theta}\)};
\draw [->] (0,0) -- (0,-0.5) node[below]{\(\sigma_{\phi}\)};
\end{tikzpicture}
}}
\foreach \a in {1,...,2} {
\foreach \b in {1,...,5} {
\begin{subfigure}{.185\textwidth}
\stackinset{l}{-15pt}{t}{}{\smash{\myaxes}}{%
\includegraphics[width=\textwidth]{example-image-duck}%
}
\global\let\myaxes\relax
\caption{\((\a,\b)\)}
\end{subfigure}
}
\linebreak
}
\end{figure}
\end{document}
Diese dritte Alternative setzt die Bedeutung von nach der ersten Verwendung auf Null \stackinset
und stellt sie nach der Zahl wieder her. Daher ist sie in der Ausführung effizienter als die vorherige Alternative und erfordert immer noch weniger Codierung als die ursprünglich bereitgestellte Lösung.
\documentclass{article}
\usepackage{graphics}
\usepackage{tikz}
\usepackage{pgffor}
\usepackage{subcaption}
\usepackage{stackengine}
\let\svstackinset\stackinset
\newcommand\zerostackinset{\gdef\stackinset##1##2##3##4##5##6{##6}}
\begin{document}
\begin{figure}[!htb]
\centering
\savestack\myaxes{\raisebox{-23pt}{%
\begin{tikzpicture}
\draw [->] (0,0) -- (0.5,0) node[right]{\(\sigma_{\theta}\)};
\draw [->] (0,0) -- (0,-0.5) node[below]{\(\sigma_{\phi}\)};
\end{tikzpicture}
}}
\foreach \a in {1,...,2} {
\foreach \b in {1,...,5} {
\begin{subfigure}{.185\textwidth}
\stackinset{l}{-15pt}{t}{}{\smash{\myaxes}}{%
\includegraphics[width=\textwidth]{example-image-duck}%
}
\zerostackinset
\caption{\((\a,\b)\)}
\end{subfigure}
}
\linebreak
}
\end{figure}
\let\stackinset\svstackinset
\end{document}