This solution modifies \@makecaption
locally to format the caption using \hangindent
and \hangafter
. The saveboxes are used to compute the distance for the text to be wrapped.
The \subfloat
s are aligned at the top using \raisebox
. Technically, the caption overlaps the left picture, hence the [0pt]
.
The extra \topskip
is due to a feature (bug) in subfig which behaves differently in vmode and 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}
