倒数

倒数

以下生成一个以增加的阿拉伯数字计数的计数器。

\documentclass[12pt]{article}
\pagestyle{empty}
\begin{document}
  \newcounter{myCounter}
  \addtocounter{myCounter}{1}
  \themyCounter
  \addtocounter{myCounter}{1}
  \themyCounter
  \addtocounter{myCounter}{1}
  \themyCounter
\end{document}

在此处输入图片描述

正如评论中所述,LaTeX 可以使用以下方法向后计数\addtocounter{myCounter}{-1}

在此处输入图片描述

但这样做的缺点是你需要手动指定起始值 n。这似乎很麻烦,因为如果你想向列表中添加一些其他项目,那么你还必须记住更新 n。

有没有办法让自定义乳胶计数器倒数没有必须手动指定 n 的值吗?

答案1

myCounter以下示例以通常的方式从 0、1、2 开始增加计数器。计数器的最新值在最后一页发出后存储在zref标签中。然后,通过从最新值中减去实际值,重新定义计数器的外观以显示所需值:LastPage\themyCounter

\documentclass{article}
\pagestyle{empty}
\usepackage{zref-lastpage}
\newcounter{myCounter}

\makeatletter
\zref@newprop{myCounter}{\the\value{myCounter}}
\zref@addprop{LastPage}{myCounter}
\newcommand*{\myCounterLast}{%
  \zref@extractdefault{LastPage}{myCounter}{0}%
}
\renewcommand*{\themyCounter}{%
  \@arabic{\numexpr\myCounterLast+1-\value{myCounter}\relax}%
}
\makeatother

\begin{document}
\stepcounter{myCounter}
\themyCounter
\stepcounter{myCounter}
\themyCounter
\stepcounter{myCounter}
\themyCounter 
\end{document}

在第一次运行中,标签已写入但尚不知道,最新值被假定为零:

第一次运行

下次运行将显示正确结果:

第二次运行

答案2

您可以使用该totcount包来获取计数器的最终值并使用它来设置起始值。

示例输出

\documentclass[12pt]{article}

\usepackage{totcount}

\newtotcounter{myCounter}
\newcounter{myDcounter}

\begin{document}

\setcounter{myDcounter}{\totvalue{myCounter}}
\addtocounter{myDcounter}{1}

\addtocounter{myCounter}{1}
\addtocounter{myDcounter}{-1}
Up \themyCounter\ and down
\themyDcounter

\addtocounter{myCounter}{1}
\addtocounter{myDcounter}{-1}
Up \themyCounter\ and down
\themyDcounter

\addtocounter{myCounter}{1}
\addtocounter{myDcounter}{-1}
Up \themyCounter\ and down
\themyDcounter

\addtocounter{myCounter}{1}
\addtocounter{myDcounter}{-1}
Up \themyCounter\ and down
\themyDcounter

\addtocounter{myCounter}{1}
\addtocounter{myDcounter}{-1}
Up \themyCounter\ and down
\themyDcounter

\addtocounter{myCounter}{1}
\addtocounter{myDcounter}{-1}
Up \themyCounter\ and down
\themyDcounter

\addtocounter{myCounter}{1}
\addtocounter{myDcounter}{-1}
Up \themyCounter\ and down
\themyDcounter

\end{document}

答案3

恐怕我不明白不知道计数器起始值的规定。无论如何,这是一个基于 LuaLaTeX 的解决方案,它以 为步长从n(n设置为10) 倒计时到。1-1

在此处输入图片描述

% !TEX TS-program = lualatex
\documentclass{article}
\begin{document}
\directlua{ for i = 10, 1, -1 do tex.sprint(i.." ") end }
\end{document}

相关内容