LaTeX/LaTeXにおける文書整形の制御/カウンタ

LaTeX内部では,章立てコマンドによって振られる章番号やenumerate環境で振られるラベルの番号などのために,いくつものカウンタが存在しています.ここではそれらのカウンタに関するコマンドについて説明します.

5.2.1 カウンタ一覧

LaTeX内部で使用され,ユーザが参照,設定することが可能なカウンタの一覧を表に示します.これらのカウンタは半角文字列で表されます.


表: カウンタ一覧
1-24-5カウンタ 対象 カウンタ 対象
page ページ番号  equation 数式番号
part 部の番号  footnote 脚注番号
chapter 章番号  mpfootnote minipage環境内の脚注番号
section 節番号  secnumdepth 小節番号の付番レベル
subsection 小節番号  tocdepth 目次の出力レベル
subsubsection 小々節番号  figure 図の番号
paragraph 段落番号  table 表の番号
subparagraph 小段落番号  topnumber フロートのページ上端への出
enumi enumerate環境のネスト   力数の上限
  レベル1の番号  bottomnumber フロートのページ下端への出
enumii enumerate環境のネスト   力数の上限
  レベル2の番号  totalnumber 1ページ中のフロートの総数
enumiii enumerate環境のネスト   の上限
  レベル3の番号  dbltopnumber 2段組でのfigure*table*
enumiv enumerate環境のネスト   環境に対するページ上端へ
  レベル4の番号   のフロートの出力数の上限
       

カウンタには,番号を数えあげるものと一定値を保持するものの2種類があります.表で``番号''とあるものは数えあげるためのカウンタ,それ以外のものは値を保持するためのカウンタです.

5.2.2 親子カウンタ

カウンタには親子関係を持つものがあります.これは親カウンタが1つ増えると子カウンタがクリアされる関係にあるもので,章立てコマンドによって振られる番号やネストしたenumerate環境のラベル番号などがこれにあたります.例えばsubsectionカウンタは,それよりも1つ上のレベルのsection カウンタを親カウンタに持つカウンタです.このため,\sectionコマンドを用いるとsubsection以下のカウンタがすべてクリアされます.章立てコマンドのとる階層構造は,このような親子関係にあるカウンタによって制御されています.\subsectionコマンドはsubsectionカウンタの番号を,\sectionコマンドはsectionカウンタの番号を出力するコマンドであるとみることもできます.

5.2.3 カウンタコマンド

ここではカウンタを設定するためのコマンドについて説明します.

\setcounterコマンド

すでに用意されているカウンタの値を設定します.カウンタを設定すると,その後にそのカウンタの値を参照するときには設定値に1を加えた値が用いられます.記述方法を次に示します.

\setcounter{カウンタ}{設定値}

記述例を次に示します.

\setcounter{section}{3}

このように設定すると,次に\sectionコマンドを用いたときの節番号は4になります.つまり希望の値にするには1小さい値を設定します.

5.2.4 カウンタの出力形式

カウンタの出力形式は,出力形式指定コマンドによって制御できます.これを表に示します.これらのコマンドの引数のカウンタには用意されているものを指定します.


表: カウンタの出力形式指定コマンド
コマンド 出力形式 出力例
\arabic{カウンタ} アラビア数字 ...,-2,-1,0,1,2,3,...
\roman{カウンタ} 小文字ローマ数字 i,ii,iii,iv,...
\Roman{カウンタ} 大文字ローマ数字 I,II,III,IV,...
\alph{カウンタ} 小文字アルファベット a,b,c,...
\Alph{カウンタ} 大文字アルファベット A,B,C,...
\fnsymbol{カウンタ} 脚注記号 $%
*,\dagger,\ddagger,\mathchar ''278,\mathchar ''27B,\Vert,%
**,\dagger\dagger,\ddagger\ddagger%
$

カウンタによっては使用できる数に限界がある.アルファベットを用いた場合はアルファベットの上限である26個までであり,また,脚注記号は9個までである.これらを越えるとエラーとなるので注意すること.なおアラビア数字ではマイナスの値を扱うこともできる.

5.2.5 カウンタ出力コマンド

\theカウンタコマンド

カウンタの値を出力するには,カウンタの先頭に``\the''をつけたコマンドを用います.例えば出力上現在のページ番号を出力したい場合は, \thepageのようにページカウンタを指すpage\theをつけたコマンドを使います.\theカウンタコマンドは出力形式指定コマンドによって設定された形式(表)で数字を出力します.

\theカウンタコマンドでは,出力する文字列を変更することもできます.例えば,各ページ番号を``-- i --''のように横線をつけて出力したい場合は,次の例の1行目のように指定します.また,``I-a''のように先頭に節番号をともなった形式で出力したい場合は2行目のように指定します.このように,\theカウンタコマンドでは他のカウンタを参照できます.

\renewcommand{\thepage}{--- \roman{page} ---}
\renewcommand{\thesubsection}{\Roman{section}--\alph{subsection}}

\theカウンタコマンドは出力されるカウンタ文字列を保持しているコマンドであるとみなすことができます.

5.2.6 数値としてのカウンタ

\valueコマンド

\theカウンタコマンドとは異なり,カウンタの値を長さに使ったりする場合など,ソースファイル中にその値を展開したいときには,\valueコマンドを用います.\valueコマンドは引数にカウンタを1つとります.

\setcounter{footnote}{\value{section}}

このように\valueコマンドを使うことでソースファイル内で数値を必要とする部分にカウンタの値を用いることができます.