子标题 + 巧妙的范围括号

子标题 + 巧妙的范围括号

我试图让子标题标签的形式为(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}

相关内容