粗体图号但未引用

粗体图号但未引用

我喜欢在标题中使用粗体数字:

\newcommand*\oldthefigure{}
\let\oldthefigure=\thefigure
\renewcommand*\thefigure{\textbf{\oldthefigure}}

问题是,当我\ref在文本中使用时,数字会变成粗体,这不是我想要的。我该如何解决这个问题,而不使用任何额外的包(因为我被迫这样做)?

答案1

article定义

\def\fnum@figure{\figurename\nobreakspace\thefigure}

所以你要

\def\fnum@figure{\figurename\nobreakspace\textbf{\thefigure}}

(在本地包中,或在之间\makeatletter\makeatother

答案2

*有人因为类似的问题而找到了这个问题,并且已经在使用caption包他们可以为此定义一个标签格式:

\documentclass{article}
\usepackage{caption}
% define label format with a bold number:
\DeclareCaptionLabelFormat{boldnumber}{\bothIfFirst{#1}{~}\textbf{#2}}
% use the new label format (only) for figures (without the
% optional argument /all/ floats will use the new format):
\captionsetup[figure]{labelformat=boldnumber}
\begin{document}
\begin{figure}
  \centering
  foo
  \caption{foo}\label{fig:foo}
\end{figure}
figure~\ref{fig:foo}
\end{document}

在此处输入图片描述

*我没有注意到“不使用任何附加包”的要求。

答案3

如果您使用任何标准类文件(article/book/report),那么您需要在之前添加以下代码\begin{document}

\makeatletter
\long\def\@makecaption#1#2{\begingroup%
  \def\thefigure{\textbf{\arabic{figure}}}%
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1: #2}%
  \ifdim \wd\@tempboxa >\hsize
    #1: #2\par
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip\endgroup}
\makeatother

在职的:在设置标题的宏\thefigure中重新定义了定义,该标题保存在一个组内。\@makecaption

相关内容