LaTeX 局部改变方程编号

LaTeX 局部改变方程编号

我希望我的文档看起来像这样:

普通文档文本。

公式(1)

定义 定义文本。

方程(D1)

更多定义文本。

普通文档文本。

公式(2)

更多文档文本。

因此,编号在定义内部发生变化,在定义外部保持不变。

答案1

如果您只想进行临时更改,请使用包\tag加载的命令amsmath。以下是代码:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

Equation the first, normally numbered.
\begin{equation}
a=b+c
\end{equation}

A special equation.
\begin{equation}\tag{D1}
d=e+f
\end{equation}

A second, normally numbered equation.
\begin{equation}
g=h+i
\end{equation}

\end{document}

如果稍后使用\label来引用方程,\tag则不必使用与 相同的参数\label。结果如下:

在此处输入图片描述

答案2

您可以定义一个新的环境。

\newcounter{defcounter}
\setcounter{defcounter}{0}

.
.
.

\newenvironment{myequation}{%
\addtocounter{equation}{-1}
\refstepcounter{defcounter}
\renewcommand\theequation{D\thedefcounter}
\begin{equation}}
{\end{equation}}

并像使用它一样

\begin{myequation}\label{myeq:one}
  a = b
\end{myequation}

您可以在任何地方使用它,并且您会得到 D1、D2 等作为方程编号。

完整代码:

\documentclass{article}
\newcounter{defcounter}
\setcounter{defcounter}{0}

\usepackage{amsthm}
\newtheorem{defn}{Definition}

\newenvironment{myequation}{%
\addtocounter{equation}{-1}
\refstepcounter{defcounter}
\renewcommand\theequation{D\thedefcounter}
\begin{equation}}
{\end{equation}}
%
\begin{document}
  Bbla bla
   \begin{equation}
     x = y
   \end{equation}
\begin{defn}
   bla bla
   \begin{myequation}\label{myeq:one}
     a = b
   \end{myequation}
   \begin{myequation}
     a = b
   \end{myequation}
\end{defn}
bla bla
   \begin{equation}\label{eq:one}
     x = yz
   \end{equation}
   \begin{myequation}
     a = b
   \end{myequation}

From equation~\ref{myeq:one} and~\ref{eq:one}...
\end{document}

在此处输入图片描述

答案3

我不太确定是否有人愿意这样做,但通过以下实现,很容易恢复到唯一的编号方案。计数器在环境equation内部更改defn,因此无需更改编码样式。

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}

\usepackage{hyperref} % just to show it works also with it

\theoremstyle{definition}
\newtheorem{defninn}{Definition}

\newcounter{defcounter}

\makeatletter
\newenvironment{defn}
 {\global\chardef\dc@currentequation=\value{equation}%
  \let\c@equation\c@defcounter
  \renewcommand{\theequation}{D\arabic{equation}}%
  % comment the following line if you don't use hyperref
  \renewcommand{\theHequation}{D\arabic{equation}}%
  \defninn}
 {\enddefninn
  \setcounter{equation}{\dc@currentequation}}
\makeatother

\begin{document}

Bla bla
\begin{equation}
x = y
\end{equation}

\begin{defn}
bla bla
\begin{equation}\label{eq:one}
a = b
\end{equation}
\end{defn}

Bla bla
\begin{equation}
a = b \label{eq:two}
\end{equation}

\begin{defn}
bla bla
\begin{gather}
x = yz \label{eq:ga} \\
a = b \label{eq:gb}
\end{gather}
\end{defn}

Bla bla
\begin{equation}
1=1
\end{equation}

From equations \eqref{eq:one}~and~\eqref{eq:two} or
from equation~\eqref{eq:ga}, we deduce something.

\end{document}

在此处输入图片描述

相关内容