
Можно ли принудительно задать автоматический номер уравнения в equation*
среде amsmath? Что-то вроде
\begin{equation*} \dotag
x^2
\end{equation*}
где эффект заключается \dotag
в преобразовании equation*
в equation
?
я посмотрел наamsmath.sty
\renewenvironment{equation}{%
\incr@eqnum
\mathdisplay@push
\st@rredfalse \global\@eqnswtrue
\mathdisplay{equation}%
}{%
\endmathdisplay{equation}%
\mathdisplay@pop
\ignorespacesafterend
}
\newenvironment{equation*}{%
\mathdisplay@push
\st@rredtrue \global\@eqnswfalse
\mathdisplay{equation*}%
}{%
\endmathdisplay{equation*}%
\mathdisplay@pop
\ignorespacesafterend
}
и увидел, что разница между версией без звездочки и версией со звездочкой заключается в дополнительной команде \incr@eqnum
, но добавление этого кода в equation*
среду в моем документе не работает.
Предыстория: Предпочтительный способ включения отображаемой математики в разметку Pandoc — заключить их в пару $$
. Для вывода LaTeX они преобразуются в \[
и \]
, и поскольку amsmath
включен в шаблон по умолчанию, они действуют как equation*
среда. Существуют обходные пути, но этот способ имеет несколько преимуществ.
решение1
Как насчет этого? Я использую \incr@eqnum
, как вы предлагаете, но также добавляю номер уравнения через \tag
.
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand\dotag{\incr@eqnum\tag{\number\value{equation}}}
\makeatother
\begin{document}
\begin{equation*} \dotag
x^2
\end{equation*}
\begin{equation}
y^2
\end{equation}
\begin{equation*} \dotag
z^2
\end{equation*}
\end{document}
Или просто обновите определение окружающей equation*
среды.
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\renewenvironment{equation*}{%
\incr@eqnum
\mathdisplay@push
\st@rredfalse \global\@eqnswtrue
\mathdisplay{equation}%
}{%
\endmathdisplay{equation}%
\mathdisplay@pop
\ignorespacesafterend
}
\makeatother
\begin{document}
\begin{equation*}
x^2
\end{equation*}
\begin{equation}
y^2
\end{equation}
\begin{equation*}
z^2
\end{equation*}
\end{document}