Tenho subfiguras criadas com o floatrow
pacote em vez do subcaption
pacote. Este último não está carregado.
\begin{figure}[htbp]
\ffigbox[\FBwidth]
{\begin{subfloatrow}[2]
\ffigbox[\FBwidth]
{\caption{Cap1}\label{lab1}}
{Test1}
\ffigbox[\FBwidth]
{\caption{Cap2}\label{lab2}}
{Test2}
\end{subfloatrow}}
{\caption{Cap}
\label{lab}}
\end{figure}
A tela é exatamente como eu quero. A legenda principal possui o rótulo “Fig. 1:”, as sublegendas possuem “(a)” e “(b)”.
No entanto, sinto falta da \subref
macro do subcaption
pacote para vincular diretamente às subfiguras. Com floatrow
eu só posso \ref{lab1}
produzir "1a". O primeiro \subref{lab1}
deu apenas "a" ou melhor ainda "(a)" (para combinar com labelformat=parens
).
Posso fazer algo semelhante com apenas floatrow
e caption
carregado? E se não, como posso redefinir a \ref
macro para corresponder labelformat
e, assim, exibir "1(a)" em vez de "1a"?
Responder1
Veja como você pode fazer isso com caption
:
\documentclass{article}
\usepackage{floatrow}
\usepackage{caption}
\usepackage{graphicx}
\DeclareCaptionSubType[alph]{figure}
\renewcommand\thesubfigure{(\alph{subfigure})}
\captionsetup[subfloat]{labelformat=simple,listformat=simple}
\begin{document}
\listoffigures
\begin{figure}[htbp]
\ffigbox[\FBwidth]
{\begin{subfloatrow}[2]
\ffigbox[\FBwidth]
{\caption{Caption for subfigure 1}\label{lab1}}
{\rule{5cm}{1cm}}
\ffigbox[\FBwidth]
{\caption{Caption for subfigure 2}\label{lab2}}
{\rule{5cm}{1cm}}
\end{subfloatrow}}
{\caption{General caption}
\label{lab}}
\end{figure}
As we see in subfigures~\ref{lab1} and~\ref{lab2}, which are subfigures to Figure~\ref{lab}...
\end{document}
Se você não quiser que subfiguras apareçam no LoF, altere
\captionsetup[subfloat]{labelformat=simple,listformat=simple}
para
\captionsetup[subfloat]{labelformat=simple,list=no}