amsmath超过equation

amsmath超过equation

如何创建新的方程计数器。新方程是矩阵并使用其他序列号。

\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

这可以使用newenvironmentamsmath帮助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@eqnumwith\theequation但是\incr@eqnumwith 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}

输出

在此处输入图片描述

相关内容