更改单个图形的标签标题颜色

更改单个图形的标签标题颜色

是否可以在不改变其他图形的颜色标签的情况下更改单个图形中的标题颜色?

我已经使用过这个代码更改图形标题文本的颜色但每个图形都会改变颜色。我只想对一个图形执行此操作。

我的代码主要来自更改图形标题文本的颜色

\documentclass[12pt,twoside]{report}
\usepackage{xcolor}
\usepackage{caption}
\usepackage[labelfont={color=red}]{caption}

\begin{document}

\chapter{Test chapter}

\begin{figure}
\centering
A
\caption{Test figure A}
\end{figure}

\begin{figure}
\centering
B
\caption{Test figure B}
\end{figure}

\end{document}

答案1

在我看来,\captionsetup{labelfont={color=blue}}在当地环境中等就足够了:

在此处输入图片描述

\documentclass[12pt,twoside]{report}
\usepackage{xcolor}
\usepackage[labelfont={color=red}]{caption}

\begin{document}

\chapter{Test chapter}

\clearpage

\begin{figure}
\captionsetup{labelfont={color=blue}}
A
\caption{Test figure A}
\end{figure}

\begin{figure}
B
\caption{Test figure B}
\end{figure}

\end{document}

答案2

这是一个开始。对于标题本身,您可以按照注释建议的那样,在参数\textcolor中放置一个\caption。数字(如“1.2”)包含在中\thefigure,而描述词“Figure”则保留在中\figurename

kolygr 正确地指出我实际上不需要更新\thefigure,因为之前应用的颜色更改\figurename将持续进行。不过,我将保留原样的代码,以防有人想到将\figurename和更改\thefigure为两种不同的颜色。

\documentclass[12pt,twoside]{report}
\usepackage{xcolor}
\usepackage{caption}
\usepackage{caption}
\let\svthefigure\thefigure
\let\svfigurename\figurename
\newcommand\figcolor[1]{%
  \renewcommand\thefigure{\bfseries\sffamily\color{#1}\svthefigure}
  \renewcommand\figurename{\bfseries\sffamily\color{#1}\svfigurename}
}
\begin{document}

\chapter{Test chapter}

\begin{figure}
\centering
A
\caption{Test figure A}
\end{figure}
\begin{figure}
\figcolor{blue}
\centering
B
\caption{Test figure B}
\end{figure}
\begin{figure}
\centering
B
\caption{Test figure B}
\end{figure}

\end{document}

在此处输入图片描述

科雷格尔还指出上述代码将在\ref属性中保留颜色。可以通过将图形标记存储在单独的标记宏中并\protect对其进行修改来避免这种情况,这样扩展(带有颜色)就不会写入文件aux

\documentclass[12pt,twoside]{report}
\usepackage{xcolor}
\usepackage{caption}
\usepackage{caption}
\let\svthefigure\thefigure
\let\svfigurename\figurename
\renewcommand\thefigure{\protect\myfigmarkup\svthefigure}
\renewcommand\figurename{\protect\myfigmarkup\svfigurename}
\let\myfigmarkup\relax
\newcommand\figcolor[1]{%
  \def\myfigmarkup{\bfseries\sffamily\color{#1}}%
}
\begin{document}
In Figure~\ref{fg1.2}...

\chapter{Test chapter}

\begin{figure}
\centering
A
\caption{Test figure A}
\end{figure}
\begin{figure}
\figcolor{blue}
\centering
B
\caption{Test figure B}
\label{fg1.2}
\end{figure}
\begin{figure}
\centering
B
\caption{Test figure B}
\end{figure}

\end{document}

相关内容