增加计数器

增加计数器

据我所知,计数器应该自动递增。但是,当我尝试使用计数器时,得到的都是零。这是 MWE。

\documentclass[12pt]{article}
\usepackage{lipsum}
\newcounter{mcounter}


\begin{document}
\themcounter \lipsum[1]

\themcounter \lipsum[2]

\themcounter \lipsum[3]
\end{document}

打印的 Lipsum 文本在每个段落前面带有零。

说实话,我正试图在教学计划列表中间创建一个页数计数器。列表看起来像“第 1 天:工作表 #1、#2 和注释。第 2 天:工作表 #3、注释和工作表 #4”。如果我添加工作表(或删除工作表),我不想为当天和任何后续日期的列表中的所有内容重新编号。

有什么建议可以告诉我我做错了什么吗?我在 Win 10 PC 上的 Texmaker 上使用 LauLaTeX。

答案1

你写了,

据我了解,计数器应该自动递增。

这不对。如果您创建了一个计数器,但除了显示其值(例如,通过\themcounter)之外从未对其执行任何操作,则计数器的值将0在整个文档中保持其初始值(通常是)。

在 LaTeX 中,可以使用命令\setcounter\addtocounter\stepcounter和来修改计数器的值\refstepcounter\setcounter\addtocounter接受两个参数:计数器的名称和一个整数。\stepcounter\refstepcounter将计数器的值增加1,并且它们只接受一个参数——要增加其值的计数器的名称。

如果您想要创建一个 LaTeX 宏,它 (a) 增加名为 的计数器mycounter1并且 (b) 显示新增加的 值mycounter,您可以通过多种方式实现。例如,在使用 创建计数器后

\newcounter{mycounter}

您可以使用以下三个定义之一\showmycounter

\newcommand\showmycounter{\addtocounter{mycounter}{1}\themycounter}
\newcommand\showmycounter{\stepcounter{mycounter}\themycounter}
\newcommand\showmycounter{\refstepcounter{mycounter}\themycounter}

默认情况下,指令\themycounter\arabic{mycounter}产生相同的输出,即默认使用阿拉伯数字来显示计数器的值。如果您想将计数器的值显示为大写罗马数字,则必须重新定义\themycounter(通过\renewcommand\themycounter{\Roman{mycounter}})或更改上述\newcommand指令,例如,

\newcommand\showmycounter{\stepcounter{mycounter}\Roman{mycounter}}

价值计数器的 可以是任意整数,包括0正整数和负整数。毫不奇怪,如果 的值mycounter是非正数,则尝试将其值表示为字母字符或罗马数字将生成错误消息。


基于以下想法构建的 MWE (最小工作示例):

在此处输入图片描述

\documentclass{article}
\newcounter{mycounter} % create a new counter, called 'mycounter'
% default def'n of '\themycounter' is '\arabic{mycounter}'

%% command to increment 'mycounter' by 1 and to display its value:
\newcommand\showmycounter{\stepcounter{mycounter}\themycounter}

\usepackage{lipsum}
\newcommand\showlips{\stepcounter{mycounter}\lipsum[\value{mycounter}]}

\begin{document}
\showmycounter, \showmycounter, \showmycounter

\showlips

% verifying that the preceding command used '4':
\lipsum[4]
\end{document}

相关内容