格罗夫定理

格罗夫定理

有没有办法groff -ms自动对环境进行编号?作为一个例子,这里有两个定理,我想编号为 1.1 和 2.1。

.TL
Lorem ipsum
.NH
Introduction
\# First thm
.PP
.B Theorem .
Consectetur sed sunt nulla aute dolor elit ut quis.
.EQ
e sup {i pi} + 1 = 0
.EN
\# End of the first thm
.NH
Main result
.PP
.B Theorem .
Magna dolore.
.EQ
e sup {i tau} = 1
.EN

答案1

假设您已经考虑.NH 2为您提供第二级编号标题,但这不是您想要的,您可以使用自己的编号寄存器,如手册页.IP缩进段落示例中所示。

在开头添加数字寄存器的定义和初始化(从 0 开始,递增 1)

.nr mytheorem 0 1

然后无论你在哪里使用它

\n+[mytheorem]

它将增加并替换为当前值。例如使用

.PP 
\*[SN]\n+[mytheorem]
.B Theorem .

其中SN是节号(来自.NH)。您可以通过再次给出定义来重置寄存器.nr。您可以在开始时将上述内容放入宏中:

.de myTHEOREM
.PP
\\*[SN]\\n+[mytheorem]
.B Theorem .
..

并每次调用它:

.myTHEOREM
Magna dolore.
.EQ
e sup {i tau} = 1
.EN

相关内容