ページレイアウトをカスタマイズしたい方へ:scrpage.sty の紹介

名前: 永田善久
日時: 2002-01-27 19:43:42
IPアドレス: 133.100.243.*

5442 > ページの上に横棒を引いて,イタリック文字で現在の章や節を右上に > 書く,という出力はどのようにして行うのでしょうか? という質問に対しては、既に多くの方から 5706 > とりあえず fancyhdr.sty を入手して使ってみるのが手っ取り早いかと思います. に集約される的確な回答が寄せられています。fancyhdr.sty はこうしたカスタ マイズを施す場合のスタイルファイルとしては、最も高名なものであると思います。 しかし、fancyhdr.sty は 5706 > ただ,あまり高度なカスタマイズはできません. という側面も持ち合わせているかもしれません。 # このことは、もちろん TeXnician の方々にはあてはまりません。 # TeXnician の方々であればマクロソースの奥深くに入り込み、 # これを自在にカスタマイズされることでしょう。 # 従ってここでは、ごく一般の LaTeX ユーザの方々にとっては、という意味 # であるとお考えください。 そこで、「fancyhdr.sty を使ってはみたけれど、ちょっと・・・」という方の ために、scrpage.sty という(あまり知られてはいないかもしれない)スタイル ファイルを紹介してみます。scrpage.sty とは、LaTeX におけるカスタマイズ全般 のマクロをこと細かく提供しようとする「KOMA-Script パッケージ」という大きく て複雑なパッケージの中に含まれる一つのスタイルファイルです。KOMA-Script は MArkus KOhm 他数名によって開発されています。彼らは「scrpage は fancyhdr に比べると遥かにフレキシブルである」と謳っています。 さて、scrpage 自身にも多くの機能が積まれていますが、ここではヘッダ・フッタ 部分を柔軟にカスタマイズして、新しいページスタイルを定義することのできる \newpagestyle を見てみます。 # 実現しようとしている機能を等しくするものとして、\newpagestyle の他にも # \defpagestyle, \renewpagestyle, \providepagestyle コマンドがあります。 # \def*, \new*, \renew*, \provide* というプレフィクスの意味上の違いは、 # 通常の LaTeX コマンドにみられるものと全く同じです。 \newpagestyle の使い方は、 \newpagestyle{新ページスタイルの名前}{(ヘッダ上部線の長さ,ヘッダ上部線の太さ)% {偶数ページ用ヘッダ定義}{奇数ページ用ヘッダ定義}{片面ページ用ヘッダ定義}% (ヘッダ下部線の長さ,ヘッダ下部線の太さ)}% {(フッタ上部線の長さ,フッタ上部線の太さ)% {偶数ページ用フッタ定義}{奇数ページ用フッタ定義}{片面ページ用フッタ定義}% (フッタ下部線の長さ,フッタ下部線の太さ)} と新ページスタイルを定義しておき、これを \pagestyle{新ページスタイルの名前} で読み込みます。 # ヘッダ上部線とはヘッダ文字列の上に引かれる線のことです。通常はあまり # 目にしません。フッタに関しては上部線・下部線ともあまり目にしません。 # 脚註(本文部分との区分けのため自動的に線が引かれる)がフッタの上に来る # ため、線が引かれすぎるとうるさく感じられるためだと思います。 それでは具体的に、 5442 > ページの上に横棒を引いて,イタリック文字で現在の章や節を右上に > 書く,という出力はどのようにして行うのでしょうか? 5772 > 章のところが、第 章1.章題 と表示されてしまいます。 > 正しく 第1章 章題 と表示するにはどうしたらよいのでしょうか。 に対処するため、custom というページスタイルを作ってみます。 「現在の章や節を右上」という箇所は片面ページの場合と理解します。 見開き両面ページの場合は「偶数ページでは左上」とします。ページ 番号はフッタの中央に出してみましょう。すると例えば、 \newpagestyle{custom}{(0mm,0pt)% {\headmark\hfill}{\hfill\headmark}{\hfill\headmark}% (\textwidth,0.4pt)}% {(0mm,0pt)% {\hfill\pagemark\hfill}{\hfill\pagemark\hfill}{\hfill\pagemark\hfill}% (0mm,0pt)} \renewcommand{\headfont}{\itshape} \renewcommand{\chaptermarkformat}{第 \thechapter\ 章\hspace{1zw}} \pagestyle{custom} としてやればお望みの結果が得られます。\headmark で自動的に章・節タイトル が、\pagemark で自動的にページ番号が置きかえられます。また、 LaTeX の汎用コマンド \renewcommand を用いて、デフォルトの \headfont, \chaptermarkformat 等も自由自在に変えられます。他にも例えばページ番号に用い られるフォントは \pnumfont でデフォルト指定されていますので、これが 気に入らない場合は \renewcommand{\pnumfont}{\normalfont\rmfamily\slshape} などとしてこれを変更することが出来ます。 [註:] 1. 一般的に各章の始めでは plain ページスタイルが自動的に読み込まれます。 カスタマイズされたページスタイルとこの plain が調和しない場合は、 plain を \renewcommand で再定義しておく必要があります。例えば \renewpagestyle{plain}{(0mm,0pt)% {\hfill}{\hfill}{\hfill}% (0mm,0pt)}% {(0mm,0pt)% {\hfill}{\hfill}{\hfill}% (0mm,0pt)} としておきますと、(洋書の場合によく見られる)「ヘッダ・フッタとも何も 出力されない」スタイルとなります。ただし、この場合でもページ番号は きちんとカウントされています。 2. scrpage を強くお勧めしているわけでは「決してありません」。fancyhdr に 満足できない場合の対案と見なしてください。 3. scrpage はじめ KOMA-Script は「日本語環境」を考慮して作成されている わけではありません。j(s)*.cls と併用する場合、予期せぬ不具合が起こること も十分考えられます。 4. 欧文(特にアメリカ英語以外)のみの処理が問題となる場合、KOMA-Script の提供する scrartcl.cls (article.cls の代替), scrreprt (report), scrbook (book), scrlettr (letter) はお勧めのオールターナティヴです。

この書き込みへの返事:

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