将方程式编号为“页码.方程式编号”

将方程式编号为“页码.方程式编号”

如何获得“页码.公式编号”形式的公式编号?有没有办法设置公式命令自动以这种方式编号?

答案1

如果您使用 LaTeX,那么该perpage包就是您所需要的。

\documentclass{article}
\usepackage{amsmath}
\usepackage{perpage}
\usepackage{kantlipsum} % just to provide some text

\MakePerPage{equation}
\renewcommand{\theequation}{\theperpage.\arabic{equation}}

\allowdisplaybreaks % for showing the effect
\begin{document}

\kant*[1]
\begin{equation}
A=B
\end{equation}
\kant*[2]
\begin{gather}
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B\\
A=B
\end{gather}
\kant*[3]
\begin{align}
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B\\
A&=B
\end{align}

\end{document}

在此处输入图片描述

如果你不想在每一页都重新设置公式编号,请将以下两行替换

\MakePerPage{equation}
\renewcommand{\theequation}{\theperpage.\arabic{equation}}

\AddAbsoluteCounter{equation}
\MakePerPage{absequation}
\renewcommand{\theequation}{\theperpage.\arabic{equation}}

在此处输入图片描述

答案2

如果你使用纯 TeX,那么你可以这样做:

\input opmac \openref

\newcount\flenum
\def\thednum{(\pgref[fle:\the\flenum].\the\dnum)}
\def\eqmark{\global\advance\flenum by1
  \edef\tmp{\pgref[fle:\the\flenum]}%
  \ifx\tmp\lastdpage \global\advance\dnum by1 \else \global\dnum=1 \fi
  \ifinner\else\eqno \fi
  \wlabel\thednum
  \label[fle:\the\flenum]\wlabel{}%
  \thednum \xdef\lastdpage{\pgref[fle:\the\flenum]}
}

\hsize=6cm \vsize=4cm
A test equation:
$$
c^2 = a^2 + b^2. \label[eq1]\eqmark
$$
This is equation~\ref[eq1]. Another test equation, Eq.~\ref[eq2],
is on the next page. But first, another equation:
$$
y=mx+b.  \eqmark
$$
A second test equation:
$$
e=mc^2.  \label[eq2]\eqmark
$$
\bye

如果您不使用纯 TeX,那么至少可以从这个宏中获得启发,您可以看到需要做什么:您需要声明全局计数器,该计数器\flenum对于整个文档中的每个带标签的方程式都是唯一的。这意味着它在每个标签处都会增加,并且标签构造为。必须在同一页面上创建(\pgref[fle:\the\flenum].\the\dnum)的目标(例如,在 opmac 中)。\pgref\label[fle:\the\flenum]\wlabel{}

问题是排版不是按页码同步的。如果您需要打印正确的页码,则必须通过异步方式执行此操作\write(即通过.refopmac 中的文件、.auxLaTeX 中的文件等)。

编辑:我重新定义了\eqmark以便在每个新页面上将方程式编号重置为 1。

相关内容