使用 cref (cleveref) 进行 subfig 时将字母大写

使用 cref (cleveref) 进行 subfig 时将字母大写

交叉引用子图时,是否可以让 cleveref 将字母大写?

目前,我的子图配置为将子图中的字母大写(即 ABCDE),但是当我使用该\cref命令时,它将生成图 1a。

以下是 MWE:

\documentclass[a4paper]{article}
\usepackage{subcaption}
\usepackage{caption}
\captionsetup{justification=centerlast,font=small,labelfont=sc,margin=50pt}
\usepackage[capitalise]{cleveref}

\begin{document}

\begin{figure}
\centering
\subcaptionbox{\label{subfig:Test1}}[0.49\textwdith]{\includegraphics[width=0.49\textwidth]{Fig.png}}
\subcaptionbox{}[0.49\textwdith]{\includegraphics[width=0.49\textwidth]{Fig2.png}}

I would like this cross reference to show a capital 'A' rather than a lower case: \cref{subfig:Test1}.

\end{document

答案1

问题在于您没有用大写字母标记子图,而是用小写字母标记,然后用小写字体将其打印在标题中。如果您希望为此标签使用小写字体,那么除了设置之外,您还labelfont应该通过以下方式重新定义子图标签的打印:

\renewcommand{\thesubfigure}{\scshape\alpha{subfigure}}

因此当您引用标签时,这种格式会在其他地方使用。

示例输出

\documentclass[a4paper]{article}

\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{caption}
\captionsetup{justification=centerlast,font=small,margin=50pt}
\renewcommand{\thesubfigure}{\scshape\alph{subfigure}}
\usepackage[capitalise]{cleveref}

\begin{document}

\begin{figure}
  \centering
  \subcaptionbox{\label{subfig:Test1}}[0.49\textwidth]{\includegraphics[width=0.49\textwidth]{example-image-a}}
  \subcaptionbox{}[0.49\textwidth]{\includegraphics[width=0.49\textwidth]{example-image-b}}
\end{figure}

I would like this cross reference to show a capital 'A' rather than a
lower case: \cref{subfig:Test1}.

\end{document}

另一方面,如果你真的想用大写字母标记,那么适当的重新定义是

\renewcommand{\thesubfigure}{\Alph{subfigure}}

无论标题字体如何。

第二个示例

相关内容