
パッケージを使用しようとしていますsubcaption
(ない subfig
) を使用して、図の横にサブ図のラベルを生成します。
似たような質問をたくさん見つけましたが、すべての回答(これです)subfig
およびを使用します。を とともにfloatrow
使用してみましたが(下記の MWI を参照)、同じ動作を生成できませんでした。何が足りないのでしょうか?floatrow
subcaption
マニュアルsubcaption
には明確に次のように記載されています
パッケージのサブキャプション機能のより高度な使用方法については、パッケージ
caption
をご覧ください。floatrow
しかし、floatrow
マニュアルでは、図の横にキャプションを表示する例のみを示していますsubfig
(p.75)。
したがって、どんな助けでも大歓迎です。
MWE:
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage[font=footnotesize,figurewithin=none]{caption}
\usepackage{subcaption}
\captionsetup{subrefformat=parens} % will result in references (typeset with \ref) like 1a but sub-references (typeset with\subref) like (a)
\usepackage{floatrow}
\floatsetup[subfigure]{style=plain,subcapbesideposition=top}
%\usepackage{subfig} % not compatible with subcaption
\begin{document}
\begin{figure}
\centering
\begin{subfigure}[t]{0.7\textwidth}
\centering
\includegraphics[width=0.7\textwidth]{example-image-a}
\caption{}
\label{subfig:a}
\end{subfigure}
\\
\begin{subfigure}[t]{0.49\textwidth}
\centering
\includegraphics[width=\textwidth]{example-image-b}
\caption{}
\label{subfig:b}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.49\textwidth}
\centering
\includegraphics[width=\textwidth]{example-image-c}
\caption{}
\label{subfig:c}
\end{subfigure}
\caption{Caption for all subfigs: \subref{subfig:a},\subref{subfig:b}, \subref{subfig:c}}
\label{fig}
\end{figure}
\end{document}
MWEの出力:
答え1
どうやって機能させるかを考えるよりもfloatrow
、ただ偽装する方が簡単でした。
[t]
のオプションはsubfigure
絶対上端ではなく最初のベースラインを参照することに注意してください。つまり、キャプションではなくイメージの下端を揃えることになります。上端を揃えるには、 を使用する必要があります\raisebox
。実際、サブ図にイメージを配置する理由はまったくありません (キャプションのみ)。
\raisebox
キャプションの目的は、行間に自動的にギャップを作成することです。
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage[font=footnotesize,figurewithin=none]{caption}
\usepackage{subcaption}
\captionsetup{subrefformat=parens} % will result in references (typeset with \ref) like 1a but sub-references (typeset with\subref) like (a)
%\usepackage{subfig} % not compatible with subcaption
\newcommand{\sidecaption}[1]% #1 = label name
{\raisebox{\abovecaptionskip}{\begin{subfigure}[t]{1.6em}
\caption[singlelinecheck=off]{}% do not center
\label{#1}
\end{subfigure}}\ignorespaces}
\begin{document}
\begin{figure}
\centering
\sidecaption{subfig:a}
\raisebox{-\height}{\includegraphics[width=0.45\textwidth]{example-image-a}}
\sidecaption{subfig:b}
\raisebox{-\height}{\includegraphics[width=0.45\textwidth]{example-image-b}}%
\hfill
\sidecaption{subfig:c}
\raisebox{-\height}{\includegraphics[width=0.45\textwidth]{example-image-c}}
\caption{Caption for all subfigs: \subref{subfig:a},\subref{subfig:b}, \subref{subfig:c}}
\label{fig}
\end{figure}
\end{document}
これは、サイド キャプションをフォーマットする多くの方法のうちの 1 つにすぎないことに注意してください。次の例では、サブキャプション パッケージはまったく使用されていません。一方、どちらのエントリも書き込まれません\listoffigures
。
\newcounter{subfigure}[figure]% not needed with subcaption
\renewcommand{\thesubfigure}{\alph{subfigure}}
\newcommand{\sidecaption}[1]% #1 = label name
{\rule{0pt}{\abovecaptionskip}% create gap between rows
\refstepcounter{subfigure}%
\raisebox{-\height}{(\thesubfigure)~}% align
\label{#1}\ignorespaces}