たとえば,目次で
1 序論
としたときに,「1」と「序論」の間の空白を変更したいのですが,具体的にどうすればいいのでしょうか?\l@section の定義中の \@lnumwidth の値を変更すればいいようですが,どうやって変更すればいいかよくわかりません.お願いします.
マクロ作成のごく基本的な文法さえふまえていれば容易にできる変更なので,
まず,「LaTeX でのマクロ作成」についての学習を行うべきでしょう.
以下の記述は「過剰サービス」です.
(1) 実際に使用しているクラスファイルでの
\l@section の定義部分(*)をプリアンブルにコピーし,
その前後に \makeatletter と \makeatother を追加.
(*) 例えば,次のような部分:
\newcommand*{\l@section}[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty{\@secpenalty}%
\addvspace{1.0em \@plus\p@}%
\begingroup
\parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip
\leavevmode\bfseries
\setlength\@lnumwidth{1.5em}%
\advance\leftskip\@lnumwidth \hskip-\leftskip
#1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
\endgroup
\fi}
# 「クラスファイル」(の名称,所在の調べ方)は
# 「入門書レベル」のことなので,ここでは説明しません.
(2) (1) でコピーしてきた部分に含まれる
「\setlength\@lnumwidth{1.5em}%」のような部分の
1.5em のような寸法を変更
ただし,この例では,jarticle.cls での \l@section の定義を引用して
説明しましたが,他のクラスファイルの場合について「同様の」作業を
自力で行うには,本来ならマクロ作成の基本的な知識をふまえている
必要があります.
まず,「LaTeX でのマクロ作成」についての学習を行うべきでしょう.
以下の記述は「過剰サービス」です.
(1) 実際に使用しているクラスファイルでの
\l@section の定義部分(*)をプリアンブルにコピーし,
その前後に \makeatletter と \makeatother を追加.
(*) 例えば,次のような部分:
\newcommand*{\l@section}[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty{\@secpenalty}%
\addvspace{1.0em \@plus\p@}%
\begingroup
\parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip
\leavevmode\bfseries
\setlength\@lnumwidth{1.5em}%
\advance\leftskip\@lnumwidth \hskip-\leftskip
#1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par
\endgroup
\fi}
# 「クラスファイル」(の名称,所在の調べ方)は
# 「入門書レベル」のことなので,ここでは説明しません.
(2) (1) でコピーしてきた部分に含まれる
「\setlength\@lnumwidth{1.5em}%」のような部分の
1.5em のような寸法を変更
ただし,この例では,jarticle.cls での \l@section の定義を引用して
説明しましたが,他のクラスファイルの場合について「同様の」作業を
自力で行うには,本来ならマクロ作成の基本的な知識をふまえている
必要があります.