![如何让两个现有的计数器真正同步?](https://linux22.com/image/450845/%E5%A6%82%E4%BD%95%E8%AE%A9%E4%B8%A4%E4%B8%AA%E7%8E%B0%E6%9C%89%E7%9A%84%E8%AE%A1%E6%95%B0%E5%99%A8%E7%9C%9F%E6%AD%A3%E5%90%8C%E6%AD%A5%EF%BC%9F.png)
在我的文档中,有一个对象应该与 共享相同的计数器(值)section
,也就是说,当计数器section
发生变化时,它应该相应地变化,反之亦然。我通过将\c@...
和设置\the...
为与 相同来实现这一点section
。
但是,使用此方法,当我的自定义计数器改变其值时(的值也会相应改变),在(例如)section
内编号的子计数器不会被重置。section
subsection
例如,在下面的 MWE 中,我希望第二小节被编号1.1
而不是1.2
(\stepcounter{testcounter}
已经改变了计数器的值section
,但是,与不同\stepcounter{section}
,子计数器subsection
在这里不会被重置)。
如何实现这一目标?
\documentclass{article}
\begin{document}
\newcounter{testcounter}
\makeatletter
\ExplSyntaxOn
\cs_new:Nn \mymodule_counter_alias:nn
{
\cs_set_eq:cc { c@ #1 } { c@ #2 }
\cs_set_eq:cc { the #1 } { the #2 }
}
\mymodule_counter_alias:nn { testcounter } { section }
\ExplSyntaxOff
\makeatother
\subsection{Test}
\stepcounter{testcounter} % 1.2
% \stepcounter{section} % 1.1
\subsection{Test}
\end{document}