我使用 subcaption 包垂直排列了 2 个子图。我可以将两者之间的垂直空间设置为特定的值(使用\bigskip
或\vspace
),但我想在两者之间留出尽可能多的空间,以便第一个子图位于页面顶部,第二个子图位于底部(其下方是整个图形的标题)- 类似于\vfill
。
最小工作示例:
\documentclass[10pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\begin{subfigure}{\textwidth}
\centering \rule{4cm}{4cm} % 1st subfigure: \includegraphics{fig}...
\end{subfigure}
\par\bigskip % maximise vertical space here instead
\begin{subfigure}{\textwidth}
\centering \rule{4cm}{4cm} % 2nd subfigure: \includegraphics{fig}...
\end{subfigure}
\caption{Some caption}
\end{figure}
\end{document}
答案1
我在块\vspace*{...}
内放置了一个subfigure
,就在 之前\end{subfigure}
。它在我的三个子图之间应用了指定的间距量。我没有尝试使用\fill
,但我预计它会得到类似的结果。我在下面附上了我的代码的一个模糊片段。万岁,简单!
\begin{figure*}[htb]
\begin{subfigure}[t]{\linewidth}
\label{}
\centering\includegraphics[]{image1.eps}
\caption{}
\vspace*{2mm}
\end{subfigure}
\begin{subfigure}[c]{\linewidth}
\label{}
\centering\includegraphics[]{image2.eps}
\caption{}
\vspace*{2mm}
\end{subfigure}
\begin{subfigure}[b]{\linewidth}
\label{}
\centering\includegraphics[]{image3.eps}
\caption{}
\end{subfigure}
\end{figure*}
答案2
我不知道为什么\vspace{\fill}
中间不起作用。因此,这是一个使用以下方法的解决方法parbox
:
\documentclass[10pt,a4paper]{article}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{showframe} %% just for demo
\begin{document}
\begin{figure}
\begin{subfigure}{\textwidth}
\parbox[t][.48\textheight]{\linewidth}{% .48 because you have caption below
\centering \rule{4cm}{4cm}}%
\end{subfigure}%
\par
\begin{subfigure}{\textwidth}
\parbox[b][.48\textheight]{\linewidth}{% % .48 because you have caption below
\centering \rule{4cm}{4cm}}
\end{subfigure}
\caption{Some caption}
\end{figure}
\end{document}
您可以摆脱subfigure
并直接使用\parbox
es 或minipages
可以指定高度和宽度的地方。
答案3
当我再次尝试这样做时,我会把这个答案发布出来作为对未来自己的提醒:)
在以下 MWE 中,由于垂直空间可拉伸,图形之间的空间最大化。此外,为了获得更好的视觉效果,\vspace{\fill}
还使用了另外两个来沿垂直方向均匀分布图像。
为了使可拉伸空间发挥作用,所有内容都被包含在一个尺寸等于文本区域的小页面中。
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\begin{document}
\begin{figure}[p]
\begin{minipage}[][\textheight][c]{\textwidth}
\vspace{\fill}
\begin{subfigure}{\textwidth}
\centering
\includegraphics{first}
\caption{}
\label{fig:first}
\end{subfigure}
\vfill
\begin{subfigure}{\textwidth}
\centering
\includegraphics{second}
\caption{}
\label{fig:second}
\end{subfigure}
\vspace{\fill}
\end{minipage}
\end{figure}
\end{document}