图片标题中添加了简短说明

图片标题中添加了简短说明

我有带长标题的大图。我的标题已格式化(使用 captions 包),看起来不错,但我想对其进行更多自定义,以便将我的简短描述添加为蓝色和粗体。

目前,图表标题的简短说明已添加两次。这似乎是多余的,而且容易出错。简短说明也用于图表列表中,我想确保列表和图表本身中的简短说明完全相同。

梅威瑟:

\documentclass{book}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{xcolor}
\captionsetup[figure]{font={small, singlespacing, sf},labelfont={color=blue, bf, sf}, indention=.5cm, labelsep=quad}

\begin{document}
\listoffigures
\begin{figure}
\includegraphics[width=0.8\textwidth]{black.png}
\centering
\caption[Short description]{\textbf{\color{blue}Short description} Very long description spanning several lines.}
\label{label}
\end{figure}
\end{document}

答案1

您可以\caption按以下方式重新定义。注意:在当前状态下,这对 不起作用\caption*

\documentclass{book}
\usepackage{caption}
\usepackage{graphicx}
\usepackage{xcolor}
\captionsetup[figure]{font={small, singlespacing, sf},labelfont={color=blue, bf, sf}, indention=.5cm, labelsep=quad}

\begin{document}

\makeatletter
    \let\oldcaption\caption
    \def\caption{\@ifnextchar[{\caption@with}{\caption@without}}
    \def\caption@with[#1]#2{\oldcaption[#1]{\textcolor{blue}{\bfseries#1} #2}}
    \def\caption@without#1{\oldcaption{#1}}
\makeatother

\listoffigures
\begin{figure}
    \includegraphics[width=0.8\textwidth]{example-image-duck}
    \centering
    \caption[Short description]{Very long description spanning several lines.}
    \label{label}
\end{figure}
\end{document}

结果

如果你直接把这个定义放到你的序言中,这将不起作用(我不知道为什么)。但是有一个变通办法,就是利用\AtBeginDocument。像这样,你可以把下面的内容放到你的序言中,它会在 之后直接执行\begin{document}

\makeatletter
\AtBeginDocument{
    \let\oldcaption\caption
    \def\caption{\@ifnextchar[{\caption@with}{\caption@without}}
    \def\caption@with[#1]#2{\oldcaption[#1]{\textcolor{blue}{\bfseries#1} #2}}
    \def\caption@without#1{\oldcaption{#1}}
}
\makeatother

相关内容