見出しでの改行

名前: TxT
日時: 2002-09-06 20:05:14
IPアドレス: 202.244.205.*

通常\sectionでは見出しは 1 はじめに というように数字の後に続いて見出しがきますがこれを 1 はじめに というよう数字の後で改行して次の行に見出しがくるよ うににすることは可能でしょうか. 現在は「1」とつく数字を「第1章」としたくて随分と 前に入手したsection.texというマクロを使って実現し ております.どこで入手したのか失念いたしましたので 必要かどうかわかりませんが一応掲載させていただきま す. もしおわかりになればご教授をお願いいたします.では よろしくお願いいたします. %---------マクロここから % \SetTitleFormat マクロは % % \SetTitleFormat{構造名}{カスタマイズ指定} % % という形式で用います. ここで, 構造名は section, subsection といった, % カスタマイズしたい (セクション関係の) コマンドのコマンド名から % 文字 '\' を取り除いたものです. また, カスタマイズ指定は, 下記の 9 個の % コマンドを並べたものです. (すべて用いる必要はありません. 用いなかった % ものに関してはデフォルトの値が用いられます. ) % % \level, \indent, \beforeskip, \afterskip, \style, % \prefix, \suffix, \titleskip, \boxsize % % これらのカスタマイズ指定のコマンドは次のような意味を持ちます. % % \level % 書式 : \level{整数} % \level のパラメータとして与えた整数値がカウンター \c@senumdepth の % 値よりも大きいとセクション番号 (\subsection コマンドの場合は % サブセクションの番号, 以下同様) が出力されません. % % \indent % 書式 : \indent{単位付きの長さ} % 見出しは, 行の左端から \indent のパラメータとして与えた長さだけ % 右に進んだ位置から書き始められます. % % \beforeskip % 書式 : \beforeskip{単位付きの長さ(*)} % (*) plus, minus を用いて伸び縮みの範囲を指定することもできます. % \beforeskip のパラメータとして与えた長さの絶対値が, 見出しの上に % 余分に加えられる空白の大きさになります. また, パラメータが 0 以下の % 場合には見出しの後の最初の段落の先頭での字下げが行われません. % % \afterskip % 書式 : \afterskip{単位付きの長さ(*)} % (*) plus, minus を用いて伸び縮みの範囲を指定することもできます. % \afterskip のパラメータとして与えた長さを L とすると, L が正の場合には, % 見出しの下に余分に加えられる空白の大きさが L になります. % また, L が 0 以下の場合には, 見出しの後で改行せず, 見出しの右端から % -L だけ右に進んだ位置から本文が書き始められます. % % \style % 書式 : \style{書体の指定} % 見出しに用いる書体を \Large\bfseries, \normalsize\sffamily のように % 指定します. なお, フォントの変更は, {\bfseries boldface}, % {\slshape slanted} のような形式で用いることができるコマンドで行って % ください. (\textbf のような, 書体を変更する部分をパラメータにしなければ % いけないコマンドは使えない, ということです. ) % % \prefix % 書式 : \prefix[オプション]{番号の前につける文字列} % ("[オプション]" は省略できます. ) % \prefix のパラメータとして与えた文字列が見出しでのセクション番号の前に % 追加されます. また, オプションを与えた場合は, \section+ のように + を % つけた場合に, そのオプションがパラメータとして与えた文字列のさらに前に % 追加されます. % % \suffix % 書式 : \suffix[オプション]{番号の後につける文字列} % ("[オプション]" は省略できます. ) % \suffix のパラメータとして与えた文字列が見出しでのセクション番号の後に % 追加されます. また, オプションを与えた場合は, \section+ のように + を % つけた場合に, そのオプションがパラメータとして与えた文字列のさらに後に % 追加されます. % % \titleskip % 書式 : \titleskip{単位付きの長さ(*)} % (*) plus, minus を用いて伸び縮みの範囲を指定することもできます. % セクション番号とセクションのタイトルとの間に \titleskip のパラメータ % として指定した長さだけの空白が入ります. % % \boxsize % 書式 : \boxsize{単位付きの長さ} % \tableofcontents で作成した目次においては, セクション番号 (と \prefix, % \suffix で与えた文字列) \boxsize のパラメータとして指定した大きさの % スペースに書き込まれます. % % (使用例) % \SetTitleFormat{section} % {\prefix[*]{第}\suffix{章}\style{\large\bfseries}\boxsize{5zw}} % \SetTitleFormat{subsection} % {\suffix{節}\style{\normalsize\bfseries}% % \afterskip{-1.5em plus -.2em}\boxsize{4zw}} % \tableofcontents % \section{普通の用法} % 見出しは「第 1 章 普通の用法」のようになります. % \section+{新しい用法} % セクション関係のコマンドに + をつけて用いることで, 見出しにオプションの % 記号をつけて「*第 2 章 新しい用法」のようにすることができます. % \section-{新しい用法 (2)} % セクション関係のコマンドに - をつけて用いることで, 「番号は出力しないが, % 目次には載せる」ことができます. % \subsection{互換性について} % セクション関係のコマンドに * をつけると番号が出力されなくなる, という点は % これまでと同様です. % % (注意) % (1) \SetTitleFormat コマンドを使い始める以前の toc ファイルがある場合には, % 古い toc ファイルを削除してからコンパイルしてください. % (目次の作成に関係するコマンドの定義を一部変更しているので, 古い toc % ファイルを読み込ませるとエラーが生じます. ) % (2) \SetTitleFormat コマンドでは, \part, \chapter コマンドの定義の変更は % できません. (正確に言えば, セクション関係のコマンドのうち, % \@startsection コマンドを用いて定義されているものだけが, % \SetTitleFormat コマンドを用いて定義を変更できます. ) % なお, \SetTitleFormat コマンドでは定義を変更できないコマンドに対して % \SetTitleFormat を適用してもエラーにはならず, また, その場合 % \SetTitleFormat は何もしません. % (3) 同じコマンドに対して \SetTitleFormat コマンドを 2 回以上適用する % (例えば, \SetTitleFormat{section}... を 2 回以上用いる) 場合, % エラーにはなりませんが, すべての指定が用いられます. % 例えば, % % \SetTitleFormat{section}{\prefix[*]{}\suffix{.}} % \SetTitleFormat{section}{\prefix[$\star$]{}\style{\large\sffamily}} % % のように指定すると, これは, % % \SetTitleFormat{section} % {\prefix[$\star$]{}\suffix{.}\style{\large\sffamily}} % % というただ一つの指定と同じ意味になります. なお, ここで, \prefix は % どちらの \SetTitleFormat でも用いられていましたが, そのような項目に % ついては最後に用いた指定が用いられます. % (4) \SetTitleFormat コマンドは, \label, \ref を用いたときの \ref コマンドの % 出力形式は変更しません. (つまり, 単にセクション番号のみが出力される, % というデフォルトのままです. ) % (5) この \SetTitleFormat コマンドのカスタマイズ指定のところで用いられる % \prefix などのコマンドは, \SetTitleFormat コマンドの中だけで (local に) % 定義されているので, ユーザ自身が同じ名前のコマンドを定義しても % 差し支えありません. % %%% definition of \SetTitleFormat macro \makeatletter \@ifundefined{SetTitleFormat}{}{\makeatother\endinput} \def\SetTitleFormat#1#2{{% \def\@sectionname{#1}% \def\reserved@a{\@refined@startsection}% \def\reserved@b{\@startsection}% \expandafter\expandafter\expandafter\@setformat@checkcmd% \csname #1\endcsname\@nil\reserved@a{#2}}} \long\def\@setformat@checkcmd#1{\def\reserved@c{#1}% \let\reserved@d\@setformat@getdefault% \ifx\reserved@a\reserved@c% \typeout{Note: "\@sectionname" is already redefined and redefine again...} \else\ifx\reserved@b\reserved@c% \else\let\reserved@d\@setformat@error\fi\fi\reserved@d} \def\@setformat@getdefault#1#2#3#4#5#6\@nil{% \def\reserved@c{{#2}}% level \def\reserved@d{{#3}}% indent \def\reserved@e{{#4}}% beforeskip \def\reserved@f{{#5}}% afterskip \def\reserved@g{{#6}}% style \def\level{\@setformat@getparam c}% \def\indent{\@setformat@getparam d}% \def\beforeskip{\@setformat@getparam e}% \def\afterskip{\@setformat@getparam f}% \def\style{\@setformat@getparam g}% \let\prefix\@setformat@prefix% \let\suffix\@setformat@suffix% \let\boxsize\@setformat@boxsize% \let\titleskip\@setformat@titleskip% \@setformat@prefix{}\@setformat@suffix{}% \@setformat@titleskip{.5em}%%% default titleskip = 0.5em \let\reserved@a\@setformat@redefine} \long\def\@setformat@error#1\@nil{% \typeout{Warning: "\@sectionname" is not defined by \string\@startsection.}% \let\reserved@a\@gobble} \def\@setformat@getparam#1#2{\@namedef{reserved@#1}{{#2}}} \def\@setformat@prefix{\bgroup\@ifnextchar[{\@setprefix}{\@setprefix[]}} \def\@setprefix[#1]#2{% \global\@namedef{OptionalPrefix@\@sectionname}{#1}% \global\@namedef{Prefix@\@sectionname}{#2}\egroup} \def\@setformat@suffix{\bgroup\@ifnextchar[{\@setsuffix}{\@setsuffix[]}} \def\@setsuffix[#1]#2{% \global\@namedef{OptionalSuffix@\@sectionname}{#1}% \global\@namedef{Suffix@\@sectionname}{#2} \egroup} \def\@setformat@boxsize#1{\global\@namedef{Boxsize@\@sectionname}{#1}} \def\@setformat@titleskip#1{\global\@namedef{Titleskip@\@sectionname}{#1}} \def\@setformat@redefine#1{#1\relax\edef\reserved@a{{\@sectionname}}% \cscat{\reserved@c,\reserved@d,\reserved@e,\reserved@f,\reserved@g}% \expandafter\def\expandafter\reserved@b\expandafter{% \expandafter\@refined@startsection\reserved@a} \global\expandafter\let\csname\@sectionname\endcsname\reserved@b} % %%% introduce \section+, \section- etc. \@ifundefined{@original@sect}{}{\makeatother\endinput} \newif\if@UseOptionalSymbols \newif\if@HideSectionNumber \def\@refined@startsection#1#2#3#4#5#6{% \@UseOptionalSymbolsfalse\@HideSectionNumberfalse \@ifnextchar +% {\@UseOptionalSymbolstrue \@firstoftwo{\@original@startsection{#1}{#2}{#3}{#4}{#5}{#6}}}% {\@redefined@@startsection{#1}{#2}{#3}{#4}{#5}{#6}}} \def\@redefined@@startsection#1#2#3#4#5#6{% \@ifnextchar -% {\@HideSectionNumbertrue \@firstoftwo{\@original@startsection{#1}{#2}{#3}{#4}{#5}{#6}}}% {\@original@startsection{#1}{#2}{#3}{#4}{#5}{#6}}} \let\@original@startsection\@startsection \let\@startsection\@refined@startsection \let\@original@sect\@sect \def\@sect#1#2#3#4#5#6[#7]#8{% \if@UseOptionalSymbols \edef\@optional@prefix{\csname OptionalPrefix@#1\endcsname}% \edef\@optional@suffix{\csname OptionalSuffix@#1\endcsname}% \else \let\@optional@prefix\@empty\let\@optional@suffix\@empty \fi \let\@formatted@seccnt\@empty\let\@svsec\@empty \ifnum #2>\c@secnumdepth\else \if@HideSectionNumber\else \refstepcounter{#1}% \protected@edef\@formatted@seccnt{\@refined@seccntformat{#1}}% \protected@edef\@svsec{\@formatted@seccnt% \expandafter\hskip\csname Titleskip@#1\endcsname\relax}% \fi \fi \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup #6\relax \@hangfrom{\hskip #3\relax\@svsec}% {\interlinepenalty \@M #8\par}% \endgroup \csname #1mark\endcsname{#7}% \addcontentsline{toc}{#1}% {\ifnum #2>\c@secnumdepth \else \protect\RefinedNumberline{#1}{\@formatted@seccnt}\fi #7}% \else \def\@svsechd{#6\hskip #3\relax% \@svsec #8\csname #1mark\endcsname{#7}% \addcontentsline{toc}{#1}% {\ifnum #2>\c@secnumdepth \else \protect\RefinedNumberline{#1}{\@formatted@seccnt}\fi% #7}}% \fi \@xsect{#5}} \def\@refined@seccntformat#1{\@optional@prefix\csname Prefix@#1\endcsname% \csname the#1\endcsname\csname Suffix@#1\endcsname\@optional@suffix} \def\RefinedNumberline#1{\@ifundefined{Boxsize@#1}% {\numberline}{\@refined@numberline{#1}}} \def\@refined@numberline#1#2{% \expandafter\hb@xt@\csname Boxsize@#1\endcsname{#2\hfil}} % %%% 初期設定 \def\@sect@init#1{% \global\@namedef{Titleskip@#1}{1em}% \global\@namedef{Prefix@#1}{}% \global\@namedef{OptionalPrefix@#1}{}% \global\@namedef{Suffix@#1}{}% \global\@namedef{OptionalSuffix@#1}{}} \@sect@init{section} \@sect@init{subsection} \@sect@init{subsubsection} \@sect@init{paragraph} \@sect@init{subparagraph} \global\let\@sect@init\relax % %%% マクロの "first expansion" たちを結合するマクロ. \@ifundefined{cscat}{}{\makeatother\endinput} \def\cscat#1{\@cscat,#1,\@nil} \def\@cscat,#1{\def\reserved@b{#1}% \ifx\reserved@b\@nnil\let\reserved@b\@gobble% \else\let\reserved@b\@@cscat\fi\reserved@b{#1}} \def\@@cscat#1{% \expandafter\expandafter\expandafter\def% \expandafter\expandafter\expandafter\reserved@a% \expandafter\expandafter\expandafter{\expandafter\reserved@a#1}% \@cscat} \makeatother %---------マクロここまで

この書き込みへの返事:

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