当使用amsthm
命令包时\eqref
,事情可能不正确。当定理的主字体是斜体时,是非\eqref
斜体的,而 是\ref
斜体的。请查看提供的代码。这一切一致吗?
\documentclass[12pt,fleqn]{book}
\usepackage{amsmath,amsthm}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{equation}\label{eq:1}
\cos \pi=-1
\end{equation}
\begin{theorem} In Equation~(\ref{eq:1}) or in Equation~\eqref{eq:1}...
\end{theorem}
\end{document}
答案1
我认为手册第 3.2.2 段对此有很好的解释mathtools
,其中讨论了\refeq
引入的命令mathtools
。他们解释说\refeq
,就像 一样\eqref
,即使在斜体文本中间也使用直立字体,以“避免在标签字体的直立和斜体形状有很大不同的情况下可能导致混淆”。
他们举了一个例子,他们使用“Q&A”作为标签,而字体设置为 Palatino。显然,在 Palatino 中,斜体字符&
和直体字符看起来非常不同,因此斜体引用看起来与直体实际标签非常不同。
答案2
\usepackage{amsmath}
\makeatletter
%\newcommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}} % from amsmath.sty
%\def\maketag@@@#1{\hbox{\m@th\normalfont#1}} % from amsmath.sty
\renewcommand{\eqref}[1]{\tagform@{\ref{#1}}}
\def\maketag@@@#1{\hbox{#1}}
\makeatother
上述对 \eqref 和 \maketag@@@ 的修改将使带括号的参考编号改变字体。