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
のマクロが欠けています。 では、「1a」を生成することしかできません。 前者は単に「a」、またはさらに良いことに「(a)」( と一致する)を生成しました。subcaption
floatrow
\ref{lab1}
\subref{lab1}
labelformat=parens
floatrow
とloadedのみで同様のことを行うことができますかcaption
? また、できない場合は、\ref
マクロを と一致するように再定義してlabelformat
、「1a」ではなく「1(a)」を表示するにはどうすればよいでしょうか?
答え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}