使用计数器定义自定义文本

使用计数器定义自定义文本

我想实现这一点:每次我写,比如说\mypair,它应该输出,比如说#Pair 1,然后在下次使用时#Pair 2,等等。

(1)我该怎么做? (2)如何添加重置或恢复计数器的选项?

答案1

这定义了命令\resetmycounter\resumemycounter\mypair。当您使用 时\resetmycounter,它会记住该值并使用新的计数器重新开始。当您使用 时,\resumemycounter它会忘记当前值并返回到上一个值。

\documentclass{article}
\newcounter{mycountnum}
\newcounter{mycount}

\newcommand\resetmycounter{
    \stepcounter{mycountnum}
    \ifcsname themycount\roman{mycountnum}\endcsname \else
        \newcounter{mycount\roman{mycountnum}}
    \fi
}
\newcommand\resumemycounter{\addtocounter{mycountnum}{-1}}
\newcommand\mypair{%
    \stepcounter{mycount\roman{mycountnum}}
    \#Pair \csname themycount\roman{mycountnum}\endcsname
}


\begin{document}
\mypair

\mypair
\mypair
\mypair

\mypair

Reset:

\resetmycounter

\mypair
\mypair
\mypair

Reset:

\resetmycounter
\mypair

Resume:
\resumemycounter
\mypair

Resume:
\resumemycounter

\mypair
\mypair

Reset:
\resetmycounter
\mypair
\end{document} 

在此处输入图片描述

答案2

正如您所猜测的,您需要一个计数器。当您定义计数器时,假设\newcounter{Test}\theTest定义了一个将打印数字的命令。如果您愿意,您可以重新定义它以其他方式打印它,但如果不了解如何使用它,我不建议将其放在这里#Pair。无论如何,您需要在使用计数器之前增加它,使用\stepcounter或完成\refstepcounter。因此,定义一个增加并打印计数器的命令,如下\myTest例所示。

要重置计数器\setcounter{Test}{0},您可以执行 ,这是手动形式。您还可以使用可选参数将\newcounter其重置为其他计数器,例如section

您可以在以下位置找到有关计数器的更多信息https://en.wikibooks.org/wiki/LaTeX/Counters

\documentclass{article}
\newcounter{Test}[section]
\newcommand\myTest{\stepcounter{Test}\#Pair \theTest}
\begin{document}
\section{First section}
\myTest\ \myTest
\setcounter{Test}{0}
\myTest\ \myTest

\section{New section}
\myTest\ \myTest\ \myTest

\end{document}

在此处输入图片描述

相关内容