我有带长标题的大图。我的标题已格式化(使用 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