有没有办法让命题中的引用不被强调?
对于命题,我使用了标准的 AMS 包,因此所有内容都突出显示。因此,当我插入参考文献时,它还会显示一个强调的数字,即“(1)“。但我不希望它被强调。现在我当然可以在命题中使用 \emph{\ref{...}},这样两个强调命令就会相互抵消,引用就会显示为“(1)”,但我不想这么做,因为这是一个冗长的文档。
答案1
这很简单\usepackage{upref}
\documentclass{amsart}
\usepackage{upref}
\newtheorem{Theorem}{Theorem}
\begin{document}
\begin{Theorem}\label{T:One}
This is an important result.
\end{Theorem}
\begin{Theorem}
This result is not as important as~\ref{T:One}.
\end{Theorem}
Here is a normal \ref{T:One}.
\end{document}
答案2
我对你的问题有点困惑,因为\ref{}
会产生1
强调,但没有括号(1)
,而\eqref{}
产生(1)
没有强调。也就是说,它们都不会导致(1)
排版时强调……也许这是你正在使用的其他软件包的功能?(这就是为什么最好总是提供一个最小工作示例。
正如\eqref{}
您所希望的,我将展示一种不使用强调进行\ref{}
打印的方法1
。您说您正在使用 AMS 包,因此我将其用作amsart
documentclass。在这种情况下,定理最终由产生,\@begintheorem
因此我重新定义了它,以便它定义\ref
为在定理环境中删除(或更确切地说添加)强调。
以下是一些示例输出:
代码如下:
\documentclass{amsart}
\makeatletter% we need this to change the definition of \@begintheorem
\let\real@begintheorem=\@begintheorem% save real AMS theorem environment
\let\real@ref=\ref
\def\@begintheorem#1#2[#3]{%
\real@begintheorem{#1}{#2}[#3]% start the theorem
\def\ref##1{\emph{\real@ref{##1}}}% overwrite \ref INSIDE a theormem
}
\makeatother
\newtheorem{Theorem}{Theorem}
\begin{document}
\begin{Theorem}\label{T:One}
This is an important result.
\end{Theorem}
\begin{Theorem}
This result is not as important as~\ref{T:One}.
\end{Theorem}
Here is a normal \ref{T:One}.
\end{document}
当然,我们也可以\patchcmd
改用电子工具箱进行改变\@begintheorem
,但最终会做与上面相同的事情(首先加载大量命令之后)。