とりあえず,article.cls を読んてみると,section などの空白は以下の定義の@startsection に渡している数字部分で指定されているとわかる.4つ目の引数がタイトルの上,5つ目がタイトルのしたの空白である.これをいじれば空白を小さくできる.
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-2.0ex \@plus -1ex \@minus -.2ex}%
{0.3ex \@plus.2ex}%
{\fontfamily{ptm}\fontseries{bx}\fontshape{sc}\selectfont\Large}}
@startsection はセクションの本体で latex/base/latex.ltx に定義されている.一つ目の引数が環境名,二つ目がレベルである.star(*)付は @ssect に分岐,普通のは @sect に分岐する.@sect のなかでは \@seccntformat でセクション番号のフォーマットをするらしい.ただし,引数は section とかの環境の名前のみなので注意.レベルが1のときだけピリオドを出力するには, @sect もハックしなければならない.
\def\@seccntformat#1#2{%
\csname the#1\endcsname%
\ifnum #2=1\relax .\fi
\quad}
\def\@sect#1#2#3#4#5#6[#7]#8{%
\ifnum #2>\c@secnumdepth
\let\@svsec\@empty
\else
\refstepcounter{#1}%
\protected@edef\@svsec{\@seccntformat{#1}{#2}\relax}%
\fi
...
- Newer: ことはじめ