增加一個計數器

增加一個計數器

據我了解,計數器應該會自動遞增。然而,當我嘗試使用 1 時,我得到的只是零。這是一個 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在整個文件中保持其初始值(通常為 )。

\setcounter在 LaTeX 中,可以使用指令、\addtocounter\stepcounter和 來修改計數器的值\refstepcounter\setcounter\addtocounter採用兩個參數:計數器的名稱和整數。\stepcounter並將\refstepcounter計數器的值增加1,並且它們只接受一個參數——要增加其值的計數器的名稱。

mycounter如果您想要建立一個 LaTeX 巨集,它 (a) 增加由命名的計數器1並 (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}

相關內容