自动不强调命题内的引用

自动不强调命题内的引用

有没有办法让命题中的引用不被强调?

对于命题,我使用了标准的 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 包,因此我将其用作amsartdocumentclass。在这种情况下,定理最终由产生,\@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,但最终会做与上面相同的事情(首先加载大量命令之后)。

相关内容