據我了解,計數器應該會自動遞增。然而,當我嘗試使用 1 時,我得到的只是零。這是一個 MWE。
\documentclass[12pt]{article}
\usepackage{lipsum}
\newcounter{mcounter}
\begin{document}
\themcounter \lipsum[1]
\themcounter \lipsum[2]
\themcounter \lipsum[3]
\end{document}
說實話,我正在嘗試為教學計劃清單中間的頁面建立計數器。該清單看起來類似於「第 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}