名前: . 日時: 2008-02-08 01:35:35 IPアドレス: 59.134.169.*
>>50888 まず,次の例を検討してください. この文書をタイプセットした結果は,右ページだけが連続して並んでいます. マージンをよく見てください.ページ番号を変更した結果, 途中にあるはずの左ページが抜けたかのような出力になります. # あなたが先に騒いでいらしたのは,この例と本質的には変わらないものを眺めた # 結果だったのではなかったのですか? \documentclass[openany]{jbook} \textwidth=.8\paperwidth %%% 左右を明確にしておきます. %%% ノド側マージン:紙幅の 3/20 %%% 小口側マージン:紙幅の 1/20 \oddsidemargin=.15\paperwidth \advance\oddsidemargin-1in \evensidemargin=.05\paperwidth \advance\evensidemargin-1in \def\Text{これは,意味のないサンプルテキストです.} \def\TEXT{\Text\Text\Text\Text\Text\Text\Text\Text\Text\Text} \def\LongText{\TEXT\TEXT\TEXT\TEXT\TEXT\par} \begin{document} \pagenumbering{roman} \chapter*{前置き} \LongText \chapter{サンプル} \pagenumbering{arabic} \LongText \end{document} 次に,偶数ページ起こしの件については(あなたの腹の中にあることなど 存じませんので外しているでしょうけれども)次の例を検討するとどうでしょうか. \documentclass{jbook} \textwidth=.8\paperwidth %%% 左右を明確にしておきます. %%% ノド側マージン:紙幅の 3/20 %%% 小口側マージン:紙幅の 1/20 \oddsidemargin=.15\paperwidth \advance\oddsidemargin-1in \evensidemargin=.05\paperwidth \advance\evensidemargin-1in \def\Text{これは,意味のないサンプルテキストです.} \def\TEXT{\Text\Text\Text\Text\Text\Text\Text\Text\Text\Text} \def\LongText{\TEXT\TEXT\TEXT\TEXT\TEXT\par} \makeatletter \newif\if@openleft \@openlefttrue %%% ``openleft'' \def\altcleardoublepage{% \clearpage \if@twoside \ifodd\c@page \hbox{}\thispagestyle{empty}\newpage \if@twocolumn\hbox{}\newpage\fi \fi \fi} \def\part{% \if@openleft \altcleardoublepage \else \if@openright \cleardoublepage \else \clearpage \fi \fi %%% \if@openright \cleardoublepage \else \clearpage \fi \thispagestyle{empty}% \if@twocolumn\onecolumn\@tempswatrue\else\@tempswafalse\fi \null\vfil \secdef\@part\@spart} \def\chapter{% \if@openleft \altcleardoublepage \else \if@openright \cleardoublepage \else \clearpage \fi \fi %%% \if@openright\cleardoublepage\else\clearpage\fi \thispagestyle{jpl@in}% \global\@topnum\z@ \@afterindenttrue \secdef\@chapter\@schapter} \def\frontmatter{% \cleardoublepage%%% 右ページが連続することを避けたいなら(``openany'' で %%% あったとしても)単に \cleardoublepage で構いません. %%% (see book.cls) \@mainmatterfalse \pagenumbering{roman}} \def\mainmatter{% \cleardoublepage \@mainmattertrue \pagenumbering{arabic}} \makeatother \begin{document} \frontmatter \tableofcontents \mainmatter %%% (*) の記述を入れて目次が iii ページで終わるようにすると, %%% 空白ページが 2 ページ入りますが,そうしないと「1 ページ」が %%% 行方不明となります. %%% (*) の記述を入れない場合は目次が ii ページで終わり, %%% その次が「1 ページ」(白紙)となります. %%% ``openleft'' 時に「1 ページ」が行方不明になってもいい(いきなり %%% 「2 ページ」でもいい)というのであれば,\mainmatter を次のように %%% 変更すればどうにかなるでしょう(が,変な処理です). %%% \def\mainmatter{% %%% \clearpage %%% \def\thepage{\@arabic\c@page}% %%% \if@openleft %%% \ifodd\c@page %%% \setcounter{page}{1}% %%% \altcleardoublepage %%% \else %%% \setcounter{page}{2}% %%% \fi %%% \else %%% \cleardoublepage %%% \setcounter{page}{1}% %%% \fi %%% \@mainmattertrue} \chapter{サンプル文書} \LongText \addtocontents{toc}{\protect\newpage}%%% (*) \chapter{サンプル文書2} \LongText \end{document} 「通算ページ」に関しては,出力ルーチンなりページスタイルなりに 通算ページを数える処理を仕込めばどうとでもなります. # この掲示板で以前話したと思いますが……今回の件では # そのようなものを使うまでもないので(現在のページが左右どちらであるかに # 応じて必要な白紙ページを補い忘れないようにすればよいわけですから), # 深入りしません.
この書き込みへの返事: