Re: 改ページ後の見出しの前アキについて

名前: しっぽ愛好家
日時: 2002-12-03 16:28:38
IPアドレス: 210.230.19.*

>>13532 まず,お使いのクラスファイルなどに関する条件を明示してくださいね. %%% \fullwidth と \headfont は (p)LaTeX 自身あるいは標準配布の %%% クラスファイルでは定義されていません. とりあえず,(奥村先生による)jsarticle.cls を用いた場合には, いまいさんの再定義例がそのまま処理できて,かつ,問題となっている現象が 再現しました.そこで,jsarticle.cls を用いた場合について考えてみます. jsarticle.cls では \@startsection を再定義して,\clearpage の直後などで \section などを用いた場合にも,見出しの上部のアキが 失われないようにしています. %%% jsarticle.cls における \@startsection の定義を引用します. %%% \@startsection の第 4 引数(の絶対値)が見出しの上側の空白量になります. \def\@startsection#1#2#3#4#5#6{% \if@noskipsec \leavevmode \fi \par \@tempskipa #4\relax \@afterindenttrue \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse \fi \if@nobreak \everypar{}% \else \addpenalty\@secpenalty %%% 以下の 4 行はオリジナルの定義では \addvspace\@tempdskipa です. \ifdim \@tempskipa >\z@ \null \vspace*{-\baselineskip}\vskip\@tempskipa \fi \fi %%% 下記の \noindent はオリジナルの定義にはありませんが, %%% 今回の件には関係しません. \noindent \@ifstar {\@ssect{#3}{#4}{#5}{#6}}% {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} したがって,\sectionString の定義内の \clearpage を削除した状態で \clearpage\sectionA{...} という記述を行うと,見出しの上側に (\section の定義中の \@startsection の第 4 引数に対応する)空白が 入ります. 一方,\sectionString のオリジナルの定義を用いた状態で単に \sectionA{...} のような記述を行うと, \sectionString に対応する部分の直前でページ分割が行われ, そのため \sectionString に対応する部分の上部にはアキは入りません. (ただし,``節番号'' が前のページに残るはずですが.) ここでは,(\sectionString には \clearpage を含めないで) \section の定義の中の \@startsection の第 4 引数(の自然長)を 0pt に するとよいでしょう. %%% \sectionA 以外には \section を(内部的に)用いず,かつ, %%% \sectionA の直前では必ず改ページするのであれば,これで充分でしょう. 一方,\sectionA 以外にも,内部で \section を使うようなマクロが存在する, といった理由で \section の定義を変更できない場合には,単に, \def\sectionA{% \clearpage\vspace*{<適当な寸法(*)>}% \@ifnextchar[\indexSection\normalSection} くらいの定義を用いて,\sectionA 自身に見出しの位置を補正させます. %%% (*) ここでは, %%% - { \baselineskip %%% + ((\section の定義中の \@startsection の第 4 引数の自然長))} %%% にするのが妥当でしょうか.

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)