使用 \subcaption 最大化子图之间的垂直空间

使用 \subcaption 最大化子图之间的垂直空间

我使用 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并直接使用\parboxes 或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}

在此处输入图片描述

相关内容