子标题:标签后没有空格(DeclareCaptionFont 破坏了 labelsep)

子标题:标签后没有空格(DeclareCaptionFont 破坏了 labelsep)

在以下示例中,我用来\DeclareCaptionFont更改标题标签的颜色:

\documentclass[11pt]{article}
\usepackage{xcolor}
\usepackage{caption}
\usepackage{subcaption}
\DeclareCaptionFont{gray}{\color{gray}}
\captionsetup[subfigure]{labelsep=space, labelfont={sf,gray}}

\begin{document}

\begin{figure}
    \begin{subfigure}{.5\textwidth}
        \caption{first subcaption}
    \end{subfigure}
    \begin{subfigure}{.5\textwidth}
        \caption{second subcaption}
    \end{subfigure}
\end{figure}

\end{document}

结果:

在此处输入图片描述

标题标签后没有空格。我该如何修复?

答案1

我猜是因为 captionfont 的代码,它会截掉下一个空格。但是你可以定义一个带有禁止空格的分隔符,它不会被截掉:

\documentclass[11pt]{article}
\usepackage{xcolor}
\usepackage{caption}
\usepackage{subcaption}
\DeclareCaptionLabelSeparator{protectedspace}{~}%put in what you like
\DeclareCaptionFont{gray}{\color{gray}}

\captionsetup[subfigure]{labelsep=protectedspace,labelfont={sf,gray}}



\begin{document}

\begin{figure}
    \begin{subfigure}{.5\textwidth}
        \caption{first subcaption}
    \end{subfigure}
    \begin{subfigure}{.5\textwidth}
        \caption{second subcaption}
    \end{subfigure}
\end{figure}

\end{document}

答案2

如有疑问,请定义整个格式以包含您想要的更改:

在此处输入图片描述

\documentclass{article}

\usepackage{xcolor}
\usepackage{subcaption}
\DeclareCaptionLabelFormat{graysf}{\textcolor{gray}{\sffamily (#2)}}
\captionsetup[subfigure]{labelsep=space,labelformat=graysf}

\begin{document}

\begin{figure}
  \begin{subfigure}{.5\textwidth}
    \caption{first subcaption}
  \end{subfigure}
  \begin{subfigure}{.5\textwidth}
    \caption{second subcaption}
  \end{subfigure}
\end{figure}

\end{document}

来自caption 文档

在使用时#1被名称替换(例如“figure”),并被#2参考编号替换(例如“12”)。

因此,我仅#2在标题标签格式的定义中使用它们graysf

相关内容