我希望我的文档看起来像这样:
普通文档文本。
公式(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}