私の理解では、カウンターは自動的に増加するはずです。しかし、カウンターを使用しようとすると、すべてゼロになります。これが 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
、カウンタの名前と整数の 2 つの引数を取ります。\stepcounter
および\refstepcounter
は、カウンタの値を だけ増加させます1
が、引数は 1 つだけ取ります。つまり、値を増加させるカウンタの名前です。
mycounter
(a)で指定されたカウンタを増加し1
、(b) の新しく増加した値を表示するLaTeXマクロを作成したい場合mycounter
、いくつかの方法があります。たとえば、カウンタを次のように作成した後、
\newcounter{mycounter}
の次の 3 つの定義のいずれかを使用できます\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}