每次我必须在文本中表示图形名称时,我必须输入:
{\textcolor{ocre}{\bf{\emph{Fig.\;\ref{figurename}(b)}}}}
有没有一种优化的方法可以在序言中指定这一点,这样我就不必在每次引用图形名称时都输入这一点?
我已经指定:
\usepackage{caption}
\usepackage[font={color=ocre,bf,it},figurename=Fig.,labelfont={it}]{caption}
在序言中处理标题名称和文本。
答案1
由于您正在手动编写子图标题和参考,我建议使用如下宏:
\newcommand{\figref}[2][]{% \figref[<sub-figref>]{<figref>}
\textcolor{ocre}{\bfseries\emph{\figurename\,\ref{#2}#1}}}
这允许您使用\figref{<figref>}
引用完整图形,或者\figref[(b)]{<figref>}
(比如说)引用子图形。
这是一个完整的最小示例:
\documentclass[dvipsnames]{article}
\usepackage{xcolor,graphicx}
\usepackage{caption}
\DeclareCaptionLabelFormat{mycaplabelformat}{#1\,#2}
\captionsetup[figure]{%
font={color=red!70!black,bf,it},
labelformat=mycaplabelformat}
\renewcommand{\figurename}{Fig.}
\newcommand{\figref}[2][]{% \figref[<sub-figref>]{<figref>}
\textcolor{red!70!black}{\bfseries\emph{\figurename\,\ref{#2}#1}}}
\newcommand{\subfigfont}{\small}
\begin{document}
\begin{figure}
\centering
\begin{tabular}{@{}c@{}}
\includegraphics[width=100pt]{example-image-a} \\
{\subfigfont (a) first}
\end{tabular} \qquad
\begin{tabular}{@{}c@{}}
\includegraphics[width=100pt]{example-image-b} \\
{\subfigfont (b) second}
\end{tabular}
\caption{Some caption}
\label{fig:label}
\end{figure}
\verb|\ref{fig:label}|: \ref{fig:label} \par
\verb|\figref{fig:label}|: \figref{fig:label} \par
\verb|\figref[(b)]{fig:label}|: \figref[(b)]{fig:label}
\end{document}
您可能需要对格式进行一些调整。但是,一致性是关键,将内容包装在宏中可以让您在需要时稍后进行更改。