
Ich versuche, das subcaption
Paket zu verwenden (nicht subfig
), um die Beschriftungen der Unterabbildungen neben der Abbildung zu generieren.
Ich habe viele ähnliche Fragen gefunden, aber alle Antworten (wieDieses hier) verwenden Sie subfig
und floatrow
. Ich habe versucht, floatrow
mit zu verwenden subcaption
(siehe MWI unten), aber ich konnte nicht dasselbe Verhalten erzeugen. Was übersehe ich?
Im subcaption
Handbuch heißt es ausdrücklich:
[f]ür eine erweiterte Nutzung der Untertitelfunktion des
caption
Pakets schauen Sie sich bitte dasfloatrow
Paket an
Das floatrow
Handbuch gibt aber nur ein Beispiel für eine Bildunterschrift neben der Abbildung an subfig
(S. 75).
Daher ist jede Hilfe sehr willkommen.
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}
Ausgabe von MWE:
Antwort1
Anstatt herauszufinden, wie es funktioniert floatrow
, war es einfacher, es einfach vorzutäuschen.
Es ist zu beachten, dass sich die [t]
Option subfigure
auf die erste Grundlinie bezieht, nicht auf die absolute Spitze. Sie richtet also die Unterseiten der Bilder aus und nicht die Bildunterschriften. Um die Oberseiten auszurichten, müssen Sie verwenden \raisebox
. Tatsächlich gibt es überhaupt keinen Grund, die Bilder in Unterabbildungen einzufügen (nur die Bildunterschriften).
Die \raisebox
Aufgabe der Überschrift bestand darin, automatisch einen Abstand zwischen den Zeilen zu erzeugen.
\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}
Es ist zu beachten, dass dies nur eine von vielen Möglichkeiten ist, eine Seitenüberschrift zu formatieren. Im Folgenden wird das Subcaption-Paket überhaupt nicht verwendet. Andererseits wird auch für das Paket kein Eintrag geschrieben \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}