У меня есть подфигуры, созданные с помощью floatrow
пакета вместо subcaption
пакета. Последний не загружается.
\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}
Дисплей такой, как я хочу. Основная подпись имеет метку "Рис. 1:", подзаголовки имеют "(a)" и "(b)".
Однако мне не хватает \subref
макроса пакета subcaption
для прямой ссылки на подфигуры. С помощью floatrow
я могу сделать только \ref{lab1}
yielding "1a". Первый \subref{lab1}
дал просто "a" или даже лучше "(a)" (чтобы соответствовать labelformat=parens
).
Могу ли я сделать что-то подобное с only floatrow
и caption
загруженным? И если нет, как мне переопределить макрос, \ref
чтобы он соответствовал labelformat
и, таким образом, отображал "1(a)" вместо "1a"?
решение1
Вот как это можно сделать 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}
Если вы не хотите, чтобы в LoF отображались подфигуры, измените
\captionsetup[subfloat]{labelformat=simple,listformat=simple}
к
\captionsetup[subfloat]{labelformat=simple,list=no}