\newcounter{subfigure} \newcommand{\subfiglabelformat}[1]{\raggedright{#1}} \newcommand{\subfiglabelstyle}[1]{\alph{#1}} \newcommand{\subfiglabelsize}{\small} \newenvironment{multifig}% {\addtocounter{figure}{1}% \setcounter{subfigure}{0}% \renewcommand\thesubfigure{\thefigure~(\subfiglabelstyle{subfigure})}% } {\addtocounter{figure}{-1}} \makeatletter \ExplSyntaxOn \newif\if@insubfig \NewDocumentEnvironment{subfigure}{mO{}}{% \@insubfigtrue% \refstepcounter{subfigure}% \begin{minipage}{#1}% \subfiglabelformat{{\subfiglabelsize (\subfiglabelstyle{subfigure})~#2}}% } {\end{minipage}% \@insubfigfalse% } \ExplSyntaxOff \let\multifig@old@label\label% \def\label#1{% \multifig@old@label{#1}% \if@insubfig% \@bsphack% \protected@write\@auxout{}% {\string\newlabel{#1@multifig}{{(\subfiglabelstyle{subfigure})}% {\thepage}% {\@currentlabelname}% {\@currentHref}{}% }}% \@esphack% \fi }% \def\subref#1{\ref{#1@multifig}} \makeatother