我试图让子标题标签的形式为(a)
、(b)
等,引用的形式为fig. 1(a)
,范围的形式为figs. 1(a--c)
。我似乎无法满足最后一个要求。这是我的 MWE(改编了第二个答案在子图引用周围添加括号) 为我提供了以下形式的参考figs. 1(a)--c)
:
\documentclass{article}
\usepackage{subcaption,cleveref}
\renewcommand\thesubfigure{(\alph{subfigure})}
\captionsetup[subfigure]{labelformat=simple}
\crefrangeformat{figure}{figs.~#3#1#4--#5\crefstripprefix{#1}{#2}#6}
\begin{document}
\cref{1,2,3}
\begin{figure}
\subcaptionbox{\label{1}}[0.3\textwidth][c]{}
\subcaptionbox{\label{2}}[0.3\textwidth][c]{}
\subcaptionbox{\label{3}}[0.3\textwidth][c]{}
\end{figure}
\end{document}
答案1
您声明的格式化目标 -- figs. 1(a--c)
-- 在风格上并不明确。我认为您最好完全省略子标题数字(字母)周围的括号,无论是对单个子图的交叉引用还是对子图范围的交叉引用。当然,您完全可以自由地在子图的标题中使用括号。
\documentclass{article}
\usepackage{subcaption,cleveref}
\crefrangelabelformat{subfigure}{#3#1#4--#5\crefstripprefix{#1}{#2}#6}
\begin{document}
\cref{1}, \cref{1,2,3}
\begin{figure}
\subcaptionbox{\label{1}}[0.1\textwidth][c]{}\quad
\subcaptionbox{\label{2}}[0.1\textwidth][c]{}\quad
\subcaptionbox{\label{3}}[0.1\textwidth][c]{}
\label{Overall caption}
\end{figure}
\end{document}