如何创建新的方程计数器。新方程是矩阵并使用其他序列号。
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{equation}
y = x
\end{equation}
\begin{equation}
y = \frac{1}{x}
\end{equation}
The of next matriz equation is 1.
\begin{matriz}
y = \sqrt x
\end{matriz}
\end{document}
我需要,方程 1 方程 2 矩阵 1 矩阵 2 方程 3 矩阵 3 矩阵 4
matriz 的新计数器。
答案1
这可以使用newenvironment
和amsmath
帮助tagging
我已经matriz
根据环境定义了环境equation
,并且tagged
用一个新的计数器;您可以照常\label
使用。\eqref
\documentclass{article}
\usepackage{amsmath}
\newcounter{matriz}
\newenvironment{matriz}{\refstepcounter{matriz}\equation}{\tag{M\thematriz}\endequation}
\begin{document}
\begin{equation}
y = x
\end{equation}
\begin{equation}
y = \frac{1}{x}
\end{equation}
The of next matriz equation is 1. \eqref{test}
\begin{matriz}\label{test}
y = \sqrt x
\end{matriz}
\end{document}
答案2
amsmath
超过equation
我会采取一种更广泛的方法……
以下代码使用环境m
及其强制参数将任何amsmath
环境(引入显示的数学模式)与matrix
计数器结合使用。
这etoolbox
有助于重新定义宏\print@eqnum
和\incr@eqnum
。代码的注释部分给出了另一种方法。
没有cmhughes 的解决方案实际equation
环境仍然使用\print@eqnum
with\theequation
但是\incr@eqnum
with matrix
。
代码
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{etoolbox}
\newcounter{matrix}
\renewcommand*{\thematrix}{M\arabic{matrix}}
\makeatletter
\def\@equationname{equation}
\newenvironment{m}[1]{%
\def\mymathenvironmenttouse{#1}%
\ifx\mymathenvironmenttouse\@equationname%
\refstepcounter{matrix}%
\else
\patchcmd{\@arrayparboxrestore}{equation}{matrix}{}{}% doesn't change output?
\patchcmd{\print@eqnum}{equation}{matrix}{}{}%
\patchcmd{\incr@eqnum}{equation}{matrix}{}{}%
% \def\print@eqnum{\tagform@\thematrix}% instead of etoolbox' \pathcmd
% \def\incr@eqnum{\refstepcounter{matrix}\let\incr@eqnum\@empty}% instead of etoolbox' \pathcmd
\fi
\csname\mymathenvironmenttouse\endcsname%
}{%
\ifx\mymathenvironmenttouse\@equationname%
\tag{\thematrix}%
\fi
\csname end\mymathenvironmenttouse\endcsname%
}
\makeatother
\begin{document}
\begin{equation}
y = x
\end{equation}
\begin{equation}
y = \frac{1}{x}
\end{equation}
The of next matriz equation is \ref{eq:M1}.
\begin{m}{equation}
y = \sqrt x \label{eq:M1}
\end{m}
\begin{equation}
y = \frac{1}{x}
\end{equation}
\begin{m}{align}
y & = \sqrt x \\
z & = y^2
\end{m}
\begin{m}{alignat}{3}
y & = \sqrt x & \quad\text{col2l} & = \text{col2r} & \quad\text{col3l} & = \text{col3r} \\
z & = y^2 & & & &
\end{m}
\begin{m}{equation}
y = \sqrt x
\end{m}
\end{document}
输出
无amsmath
溶液(没有eqnarray
)
代码
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\newcounter{matrix}
\renewcommand*{\thematrix}{M\arabic{matrix}}
\makeatletter
\newenvironment{matriz}{%
\def\@eqnnum{{\normalfont \normalcolor (\thematrix)}}%
\def\equation{$$\refstepcounter{matrix}}%
\equation%
}{%
\endequation%
}
\makeatother
\begin{document}
\begin{equation}
y = x
\end{equation}
\begin{equation}
y = \frac{1}{x}
\end{equation}
The of next matriz equation is \ref{eq:m1}.
\begin{matriz}\label{eq:m1}
y = \sqrt x
\end{matriz}
\begin{equation}
y = x
\end{equation}
\begin{matriz}
y = \sqrt x
\end{matriz}
\end{document}