我正在写一篇包含 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}