我想并排显示两张不同大小的图片,图片应彼此居中。但我还希望标题处于同一高度。因此小图片的标题不应向上滑动。
我当前的代码:
\begin{figure}[H]
\centering
\begin{minipage}[c]{.4\linewidth}
\centering
\includegraphics[width=\linewidth]{image1.jpg}
\caption{Caption 1}
\label{fig:label1}
\end{minipage}
\hspace{.1\linewidth}
\begin{minipage}[c]{.4\linewidth}
\centering
\includegraphics[width=\linewidth]{image2.jpg}
\caption{Caption 2}
\label{fig:label2}
\end{minipage}
\end{figure}
图片显示了当前的输出。如前所述,我希望标题 2 与标题 1(红色标记)的高度相同。
答案1
無需測量。
我将两幅图像设置在三列表格中,其中中间一列仅用于在它们之间添加水平空间。
在您自己的文档中,删除height
此处用于伪造不同尺寸(以及showframe
)的说明。根据您的喜好微调间距和尺寸。然后绝不使用[H]
。
\documentclass{article}
\usepackage{graphicx,showframe}
\begin{document}
\begin{figure}[htp]
\centering
\newcommand{\localwd}{0.4\columnwidth}% local command
\setlength{\tabcolsep}{0pt}% we don't need padding
\begin{tabular}{p{\localwd} c p{\localwd}}
\multicolumn{1}{c}{%
\begin{tabular}{c}
\includegraphics[height=6cm,width=\localwd]{example-image}
\end{tabular}%
} &\hspace*{0.1\columnwidth}&
\multicolumn{1}{c}{%
\begin{tabular}{c}
\includegraphics[height=3cm,width=\localwd]{example-image}
\end{tabular}%
}
\\
\caption{First caption} && \caption{Second caption}
\end{tabular}
\end{figure}
\end{document}
诀窍是使用 来c
放置包含图像的单元格,并将它们嵌套在 中tabular
,这样它们就会相对于另一个单元格垂直居中。对于标题,p
说明符是必需的,如果标题占用多行,说明符将确保标题顶部对齐。
答案2
像这样:
- 您的代码片段没有告诉我们有关您的文档的任何信息。
- 请始终提供 MWE(最小工作示例),即一个完整的小文档,可以重现您的问题。
- 通过在单独的表格行中插入图像和标题,可以轻松解决您的问题。例如
- 通过使用表格
tabularx
:
- 通过使用表格
\documentclass{article}
\usepackage[export]{adjustbox}
\usepackage{tabularx}
\begin{document}
\begin{figure}[ht]
\begin{tabularx}{\linewidth}{*{2}{>{\centering\arraybackslash}X}}
\includegraphics[height=55mm, width=\linewidth, valign=m]{example-image-a}
& \includegraphics[height=33mm,width=\linewidth, valign=m]{example-image-b} \\
\caption{Caption 1}
& \caption{Caption 2}
\end{tabularx}
\end{figure}
\end{document}
- 或者通过
tabular
:
\documentclass{article}
\usepackage[export]{adjustbox}
\usepackage{array}
\begin{document}
\begin{figure}[ht]
\begin{tabular}{*{2}{>{\centering\arraybackslash}p{\dimexpr0.5\linewidth-2\tabcolsep}}}
\includegraphics[height=55mm, width=\linewidth, valign=m]{example-image-a}
& \includegraphics[height=33mm,width=\linewidth, valign=m]{example-image-b} \\
\caption{Caption 1}
& \caption{Caption 2}
\end{tabular}
\end{figure}
\end{document}
结果和以前一样。
答案3
您可以将两个minipage
s 在[b]
底部对齐(如果它们的长度相似,则将 s 垂直对齐\caption
),然后将较小的图像提升到位(两个图像高度差的一半)。
\documentclass{article}
\usepackage{graphicx}
\newsavebox{\imgbox}% To store stuff
\begin{document}
\begin{figure}
\centering
\begin{minipage}[b]{.4\linewidth}
\centering
\global\setbox\imgbox=\hbox{\includegraphics[width=\linewidth]{example-image-9x16}}% Save largest image
\usebox\imgbox% Print image
\caption{Caption 1}
\end{minipage}%
\hfill
\begin{minipage}[b]{.4\linewidth}
\centering
\raisebox{\dimexpr0.5\ht\imgbox-0.5\height}{\includegraphics[width=\linewidth]{example-image-10x16}}
\caption{Caption 2}
\end{minipage}
\end{figure}
\end{document}