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日)