我想自动为 ConTeXt 中的枚举生成枚举标签。但是,我尝试了以下方法但失败了:
\definecounter[lol]
\incrementcounter[lol]\decrementcounter[lol]
\starttext
\incrementcounter[lol]
\placeformula[thm{\getnumber[lol]}]
\startformula
x^2+y^2=z^2
\stopformula
\placeformula[notatheorem]
\startformula
e^{i\pi}+1=0
\stopformula
\incrementcounter[lol]
\placeformula[thm{\getnumber[lol]}]
\startformula
\varphi = \frac{\sqrt{5}+1}{2}
\stopformula
I want to reference \in[thm1], \in[thm2] and \in[notatheorem]. Is that possible?
\stoptext
有什么办法吗?
答案1
虽然您可以按照与命令引用一致的方式引用计数器,但是\rawcountervalue
有一种更简单的计数器机制可以在您的情况下毫无问题地运行。
我修改了您的示例以使用\newcounter
可以毫无问题地将值作为其他命令的参数访问的机制。该机制使用三个主要命令:
\newcounter\...
- 创建一个具有起始值的新计数器
0
。 - 重置计数器的值,因为没有专门的重置命令。
- 创建一个具有起始值的新计数器
\increment\...
- 将计数器的值增加
1
。 - 当您使用括号作为命令的参数时,您会将计数器增加指定的量,例如
\increment(\...,3)
将计数器增加3
。
- 将计数器的值增加
\decrement\...
- 将计数器值减少
1
- 当您使用括号作为命令的参数时,您会将计数器减少指定的量,例如
\decrement(\...,2)
将计数器减少2
。
- 将计数器值减少
\newcounter\LolCounter
%\increment\LolCounter
%\decrement\LolCounter
\starttext
\increment\LolCounter
\startplaceformula[reference={thm\LolCounter}]
\startformula
x^2+y^2=z^2
\stopformula
\stopplaceformula
\startplaceformula[reference={notatheorem}]
\startformula
e^{i\pi}+1=0
\stopformula
\stopplaceformula
\increment\LolCounter
\startplaceformula[reference={thm\LolCounter}]
\startformula
\varphi = \frac{\sqrt{5}+1}{2}
\stopformula
\stopplaceformula
I want to reference \in[thm1], \in[thm2] and \in[notatheorem]. Is that possible?
\stoptext