如何获得“页码.公式编号”形式的公式编号?有没有办法设置公式命令自动以这种方式编号?
答案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
(即通过.ref
opmac 中的文件、.aux
LaTeX 中的文件等)。
编辑:我重新定义了\eqmark
以便在每个新页面上将方程式编号重置为 1。