我在一张图中并排放置了两个子图,其中一个子图的高度还不到另一个子图高度的一半。我想将子图与标题对齐,并让标题填充较小子图下方的空白区域,然后溢出到两个图下方。这可能吗?下面是现在的代码和图片。
先感谢您!
\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}