LaTeX: シンプルなカウンターマクロ
LaTeXで「例」のような要素に自動的に番号を振りたいとき、シンプルなカウンターマクロを作ると便利。
(2025年7月16日)
基本的なマクロ定義
% カウンターの定義
\newcounter{ExampleCounter}
% 使うたびに値を増やす
\newcommand{\ExampleCounter}{\stepcounter{ExampleCounter}\arabic{ExampleCounter}}
% 値を初期化する
\newcommand{\ResetExampleCounter}{\setcounter{ExampleCounter}{0}}
% 増やさずに現在の値を知る
\newcommand{\RefExampleCounter}{\arabic{ExampleCounter}}
使用例
\ResetExampleCounter % 0に初期化
例~\ExampleCounter: AAA % 例~1: AAA
例~\ExampleCounter: BBB % 例~2: BBB
いま示したのは例~\RefExampleCounter{}です。% 例~2
例~\ExampleCounter: CCC % 例~3: CCC
最後の例~\RefExampleCounter{}はCCCです。% 例~3
設計のポイント
- preincrement方式: 先に値を増やしてから表示するため、
\RefExampleCounter
が「最後に表示された番号」を示す - シンプル: 複雑な環境や条件分岐を避け、基本的なマクロのみ使用
- 統一した命名: カウンター名とマクロ名を合わせることで
grep
しやすくする - 明確な機能分離:
\ExampleCounter
: 値を増やして表示\ResetExampleCounter
: 0に初期化\RefExampleCounter
: 増やさずに現在値を確認
検索性の向上
grep "ExampleCounter" *.tex
一つのキーワードで関連する全ての定義・使用箇所が見つかる。後からメンテナンスするときに便利。
注意点
\RefExampleCounter{}
の空の{}
は、後続文字との区切りを明確にするため~
(チルダ)で改行されない空白を作る\label
/\ref
との組み合わせは複雑になるので、このようなシンプルなケースでは手動番号の方が実用的
(2025年7月16日)