子图侧面带有垂直居中的子标题

子图侧面带有垂直居中的子标题

我试图将多个子图排成一行,并在其左侧显示各自的子标题。我在 LaTeX 论坛上找到了一个有用的答案\parbox,但子标题不是垂直居中的,即使我将其设置c为位置参数。我猜是因为第一个 subcaption-parbox 与 graphics-parbox 的高度尺寸不同。我该如何实现?

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}

\begin{document}


\begin{figure}
\captionsetup[subfigure]{slc=off,margin={1cm,0cm}}
  \parbox[m]{0.4\textwidth}{\subcaption{A subfigure}}
  \parbox[b]{0.5\textwidth}{\includegraphics[width=\hsize]{image1}}\\
  \parbox[m]{0.4\textwidth}{\subcaption{Another subfigure}}
  \parbox[b]{0.5\textwidth}{\includegraphics[width=\hsize]{image3}}\\
  \parbox[m]{0.4\textwidth}{\subcaption{A third subfigure}}
  \parbox[b]{0.5\textwidth}{\includegraphics[width=\hsize]{image3}}\\
  \caption{A collection of subfigures}
\end{figure}

\end{document}

我还接受不包括的其他建议\parbox

提前致谢 :)

答案1

如果您想要中间对齐,中间对齐应该可以工作,但是您还需要调整每个图像的基线以进行顶部或底部对齐。

因此,我会另外加载adjustbox带有额外可选参数的包valign,该参数控制基线——请确保添加包选项[export]

可选justification=...控制\captionsetup标题的水平对齐;它接受raggedrightraggedleftcentering等等。

以下是稍微改变的代码:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}
\usepackage[export]{adjustbox}

\usepackage{xcolor}


\begin{document}
\begin{figure}[tbh]
  \setkeys{Gin}{width=0.5\linewidth}
  \captionsetup{position=bottom,skip=15pt}
  \captionsetup[subfigure]{
    justification=raggedright,
    singlelinecheck=no,
    format=hang,
    belowskip=0pt,
    aboveskip=0pt,
    %margin={1cm,0cm},
  }
  \centering
  \begin{subcaptiongroup}
    \parbox[t]{0.4\textwidth}{\caption{A subfigure}}%
    \hspace{1em}%
    \includegraphics[valign=T]{image1}

    \bigskip
    
    \parbox{0.4\textwidth}{\caption{Another subfigure. Another subfigure. Another subfigure}}%
    \hspace{1em}%
    \includegraphics[valign=c]{image3}
    
    \bigskip

    \parbox[b]{0.4\textwidth}{\caption{A third subfigure}}%
    \hspace{1em}%
    \includegraphics[valign=B]{image3}
    \par
  \end{subcaptiongroup}
  \caption{A collection of subfigures}
\end{figure}
\end{document}

在此处输入图片描述

答案2

此代码应该可以完成您想要的操作:

\documentclass[11pt]{article}

\usepackage[demo]{graphicx}
\usepackage{subcaption}
\captionsetup[subfigure]{justification=centerlast}

\usepackage{floatrow}
\floatsetup[subfigure]{style=BOXED,capbesideposition={left,center}} % change style to style=plain to remove the boxes

\begin{document}
    
    \begin{figure}
            \ffigbox
            {
            \begin{subfloatrow}
                \fcapside[\FBwidth]{\caption{A subfigure}}{\includegraphics[width=0.45\textwidth]{example=image-a.png}}
            \end{subfloatrow}   
            \begin{subfloatrow}
                \fcapside[\FBwidth]{\caption{A subfigure}}{\includegraphics[width=0.45\textwidth]{example=image-a.png}}
            \end{subfloatrow}
            \begin{subfloatrow}
                \fcapside[\FBwidth]{\caption{A subfigure}}{\includegraphics[width=0.45\textwidth]{example=image-a.png}}
            \end{subfloatrow}
            }
            {\caption{A collection of subfigures}}
    \end{figure}

\end{document}

图片旁边的标题

相关内容