我的文档中需要两种样式:一种适用于大多数公式,使用默认的公式编号样式;另一种适用于剩下的公式,其数量不会大于 10,使用新的样式(如下所示)。
功能 1
这里Function
应该是直立的(不是斜体)。
至于引用样式(使用\ref{}
命令时),这两种样式都是一样的,就像默认的一样。例如,如果我们有两个方程式,并且它们都编号为 1((1)
和Function 1
),则应像1
在文档文本中一样引用它们。
我尝试了软件包提供的方法\newtagform
,并获得了正确的方程式编号输出。但是,有两个缺点:\usetagform
mathtools
- 参考数字不太好用;
- 我需要为那些具有特殊数字风格的方程式证明数字,这很无聊。
我的代码在这里:
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\newtagform{fnc}{Function~}{}
\begin{document}
\begin{equation}\label{eqn:ori1}
E=mc^2
\end{equation}
\begin{equation}\label{eqn:tag1}
\setcounter{equation}{1}
\usetagform{fnc}
E=mc^2
\end{equation}
\begin{equation}\label{eqn:ori2}
E=mc^2
\end{equation}
\begin{equation}\label{eqn:tag2}
\setcounter{equation}{2}
\usetagform{fnc}
E=mc^2
\end{equation}
Ref test
\ref{eqn:ori1}, \ref{eqn:ori2}, \ref{eqn:tag1}, \ref{eqn:tag2}.
\end{document}
其输出如下:
我需要这两个系列的样式同时工作良好(编号部分和引用部分)。这里有人有线索或提示吗?:)
答案1
我建议定义一个有自己的计数器的新方程环境:
\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\newtagform{fnc}{Function~}{}
\makeatletter
\@definecounter{Fequation}
\def\theFequation{\arabic{Fequation}}
\def\incr@Feqnum{\refstepcounter{Fequation}\let\incr@Feqnum\@empty}
\newenvironment{Fequation}{%
\incr@Feqnum
\mathdisplay@push
\st@rredfalse \global\@eqnswtrue
\mathdisplay{equation}%
\def\theequation{\theFequation}%
\usetagform{fnc}%
}{%
\endmathdisplay{equation}%
\mathdisplay@pop
\ignorespacesafterend
}
\makeatother
\begin{document}
\begin{equation}\label{eqn:ori1}
E=mc^2
\end{equation}
\begin{Fequation}\label{eqn:tag1}
E=mc^2
\end{Fequation}
\begin{equation}\label{eqn:ori2}
E=mc^2
\end{equation}
\begin{Fequation}\label{eqn:tag2}
E=mc^2
\end{Fequation}
Ref test
\ref{eqn:ori1}, \ref{eqn:ori2}, \ref{eqn:tag1}, \ref{eqn:tag2}.
\end{document}
编辑
我是 OP。
由于我不想使用括号Function #
,因此对这个答案进行了轻微的修改。