可能重复:
使用 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}