![我的方程式环境的新标签](https://linux22.com/image/453043/%E6%88%91%E7%9A%84%E6%96%B9%E7%A8%8B%E5%BC%8F%E7%8E%AF%E5%A2%83%E7%9A%84%E6%96%B0%E6%A0%87%E7%AD%BE.png)
我想为我的方程环境创建一个新标签
\NewEnviron{MyEq}{\begin{equation}\BODY\end{equation}}
使用以下标签:$\mathbb D$.number-of-my-equation。例如
\begin{MyEq}
A+B=C\tag{\mathbb{D}.1}
\end{MyEq}
可以吗?非常感谢。
第一次编辑:我想要这样的东西
\documentclass{article}
\usepackage{mathtools,amssymb}
\newtagform{D}{$\mathbb{D}$.}{}
\newcounter{mycount}
\newcommand{\myeq}[2]{%
\setcounter{mycount}{\value{equation}} % save current eq. nnumber
\setcounter{equation}{#1}
\addtocounter{equation}{-1}
\usetagform{D} % switch to special tag form
\begin{equation} #2 \end{equation}
\setcounter{equation}{\value{mycount}} % restore eq. nnumber
\usetagform{default}% % restore default tag form
}
\begin{document}
\begin{equation}0+0=0\end{equation}
\myeq{1}{1+1=2}
\begin{equation}2+2=4\end{equation}
\myeq{2}{1+2=3}
\end{document}
但采用以下形式或等效形式:
%Preamble...
\begin{equation}0+0=0\end{equation}
\begin{myeq}0+0=0\end{myeq}
\begin{equation}2+2=4\end{equation}
\begin{myeq}1+2=3\end{myeq}
答案1
\NewEnviron
除非您需要执行某些操作,否则不要使用\BODY
(现在,有b
参数类型\NewDocumentEnvironment
)。
只需设置您需要的内容并\tag
在关闭环境之前发出适当的命令。
\documentclass{article}
\usepackage{amsmath,amssymb}
\newcounter{Dequation}
\newenvironment{Dequation}
{\stepcounter{Dequation}\begin{equation}}
{\tag*{$\mathbb{D}$.\theDequation}\end{equation}\ignorespacesafterend}
\begin{document}
Some text and a standard equation
\begin{equation}\label{a}
1=1
\end{equation}
Some text and a D equation
\begin{Dequation}\label{b}
2=2
\end{Dequation}
Some text and a standard equation
\begin{equation}\label{c}
1=1
\end{equation}
Some text and a D equation
\begin{Dequation}\label{d}
2=2
\end{Dequation}
Some final text; \ref{a}, \eqref{a};
\ref{b}, \eqref{b};
\ref{c}, \eqref{c};
\ref{d}, \eqref{d}.
\end{document}
答案2
评论:在 OP 留下评论说“D”方程应该从 开始连续编号后,我重写了答案(\mathbb{D}.1)
。
\tag
这是一个使用软件包提供的宏的解决方案。可以使用标准LaTeX机制amsmath
交叉引用“D”方程。但请注意,该指令必须放在 的参数中。\label
\ref
\label
\myeq
\documentclass{article}
\usepackage{amsmath} % for '\tag' macro
\usepackage{amssymb} % for '\mathbb' macro
\newcounter{mycount} % counter for 'D'-type equations
\newcommand{\myeq}[1]{%
\[
\stepcounter{mycount}
#1
\tag{$\mathbb{D}$.\arabic{mycount}}
\]
}
\begin{document}
\begin{equation}0+0=0\end{equation}
\myeq{1+1=2\label{eq:D1}}
\begin{equation}2+2=4\end{equation}
\myeq{3+3=6\label{eq:D2}}
A cross-reference to equation \eqref{eq:D1}.
\end{document}