如何将两个带有子标题的子图并排放置,具有相同的高度,并计算出总宽度之和?

如何将两个带有子标题的子图并排放置,具有相同的高度,并计算出总宽度之和?

简单地说,我只想为该问题接受的答案中显示的子图添加子标题:

强制子图具有相同的高度并占据 LaTeX 中线宽的总体 X%

这是我尝试过的方法:

\documentclass[a4paper,10pt]{book}

\usepackage{subcaption}
\usepackage{graphicx}
\begin{document}

\begin{figure}
\centering

\resizebox{.9\textwidth}{!}{
  \includegraphics[height=3cm]{example-image-a}
%  \subcaption{Example image A.}
  \quad
  \includegraphics[height=3cm]{example-image-16x9}
%  \subcaption{Example image 16x9.}
}
\caption{Example images.} 
\end{figure}
\end{document}

当我取消注释这些subcaption行时,出现以下错误:

You can't use `\hrule' here except with leaders. \caption@hrule ->\hrule \@height \z@ l.13 }

编辑:

顺便说一句,其中一个答案(不是被接受的答案)强制子图具有相同的高度并占据 LaTeX 中线宽的总体 X%解决了我的问题。从一开始,我就在这个问题文本中引用了这个问题,并说出了除了公认的答案之外我想要的东西。

答案1

看看以下解决方案是否满足您的期望:

\documentclass[a4paper,10pt]{book}
    \usepackage{subcaption}
    \usepackage{graphicx}
    \newlength{\limage}
    \newlength{\rimage}

\usepackage{showframe}

    \begin{document}
\begin{figure}
\centering
\settowidth\limage{\includegraphics[height=3cm]{example-image-a}}
\settowidth\rimage{\includegraphics[height=3cm]{example-image-16x9}}
\resizebox{.9\textwidth}{!}{
    \begin{tabular}{p{\limage}p{\rimage}}
\includegraphics[height=3cm]{example-image-a}\newline
\subcaption{Example image A.}
    &   \includegraphics[height=3cm]{example-image-16x9}\newline
        \subcaption{Example image 16x9.}
    \end{tabular}
}
\caption{Example images.}
\end{figure}
    \end{document}

在此处输入图片描述

如您所见,通过在给定高度测量图像的宽度即可满足您的要求。为此,您需要定义两个或更多个新的长度寄存器(在序言中),并在图中首先测量图像宽度,此宽度在表格环境中(或在\subfigure或 中minipage)用于确定列宽。进一步的操作很简单。

笔记:定义的长度可以在每个figure环境中重复使用。如果其中有两个以上的子图,则需要定义足够数量的长度寄存器。

相关内容