以前にも同じような記事を書いたのですが、今回は目次表示に関係のある\numberlineの引き数の切り分けのためにパターンマッチングを使ってみました。
書籍用のtocファイルに書き込まれる\numberlineの引き数は「\numberline{1.3}…}のように\thechapter.\thesectionの形をしています。
この引き数を
1. \thechapterが1桁か2桁か
2. \thesectionが1桁か2桁か
によって処理を変更する必要があったのです。
「10.4」のような引き数を切り分けるのは以下ように定義すれば、それぞれの数字を別々に取得できます。
\def\XXX#1. #2 {処理の内容}
たとえば「\XXX{71.20}」とすれば{#1=71、#2=20」のように週次を取得することが可能です。
#2の後のスペースは必要です。スペースのない形「\def\XXX#1.#2{処理の内容}」にすると「\XXX{1.23}」の場合#1=1、#2=2となってしまい、望みの#2=23になりません。
というわけで、以下のような形で切り分けることができました。
\def\XXX#1. #2 {処理の内容}
\newcommand*{\l@section}[2]{%
\def\numberline{この中で
\XXX##1
としてピリオドの前後の数字を切り分け
...}
}
コメント