LaTeXの\sectionや\subsection類は中で\@sectを呼び出して、その中で文字の大きさなどを処理しています。
書籍の指定では\section、\subsectionくらいだと、それぞれ明らかに別々のデザインになることが多いので、わたしが作っているクラスファイルでは\@sectの中でそれぞれ条件分岐させて処理しています。
\def\@sect#1#2#3#4#5#6[#7]#8{%
\ifnum #2=1 % \sectionのときの処理
処理(1)
\else\ifnum #2=2 % subsectionのときの処理
ほとんどの場合これで済んでいたのですが、今回はたとえば「2.5」節のような特定の組合せのときだけ「.」の両側を詰めたいという要望がありました。最終段階でもう時間がありません。
考えていてもしょうがないから、個別に詰めることにしました。
処理(1)の中で、
\ifnum\c@chapter=2
\ifnum\c@section=5
2\kern-.25em .\kern-.15em 5
\else
普通に出力
\fi
\else
普通に出力
のようしちゃいました。
実際には別のマクロを呼び出してあれこれしてるんですが、基本的な部分はこんな感じになってしまいました。
コメント