我如何对子图进行排序,使得子图 a、b、c 在图的左侧按一个在另一个之上的顺序排列,而只有子图 d 在图的右侧?
\documentclass[11pt]{article}
\usepackage{pgfplots}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{geometry}
\usepackage{float}
\floatstyle{boxed}
\restylefloat{figure}
\begin{document}
\begin{figure}[h]
\begin{subfigure}{0.5\textwidth}
\caption{subfig 1}\label{syntaxUW}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\caption{subfig 2}\label{UWBeispiel}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\caption{subfig 3}\label{syntaxUW}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\caption{subfig 4}\label{syntaxUW}
\end{subfigure}
\caption{fig 1}
\label{UWAbb}
\end{figure}
\end{document}
答案1
为此,您有更多可能性。最简单的方法是省略最后一个子图和前一个子图之间的空行。在这种情况下,子图d
将与子图垂直对齐c
。
使用表格环境可以获得更优雅的结果:
\documentclass[11pt]{article}
\usepackage{pgfplots}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{geometry}
\usepackage{float}
\floatstyle{boxed}
\restylefloat{figure}
\usepackage{array}% for m type of column
\begin{document}
\begin{figure}[h]
\begin{tabular}{m{0.5\hsize}m{0.5\hsize}}
\begin{subfigure}{0.5\textwidth}
\caption{subfig 1}\label{syntaxUW}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\caption{subfig 2}\label{UWBeispiel}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\caption{subfig 3}\label{syntaxUW}
\end{subfigure}
&
\begin{subfigure}{0.5\textwidth}
\caption{subfig 4}\label{syntaxUW}
\end{subfigure}
\end{tabular}
\caption{fig 1}
\label{UWAbb}
\end{figure}
\end{document}
为了使表格列内的子图居中,你可以重新定义列类型为
{>{\centering\arraybackslash}m{0.5\hsize} ...}