使用不同高度的子图在子图下包裹标题

使用不同高度的子图在子图下包裹标题

我在一张图中并排放置了两个子图,其中一个子图的高度还不到另一个子图高度的一半。我想将子图与标题对齐,并让标题填充较小子图下方的空白区域,然后溢出到两个图下方。这可能吗?下面是现在的代码和图片。

先感谢您!

\begin{figure}[H]
  \centering
  \subfloat[]{{\includegraphics[width=5cm]{Fig10a.png} }}%
  \qquad
  \subfloat[]{{\includegraphics[width=5cm]{Fig10b.png} }}%
  \caption{Caption text goes here.}
  \label{fig:fig10} 
\end{figure}

在此处输入图片描述

答案1

此解决方案在本地进行修改,使用和\@makecaption格式化标题。保存框用于计算要换行的文本的距离。\hangindent\hangafter

s\subfloat使用 对齐到顶部\raisebox。从技术上讲,标题与左图重叠,因此使用[0pt]

额外的部分\topskip是由于 subfig 中的一个特性(错误)导致的,它在 vmode 和 hmode 下的行为不同。

\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{blindtext}
\usepackage{caption}% not used, test for compatibility
\usepackage{hyperref}

\makeatletter
\newcommand{\hangcaption}[2]{% #1 = \hangindent, #2 = \hangafter\baselineskip (negative distance)
  \long\def\@makecaption##1##2{% 
    \vskip\abovecaptionskip
    \hangindent=#1\relax
    \hangafter=\numexpr #2\relax/\baselineskip\relax
    ##1: ##2\par
    \vskip\belowcaptionskip}%
  \ignorespaces}
\makeatother

\begin{document}
\listoffigures

\begin{figure}[hp]
  \sbox0{\subfloat[]{\includegraphics[width=5cm,height=6cm]{example-image}}}%
  \sbox1{\subfloat[]{\includegraphics[width=5cm,height=2cm]{example-image}}}%
  \centering
  \raisebox{-\height}[0pt][0pt]{\usebox0}\hfil\hfil
  \raisebox{\dimexpr \topskip-\height}{\usebox1}% \topskip ?????
  \hangcaption{0.5\textwidth}{\dimexpr \ht1-\ht0}%
  \caption[short caption]{\blindtext}
\end{figure}

\end{document}

演示

相关内容