%
%   Latex が備える命令のカスタマイズ
%                                         薮 哲郎
%
%   2011.2.17   latex2.09 の時代のスタイルファイルを基にして作成
%        2.21   出来るだけ jbook.cls を上書きするよう変更
%   
%  ＜豆知識＞
%
%   latex2.09 のスタイルファイル (jbook.sty, jbk11.sty, latex.tex) において 
%   \def で定義されていた多くの命令が、
%   platex のスタイルファイル (jbook.cls plcore.dtx) では \newcommand で定義されている。
%   上書きするときは \renewcommand を使う
%
%----------- 章の最初のページとヘッダのカスタマイズ (original : latex2.09 の jbk11.sty) ---------
%
\def\@chapapp#1{第#1章}     % platex では @chapapp =「第」なのに対して、
                            % 本カスタマイズでは @chapapp = 「第○章」である。

%  第○章  □□□  の部分

\def\@makechapterhead#1{ \vspace*{30pt} { \parindent 0pt \raggedright 
% \ifnum \c@secnumdepth >\m@ne \huge\bf \@chapapp{} \thechapter \par 
 \ifnum \c@secnumdepth >\m@ne \Huge\bf \@chapapp{\thechapter} \hskip 30pt \fi \Huge\bf #1\par 
 \nobreak \vskip 60pt } }

%  以下の 3 行を削除すると、「目次」のヘッダが空白になるので
%  削除してはならない。

\def\@makeschapterhead#1{ \vspace*{50pt} { \parindent 0pt \raggedright 
 \Huge \bf #1\par 
 \nobreak \vskip 40pt } }

% latex 2.09 では pagesylte が plain のとき章の最初のページだけページ番号が下に入る。
% これを防止するため、章の最初のページ用に、ページスタイル chapheadings を創設する
%
% 坂本大氏作成の thesis21.sty を引用したものを改造
%
\def\ps@chapheadings{%
\let\@mkboth\markboth
\def\@oddhead{\hbox {}\hfil {\small\bf\thepage}}%
%\def\chaptermark##1{\markright{\uppercase{\ifnum \c@secnumdepth}}}% この行は働きが不明なのでコメントアウト
}

% \chapter 命令の定義

%\def\chapter{\cleardoublepage \thispagestyle{plain} \global\@topnum\z@
\def\chapter{\cleardoublepage \thispagestyle{chapheadings} \global\@topnum\z@
\@afterindenttrue \secdef\@chapter\@schapter}  

\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
 \refstepcounter{chapter}
% \typeout{\@chapapp\space\thechapter.}
 \typeout{\@chapapp{\space\thechapter\space}}
%
% 目次用ファイル .toc に出力する内容を変更
% \addcontentsline{toc}{chapter}{\protect
% \numberline{\thechapter}#1}\else
 \addcontentsline{toc}{chapter}{%
第\thechapter 章　#1}\else
 \addcontentsline{toc}{chapter}{#1}\fi
 \chaptermark{#1}
 \addtocontents{lof}{\protect\addvspace{10pt}}
\addtocontents{lot}{\protect\addvspace{10pt}} \if@twocolumn
\@topnewpage[\@makechapterhead{#2}] 
 \else \@makechapterhead{#2}
 \@afterheading \fi%
}% @chapter の定義の終わり

\def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}]
 \else \@makeschapterhead{#1} 
 \@afterheading\fi}

%---------- ヘッダのカスタマイズ (original : latex 2.09 の jbook.sty) -----------
%
%  参考  LateX スーパー活用術  p.140 p.256
%        美文書作成入門 初版   p.186
%
%\def\ps@myheadings{\let\@mkboth\@gobbletwo
\def\ps@myheadings{\let\@mkboth\markboth% markboth に変更しないと目次の部分で「目次」の文字が出なくなる
\def\@oddfoot{}
\def\@evenfoot{}
%
%  偶数ページのヘッダ
\def\@evenhead{\underline{\hbox to \textwidth{{\small\bf\thepage}\hfil\small\bf\leftmark}}}
%
%  奇数ページのヘッダ
\def\@oddhead{\underline{\hbox to \textwidth{\hbox{}\small\bf\rightmark\hfil\small\bf\thepage}}}
%
%  章見出しをヘッダに入れる
\def\chaptermark##1{\markboth % 左右ページのヘッダに出力
{\ifnum \c@secnumdepth>\m@ne \@chapapp\thechapter　\,\fi ##1}% 左ページのヘッダ  ページ番号が -1 より大きいなら入れる
{}% 右ページのヘッダは空
}
%
%  節見出しをヘッダに入れる
\def\sectionmark##1{\markright% 右ページのヘッダに出力
{\ifnum \c@secnumdepth>\z@ \thesection　\fi ##1}%  0より大きいなら入れる
}
}% myheadings の定義の終わり

%-----------  図や表のキャプションのカスタマイズ (original : jbook.cls) -------------

%     図1: キャプション  →   図1  キャプション

\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \iftdir\sbox\@tempboxa{#1\hskip1zw#2}%
%    \else\sbox\@tempboxa{#1: #2}%
    \else\sbox\@tempboxa{#1\ \ \ #2}%
  \fi
  \ifdim \wd\@tempboxa >\hsize
    \iftdir #1\hskip1zw#2\relax\par
      \else #1: #2\relax\par\fi
  \else
    \global \@minipagefalse
    \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}

%--------------- 目次のカスタマイズ (original : jbook.cls) --------------

%  ヘッダを「目 次」から「目次」に変更

\def\contentsname{目次}

%  レイアウトのパラメータ

\renewcommand{\@pnumwidth}{1.65em}    % ページ番号記述用領域の幅  デフォルト 1.55em
\renewcommand{\@dotsep}{4.5}          % ドットの間隔  デフォルト 4.5

\renewcommand*{\l@section}{\@dottedtocline{1}{1.5em}{2.5em}}   % toc の深さ, 左インデント, 節番号と節見出しの間隔
\renewcommand*{\l@subsection}   {\@dottedtocline{2}{3.8em}{3.2em}}

% dottedtocline を修正して点線をカスタマイズ
% 点の位置が日本語用としては下すぎるので、3pt 上に上げる

\def\@dottedtocline#1#2#3#4#5{%
  \ifnum #1>\c@tocdepth \else
    \vskip\toclineskip \@plus.2\p@
    {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
     \parindent #2\relax\@afterindenttrue
     \interlinepenalty\@M
     \leavevmode
     \@lnumwidth #3\relax
     \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip
     {#4}\nobreak
     \leaders\hbox{$\m@th \mkern \@dotsep mu \raise 3pt \hbox{.} \mkern \@dotsep mu$}%
%     \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}%
     \hfill\nobreak
     \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}%
     \par}%
  \fi}

%---------------- 付録のカスタマイズ ------------------

\renewcommand{\appendixname}{付録}


