
Der \crefrange
Befehl aus dem cleveref
Paket wandelt gleichzeitige Querverweise auf die Objekte 1a, 1b und 1c in einen Bereich 1a–1c um und kann mit weiter angepasst werden, um \crefstripprefix
das gemeinsame Präfix (hier 1, was 1a–c ergibt) zu entfernen.
Ich verwende Subfloats-Referenzen im Format 1(a), 1(b), 1(c) und die Verwendung der obigen Funktion ergibt(1) a) bis c); beachten Sie, dass die öffnende Klammer vor dem „c“ entfernt wurde, da sie mit dem ersten Etikett gemeinsam ist.
Gibt es einen Workaround, umArtikel 1(a) bis(c)? Ich denke, das Beste wäre eine Modifikation von \crefstripprefix
, sodass öffnende Trennzeichen nicht entfernt werden; meine TeX-Kenntnisse reichen nicht aus, um es selbst zu schreiben. Nebenbei bemerkt: Würde irgendjemand einen Nachteil darin sehen, dies zum Standardverhalten zu machen?
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{floatrow}
\usepackage{subcaption}
% define subfigure label
\captionsetup[subfloat]{labelformat=simple}
\renewcommand\thesubfigure{(\alph{subfigure})}
\usepackage{cleveref}
\crefrangelabelformat{figure}{#3#1#4--#5\crefstripprefix{#1}{#2}#6}
\begin{document}
\begin{figure}
\ffigbox[\textwidth]{
\begin{subfloatrow}[3]
\ffigbox[\FBwidth]{\includegraphics[height=2cm,width=2cm]{}}{\caption{subcap}\label{sfig:a}}
\ffigbox[\FBwidth]{\includegraphics[height=2cm,width=2cm]{}}{\caption{subcap}\label{sfig:b}}
\ffigbox[\FBwidth]{\includegraphics[height=2cm,width=2cm]{}}{\caption{subcap}\label{sfig:c}}
\end{subfloatrow}
}{\caption{cap}\label{fig:1}}
\end{figure}
%
\begin{figure}[h]
\includegraphics[height=2cm,width=2cm]{}
\caption{cap}\label{fig:2}
\end{figure}
%
\begin{figure}[h]
\includegraphics[height=2cm,width=2cm]{}
\caption{cap}\label{fig:3}
\end{figure}
\crefrange{fig:1}{fig:3}
\crefrange{sfig:a}{sfig:c}
\end{document}
Antwort1
Nach einigem Herumspielen scheint es, dass zumindest mit dem floatrow
/ subcaption
-Mechanismus meines MWE die Beschriftungen für Unterfiguren tatsächlich vom Typ sindUnterfigur. Dies legt nahe, das Etikettenformat fürFigurUndUnterfigur. Aber nur das Hinzufügen
\crefrangelabelformat{subfigure}{%
#3#1#4--#5(\crefstripprefix{#1}{#2}#6
} % note the additional opening parenthesis after #5
reicht nicht aus: die Etiketten meinerUnterfigurReferenzen verhalten sich immer noch wie die Labels derFigurReferenzen. Aus irgendeinem Grund auch hinzufügen
\crefname{subfigure}{figure}{figures}
verleiht den Unterfiguren endlich ein eigenes Beschriftungsformat (offizielliert dies irgendwie dieUnterfigurReferenztyp? Keine Ahnung was passiert).
Damit erreiche ich zwar mein Ziel, aber ich habe dennoch das Gefühl, dass ein Patch \crefstripprefix
, der die öffnenden Trennzeichen nicht entfernt, eine zufriedenstellendere Lösung wäre.