我想要用 Ti 绘制的轴钾Z 在图像网格的角落处,可以清楚地看到变量的增加。下面的 MWE 导致图 1。我尝试在和\linebreak
之间放置一个,结果如图 2 所示。理想情况下,我希望得到类似图 3 的东西,但没有ie 轴上非常接近第一个图的白色背景。\end{tikzpicture}
\foreach \a
tikzpicture
\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}
图1
图 2
图 3
答案1
如果您正在寻找以下内容,请告诉我:)
您可以调整\vspace{}
并将\hspace{}
轴移动到您喜欢的位置。
\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}
生成:
答案2
\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}
以下替代方案的代码较少,但执行时间更长,因为它对\stackinset
每个图形执行操作。但是,第一次使用后,插入图会被清零:
\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}
第三种方案在第一次使用后将 的含义清零\stackinset
,并在使用数字后将其恢复。因此,它在执行上比前一种方案更有效,并且比最初提供的解决方案所需的编码更少。
\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}