![两个计数器的欧几里得除法](https://linux22.com/image/466224/%E4%B8%A4%E4%B8%AA%E8%AE%A1%E6%95%B0%E5%99%A8%E7%9A%84%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E9%99%A4%E6%B3%95%20.png)
我想打印4
乳胶计数器的欧几里得除法的余数。我该怎么做?
答案1
我认为你实际上正在寻找计算A模式b。解决这个问题的方法可能有很多种。使用 Expl3 语法,您可以执行以下操作:
\documentclass{article}
\ExplSyntaxOn
\NewDocumentCommand{\remainderofdiv}{ m m }{
\int_mod:nn { #1 } { #2 }
}
\ExplSyntaxOff
\begin{document}
\remainderofdiv{5}{2}
\remainderofdiv{12}{2}
\remainderofdiv{12}{5}
\end{document}
因此,假设你有一个包含X现在你想输出X模式 4:
\documentclass{article}
\newcounter{mycounter}
\ExplSyntaxOn
\NewDocumentCommand{\mycountermodfour}{ }{
\int_mod:nn { \value{mycounter} } { 4 }
}
\ExplSyntaxOff
\begin{document}
\setcounter{mycounter}{7}
\mycountermodfour
\end{document}
答案2
在 OpTeX 中,您可以使用\expr
宏:
\def\remainderofdiv#1#2{\expr[0]{#1\%#2}}
\remainderofdiv{12}{5}
\bye
或者,您可以\directlua
直接使用:
\def\remainderofdiv#1#2{\directlua{tex.print(#1\%#2)}}
如果您想实现,\mycountermodfour
那么您可以使用之前定义的宏:
\newcount\mycounter
\def\mycountermodfour{\remainderofdiv{\the\mycounter}{4}}
\mycounter=7
\mycountermodfour
\bye