ConTeXt 参考标签内的宏

ConTeXt 参考标签内的宏

我想自动为 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

相关内容