如何为方程标签和引用设置不同的样式?

如何为方程标签和引用设置不同的样式?

可能重复:
使用 amsmath 更改方程编号的外观

我需要能够使方程式的标签变粗,但同时我需要在其余文本中对这些方程式的引用具有正常样式。

以下是我尝试过的:

\let\theoldequation\theequation 
\renewcommand*{\theequation}{\textbf{\theoldequation}} % bold equation numbers

还有这个(使用etoolbox包)

\pretocmd{\theequation}{\textbf}{}{}

输出:

在此处输入图片描述

为了解决这个问题,我在 Google 上搜索了很多次,最终只能得出以下尝试:

\renewcommand{\eqref}[1]{\textnormal{(\ref{#1})}}

\let\oldeqref\eqref
\renewcommand*{\eqref}{\textnormal{\oldeqref}} % bold equation numbers

\pretocmd{\eqref}{\textnormal}{}{}

最后一个:

\patchcmd{\eqref}{\textbf}{\textnormal}{}{}

但没有一个能满足我的要求。你能解决这个问题吗?

答案1

如果您使用amsmath\eqref,则需要重新定义\tagform@\eqref并将标签和括号都以粗体显示:

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\def\tagform@#1{\maketag@@@{\bfseries(\ignorespaces#1\unskip\@@italiccorr)}}
\renewcommand{\eqref}[1]{\textup{{\normalfont(\ref{#1}}\normalfont)}}
\makeatother

\begin{document}

\begin{equation}\label{eq:test}
a + b = c.
\end{equation}

See equation~\eqref{eq:test}

\end{document}

在此处输入图片描述

如果只需要将标签加粗,则可以说:

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\def\tagform@#1{\maketag@@@{(\ignorespaces\textbf{#1}\unskip\@@italiccorr)}}
\renewcommand{\eqref}[1]{\textup{{\normalfont(\ref{#1}}\normalfont)}}
\makeatother

\begin{document}

\begin{equation}\label{eq:test}
a + b = c.
\end{equation}

See equation~\eqref{eq:test}

\end{document}

在此处输入图片描述

答案2

重新定义\@eqnnum。(编辑:正如 Torbjørn T. 指出的那样,如果像 OP 那样使用 ,则此方法无效amsmath。)

\documentclass{article}

\makeatletter
\def\@eqnnum{{\normalfont\normalcolor\bfseries(\theequation)}}
\makeatother

\begin{document}

\begin{equation}\label{eq:test}
a^2 + b^2 = c^2
\end{equation}

See equation~\ref{eq:test}.

\end{document}

在此处输入图片描述

相关内容