通过临时更改数字格式来突出显示方程式

通过临时更改数字格式来突出显示方程式

我正在写一篇包含 100 多个方程的长篇论文,想重点介绍几个关键方程。由于期刊不允许我在方程周围使用方框,我试图以不同的方式排版它们的标签,例如将其排版为 (5*) 而不是 (5)。这应该只会影响特定的方程。我一直在尝试建立一个类似于子方程的新环境,但没有成功。

答案1

我终于得到了我想要的结果,方法是(暂时)重新定义公式数字周围的括号以包含星号。这也适用于其他环境,例如对齐

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newenvironment{highlightequation}{%
  \def\tagform@##1{\maketag@@@{(\ignorespaces##1\unskip\@@italiccorr*)}}%
  \ignorespaces
}{%
  \def\tagform@##1{\maketag@@@{(\ignorespaces##1\unskip\@@italiccorr)}}%
  \ignorespacesafterend
}
\makeatother    

\begin{document}
A highlighted equation:
\begin{highlightequation}
\begin{equation}
    t(s) = r'(s)
\end{equation}
\end{highlightequation}
A minor equation, needs no highlight:
\begin{equation}
    a(s) = b'(s)
\end{equation}
Highlighting also works amsmath environments, such as align:
\begin{highlightequation}
\begin{subequations}
\begin{align}
    t(s) & = r'(s) \\
    t(s) & = r'(s)
\end{align}
\end{highlightequation}
\end{subequations}
\end{document}

结果如下:

编译结果

答案2

您可以重新定义方程式编号打印机制,以“切换”的形式\theequation添加星号:*

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\newcommand{\eqspecialnum}{% Special equation numbering
  \renewcommand{\theequation}{\arabic{equation}*}}
\newcommand{\eqnormalnum}{% Regular equation numbering
  \renewcommand{\theequation}{\arabic{equation}}}
\begin{document}
Some text.
\begin{equation} f(x)=ax^2+bx+c \label{eqn:1}\end{equation}
Some more text. See \eqref{eqn:3}.
\begin{equation} f(x)=ax^2+bx+c \label{eqn:2}\end{equation}
And then some more text. \eqspecialnum % Switch to special numbering.
\begin{equation} f(x)=ax^2+bx+c \label{eqn:3}\end{equation}
And here is even more text.
\begin{equation} f(x)=ax^2+bx+c \label{eqn:4}\end{equation}
This piece of text is even longer. \eqnormalnum % Switch back to normal.
\begin{equation} f(x)=ax^2+bx+c \label{eqn:5}\end{equation}
The end.
\end{document}

此处\eqspecialnum切换编号方案,*在公式编号后附加星号,同时\eqnormalnum返回编号的默认行为。引用适应此重新定义,如给定示例中所示。

答案3

这是对现有答案的改进和结合的解决方案。

沃纳的回答可以轻松修改,使新的\theequation依赖于旧的,方法是使用其定义

\expandafter\def\expandafter\theequation\expandafter{\theequation*}

尽管可以*在另一次重新定义中剥离,\theequation但更容易的方法是仅使用存储的原始定义\let

我还添加了本地变体\stareq,并分别\nostareq添加或删除了它们*

另一种解决方案,更接近于OP 的回答是用来mathtools'\newtagform和 switch \usetagform(内部它基本上与 相同,\maketag@@@但提供了更好的界面)。这些 tagform 更改解决方案的缺点是必须重复()(可以根据不同的样式进行更改)。
\stareq体仍然可以工作,但\nostareq不幸的是不能。

代码

\documentclass{article}
\usepackage{mathtools}
\let\origTheequation\theequation                                       % Solution 1
\newtagform{starred}{(}{*)}                                            % Solution 2

\newcommand{\eqspecialnum}{% Switch to starred version
    \let\origTheequation\theequation                                   % Solution 1
    \expandafter\def\expandafter\theequation\expandafter{\theequation*}% Solution 1
%   \usetagform{starred}%                                                Solution 2
}
\newcommand{\eqnormalnum}{% Switch to normal version
    \let\theequation\origTheequation                                   % Solution 1
%   \usetagform{default}%                                                Solution 2
}
\newcommand*{\stareq}{\stepcounter{equation}\tag{\theequation*}}       % Solution 1 and 2
\newcommand*{\nostareq}{\stepcounter{equation}\tag{\origTheequation}}  % Solution 1 only
\begin{document}
\begin{equation} f(x)=ax^2+bx+c \end{equation}
See \eqref{eqn:3} and \eqref{eqn:4}.
\begin{equation} f(x)=ax^2+bx+c \end{equation}
Switch to special numbering: \eqspecialnum % Switch to special numbering.
\begin{align} 
    f(x) & =ax^2+bx+c \label{eqn:3} \\
    f(x) & =ax^2+bx+c \label{eqn:4}
\end{align}
\begin{equation} f(x)=ax^2+bx+c \end{equation}
Switch back to normal:       \eqnormalnum 
\begin{equation} f(x)=ax^2+bx+c \end{equation}
\begin{equation} f(x)=ax^2+bx+c \stareq \end{equation}
\begin{equation} f(x)=ax^2+bx+c \end{equation}

Switch to special numbering: \eqspecialnum % Switch to special numbering.
\begin{align} 
    f(x) & =ax^2+bx+c \\
    f(x) & =ax^2+bx+c \nostareq
\end{align}
\begin{equation} f(x)=ax^2+bx+c \end{equation}
Switch back to normal:       \eqnormalnum 
\end{document}

输出

在此处输入图片描述

相关内容