命令eqref
fromamsmath
不会从当前字体继承字体粗细。具体来说,该命令\textbf
对其没有影响。以下是 MWE:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
1=1
\label{my_eqn}
\end{equation}
\noindent
Here is \verb|\textbf{(\ref{my_eqn})}|:\\
\textbf{(\ref{my_eqn})}
\\ (Boldfaced, as expected.)\\
And here is \verb|\textbf{\eqref{my_eqn}}|:\\
\textbf{\eqref{my_eqn}}
\\ (Not boldfaced!)
\section{Inside a section title: (\ref{my_eqn}) and \eqref{my_eqn}}
So, inside the section title as well, \verb|\ref| is boldfaced but \verb|\eqref| is not.
\end{document}
输出:
有没有办法\eqref
利用当前文本字体的字体粗细?
答案1
的定义\eqref
是,总共
\newcommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}}
\textup
和内部的主要功能\tagform@
是强制文档方程式样式覆盖当前字体,因此要获得您想要的最简单的方法就是将其重新定义为
\renewcommand{\eqref}[1]{(\ref{#1})}
或者
\renewcommand{\eqref}[1]{\textup{(\ref{#1})}}
如果您想继承字体粗细但不继承斜体或其他字体形状。
答案2
我建议您加载该包并使用其宏来代替,而不是修改其定义\eqref
、摆弄amsmath
内部\tagform@
宏或使用包的机制来创建全新的标签形式。mathtools
cleveref
\labelcref
\eqref
\documentclass{article}
\usepackage{amsmath,cleveref}
\setlength\parindent{0pt} % just for this example
\begin{document}
\begin{equation}\label{my_eqn} 1+1=2 \end{equation}
\verb|(\ref{my_eqn})|: (\ref{my_eqn}) --- Normal font weight, as expected.
\verb|\labelcref{my_eqn}|: \labelcref{my_eqn} --- Also normal font weight.
\medskip
\verb|\textbf{(\ref{my_eqn})}|: \textbf{(\ref{my_eqn})} --- Boldfaced.
\verb|\textbf{\labelcref{my_eqn}}|: \textbf{\labelcref{my_eqn}} --- Also boldfaced.
\section{Cross-refs inside a section title: (\ref{my_eqn}) and \labelcref{my_eqn}}
\end{document}