jbook クラスにおける左右のヘッダー交換

名前: 山下
日時: 2006-03-21 13:24:21
IPアドレス: 202.250.160.*

こんにちは >>34648で duke さんが質問し,>>34662でトニイさんが回答した問題に類似したことを尋ねさせて頂きたいと思います. 私も duke さん同様,jbook クラスで, 「各章の先頭ページが,本を見開いたときの左側ページとなるようにしたい」 と考え,トニイさんのアドバイスを参考に jbook.cls をいじり,この目標は達成できました. つまり,奇数ページが見開きの左ページになるように変更したのです(oddhead と evenhead の中身を入れ替えただけですが). さて,私は更に 「目次(\tableofcontents)だけは奇数ページが右ページになるようにしたい」 と考えております.すなわち, 左    右 目次 i 目次 ii 目次 iii (目次が終わればページカウンタをリセットして) 本文 1 本文 2 本文 3 本文 4 のようなページ構成にしたいのです.無論,左ページのヘッダーはページの左上, 右ページのヘッダーはページの右上に出したいと考えています. そのため,ヘッダーを入れ替えることに成功したクラスファイルの該当部を抜き出し, test2.tex と命名し(長いので紹介は末尾に回します),次のような test.tex を作成してみました. (実際はページ数を水増しするため章の数を20くらいにし,各章にどうでもいいような文章を入れています) \documentclass[a4paper,10pt]{jbook} \begin{document} \setcounter{page}{1} \renewcommand{\thepage}{\roman{page}} \tableofcontents \makeatletter \input{test2} \makeatother \clearpage \setcounter{page}{1} \renewcommand{\thepage}{\arabic{page}} \chapter{テスト章1} \chapter{テスト章2} \end{document} 結果として,全体を通して右ページが奇数になっており,私の希望とは異なります. 要するに,test2.tex でヘッダーの左右を入れ替えたつもりなのに,それに失敗していた ということです. 何が悪いのか,お分かりの方はお教え下さい. あるいはまったく別の方法でも,こうすれば成功する,という方法があれば, アドバイスをお願い致します. 最後に,以下が test2.tex の中身です. \def\ps@plain{\let\@mkboth\@gobbletwo \let\ps@jpl@in\ps@plain \let\@oddhead\@empty \def\@oddfoot{\reset@font\hfil\thepage\hfil}% \let\@evenhead\@empty \let\@evenfoot\@oddfoot} \let\ps@jpl@in\ps@plain \def\ps@headnombre{\let\@mkboth\@gobbletwo \let\ps@jpl@in\ps@headnombre \def\@evenhead{\hfil\thepage}% \def\@oddhead{\thepage\hfil}% \let\@oddfoot\@empty\let\@evenfoot\@empty} \def\ps@footnombre{\let\@mkboth\@gobbletwo \let\ps@jpl@in\ps@footnombre \def\@evenfoot{\hfil\thepage}% \def\@oddfoot{\thepage\hfil}% \let\@oddhead\@empty\let\@evenhead\@empty} \if@twoside \def\ps@headings{\let\ps@jpl@in\ps@headnombre \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@oddhead{\thepage\hfil{\rightmark}\hfil}% \def\@evenhead{\hfil{\leftmark}\hfil\thepage}% \let\@mkboth\markboth \def\chaptermark##1{\markboth{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \@chapapp\thechapter\@chappos\hskip1zw \fi \fi ##1}{}}% \def\sectionmark##1{\markright{% \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi ##1}}% } \else % if not twoside \def\ps@headings{\let\ps@jpl@in\ps@headnombre \let\@oddfoot\@empty \def\@oddhead{\thepage\hfil{\rightmark}\hfil}% \let\@mkboth\markboth \def\chaptermark##1{\markright{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \@chapapp\thechapter\@chappos\hskip1zw \fi \fi ##1}}% } \fi \if@twoside \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre \def\@evenhead{\hfil{\leftmark}\hfil}% left page \def\@evenfoot{\hfil\thepage}% left page \def\@oddhead{\hfil{\rightmark}\hfil}% right page \def\@oddfoot{\thepage\hfil}% right page \let\@mkboth\markboth \def\chaptermark##1{\markboth{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \@chapapp\thechapter\@chappos\hskip1zw \fi \fi ##1}{}}% \def\sectionmark##1{\markright{% \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi ##1}}% } \else % if one column \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre \def\@oddhead{\hfil{\rightmark}\hfil}% \def\@oddfoot{\thepage\hfil}% \let\@mkboth\markboth \def\chaptermark##1{\markright{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \@chapapp\thechapter\@chappos\hskip1zw \fi \fi ##1}}% } \fi \def\ps@myheadings{\let\ps@jpl@in\ps@plain% \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@oddhead{\thepage\hfil{\rightmark}\hfil}% \def\@evenhead{\hfil{\leftmark}\hfil\thepage}% \let\@mkboth\@gobbletwo \let\chaptermark\@gobble \let\sectionmark\@gobble }

この書き込みへの返事:

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