jlreqのbookオプションでのヘッダの編集について

Re: jlreqのbookオプションでのヘッダの編集について

- m d の投稿
返信数: 1

和田勇 様

迅速な回答をいただきありがとうございます。

jlreq_QA_main-2.texの \CHAPTER のマクロで、本文中(\mainmatter)では希望通りのヘッダが作成できました。

また、デバッグ用のコマンドも大変助かりました。

しかし、それ以外の目次(\tableofcontents)や付録(\appendix)ではいくつか問題が残っています。

目次

1ページ目のヘッダをページ番号のみ(つまりfirst)、2ページ目以降を「目次」「ページ番号」としたいが、\thispagestyle{first}\tableofcontents直後に入れると当然目次の2ページ目に適用されてしまいます。

これを解消するには\tableofcontentsをマクロで書き換える必要がありそうな気がしますが、私の知識では解決できませんでした。

付録

\mainmatterとそれ以外では動作が違うようなので、mybookからmarkformatのみを変えたAppbookを作成しましたが、1ページ目はfirst、2ページ目はApbookが適用されたようなのですが、付録の最終ページだけページ番号しか出力されません。

\NewPageStyle{Appbook}{%
  %odd_head_format={\makebox[\jlreqyokoheadlength]{#1}},
  nombre_position = top-right,%
  running_head_position = top-left,%
  odd_running_head = _section,%
  even_running_head = _chapter,%
  mark_format = {_chapter={付録 \thechapter \quad #1}},%
  odd_head_format={\underline{\makebox[\jlreqyokoheadlength]{#1 odd}}},%% ⇦【デバッグ用、どこからヘッダーが生成されているか確認用デバッグコード挿入】
  even_head_format={\underline{\makebox[\jlreqyokoheadlength]{#1 even}}}%% ⇦【デバッグ用、どこからヘッダーが生成されているか確認用デバッグコード挿入】
}

以上の2点について解決案があればご教授願います。

また、少し関係のない質問ですが、今回の質問のようにjlreq+bookでヘッダを編集する方法は、一般的なのでしょうか。今回ご提案いただいた方法が最善なのか、またほかの最適な方法があるのか、もしご存じでしたら教えていただけると幸いです。

いただいたコードを再編集した最新版のtexファイルを添付いたします。

以上よろしくお願いいたします。

m d への返信

Re: jlreqのbookオプションでのヘッダの編集について

- 和田 勇 の投稿

Table of Contents

  1. 問題点
  2. 改修内容
  3. その他
  4. 新規質問(jlreq 風?機能の編集方法)

問題点

  • 目次のページヘッダー

    1ページ目のヘッダをページ番号のみ(つまりfirst)、2ページ目以降を 「目次」「ページ番号」としたいが、\thispagestyle{first}を \tableofcontents直後に入れると当然目次の2ページ目に適用されてしまい ます。

    \tableofcontents マクロの中で「目次」のタイトルを組版したあたりで \thispagestyle{firsrt} を発行するようマクロを改修しなければならない のでちょっと大変です。

    この問題は、 目次 だけでなく 表目次 図目次 でも 同様な症状になると思います。

    とはいえ …

    これを解消するには\tableofcontentsをマクロで書き換える必要がありそう な気がしますが、私の知識では解決できませんでした。

    これに関しては、 現在苦戦中です。一案として、目次部分のカスタマイズ を目的として組み込まれた \def\l@section で調整できないか検討中です。

  • 付録

    \mainmatterとそれ以外では動作が違うようなので、mybookからmarkformat のみを変えたAppbookを作成しましたが、1ページ目はfirst、2ページ目は Apbookが適用されたようなのですが、付録の最終ページだけページ番号しか 出力されません。

    • 付録の最終ページだけページ番号しか出力されません

      • \backmatter を活性化することで対応可
        • ページ組み立て中に次の情報が入ってきたため、その影響かと思います
        • \clearpage あるいは \cleardoublepage を発行し、出力してしまえば良いと思います
        • \backmatter は上記の動きもふくまれているようなので、それを活性化で対応しました
    • mybook のデザインと類似した Apbook の登録について

      • 二つのページデザインは以下のように定義し直した headings を利用することで 統一可能

        \ModifyPageStyle{headings}{
          nombre_position       = top-right,%
          running_head_position = top-left,%
          odd_head_format       = {\hss\underline{\makebox[\jlreqyokoheadlength][s]{#1}}\hss},%
          even_head_format      = {\hss\underline{\makebox[\jlreqyokoheadlength][s]{#1}}\hss},%
        }
        

改修内容

上記のページスタイルの headings への移行の他、不足していた参考文献の 部分が複数ページになる場合の検証ができるよう、またこまかな改修をしました。

ただし、図目次や表目次に関しては、複数ページになるデータは用意してありません。

  • jlreq_QA_main-2_v2.tex ⇨ jlreq_QA_main-3.tex(添付ファイル参照)
    • mybook Apbook を統合した内容を headings をに組み込む(以下の記述が不要になる)
      • mark_format = {_chapter={第 \thechapter 章 \quad #1}},%
      • mark_format = {_chapter={付録 \thechapter \quad #1}},%
    • mybook Apbook の定義削除
    • \CHAPTER マクロ定義をプリアンブルに移動
    • refbook ページスタイル定義は残しておく
    • プリアンブルでの \pagestyle は行わず、frontmatter mainmatter でそれぞれで行う
    • \l@chapter の定義用を明確化するため \makeatter 記述行を調整
    • titlepage と cover.tex を見比べ、若干のページ長の変化にも対応できるよう \vspace から \vfill に変更しておいた
    • \frontmatter でのページスタイルを headings に変更
    • 参考文献が複数ページの場合のチェック用データ追記
    • 図目次および表目次の活性化
    • \mainmatter 部分
      • ページスタイルを headings に変更
      • \chapter{}\thispagestyle{first}\CHAPTER マクロ利用するよう変更
      • デバッグしやすいよう mainmatter の文字を適宜挿入
    • \appendix 部分
      • デバッグしやすいよう appendix の文字を適宜挿入
    • \backmatter 部分
      • \backmatter の活性化
      • ページスタイルは refbook のまま
  • myrefs.bib(添付ファイル参照)
    • 参考文献用テストデータ追加

その他

  • \CHAPTER マクロにするか \chapter のままにするか
    • 本番のソースがまだ小文字の \chaper のままだったら …
      • 目次部分の見栄えのための \l@chapter の再定義部分に \thispagestyle{first} を追加するだけで、本番のソースを変更する 必要がなくなります

新規質問(jlreq 風?機能の編集方法)

  • jlreq+bookでヘッダを編集は一般的?

    今回の質問のようにjlreq+bookでヘッダを編集する方法は、一般的なのでしょうか。

    標準なものでは飽き足らないという要望は少なからずあると思います。 これは jlreq 固有の問題ではなく、様々な documentclass でも同じです。

    • n / m のような総ページ数 m と現ページ番号 n を表示したい
    • – n -- とか Page n とかにしたいとか
    • ページ番号の表示位置を変えたい
    • ページ番号を丸や四角枠で囲いたい
    • カラーリングしたい
    • アンダーラインを引きたい
    • ヘッダーを四角枠で囲いたい、それを立体的に見えるよう影をつけたい…
    • ページ全体を、単純な枠線や額縁のようなデザインで囲いたい

    jlreq は、色々な機能が標準的に組み込まれています。また機能の一部を 変更して利用できる \ModifyXXX という仕組みも整備されています。

    ということでどちらかというと \ModifyPageStyle で対応できるものは \ModifyPageStyle での編集も検討してください。

    また、本スレッドの別スレッドで阿部さんが紹介している \jlreqsetup でも対応するばあいもあります。

  • 今回ご提案いただいた方法が最善なのか、またほかの最適な方法があるか?

    jlreq_QA_main-2.tex は、かなりバッサリと削除しましたが、できるだけ原 作者の意向を残す方向での回答でした。

    バッサリと削除した部分は、 \chapter の最初のページの時の判定方法に誤 りがありましたので、替わりに同等の機能を実装させるため \chapter の直 後に \thispagestyle{first} を組み込んだらどうでしょうかという提案で すので。

    jlreq_QA_main-2_v2.tex では、さらに類似のスタイルファイルを定義され ていたので、標準の headings を使われては如何でしょうかというのが添 付した jlreq_QA_main-3.tex でもあります。

    jlreq_QA_main-2_v2.tex のソースをできるだけ利用して mybook 一本で対 応する方法もありますが、jlreq 標準の headings\ModifyPageStyle で対応する方法をあえて紹介しました。