review
review copied to clipboard
出来上がったPDFが常に奇数ページになってしまう
3.0系でreview-jsbookを使ってます。
常にできあがりのPDFが奇数ページになってしまいます。
奥付がつくためなのだと思いますが、全体で奇数ページになるのはなんとかならないでしょうか?
ちなみに、索引は4ページ分になります。
その奥付うんぬんの仕様は Re:VIEW の都合上だと思いますが、 最終ページが常に偶数で終わる(つまり、組んで奇数ページで終わるなら、白ページを足して偶数ページで終わる)ようにすることは、LaTeX側で自動的に対処可能です。
例えば、以下の \oneblankpage
ようなコマンド
\newcommand\oneblankpage{\clearpage\thispagestyle{empty}%
\hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi}
を入れておいて、以下相当の処理を \end{document}
時(もしくは、その直前)で実行するようにしておけばよいと思います。
\ifodd\c@page\oneblankpage\fi
Re:VIEWでどのような仕様にしておくべきかは、 @kmuto さんに相談した上で、上記相当の処理を仕込むことにいたします。
ページを揃えるのはユーザーの責任のほうで、もし白ページを入れる場合に奥付の前に入れるのか後に入れるのかというのは判断の分かれるところですね。裏表紙も付けられるようになっているので、一概にコレとは決めづらい。 (究極的には某クラスみたいに各項目ごとの改ページleft,right,pageオプションを入れるか、ということになりそうですが、jsbookのほうにまだそんなに注力すべきかというところもあり…)
その前の内容(たとえば索引)が偶数で終わった場合、奥付前の奇数ページに白を入れて揃えるということであれば、ほとんどmunepiさんの書いたとおりではありますが、 review-custom.styに
\renewcommand{\reviewcolophon}{\ifodd\c@page\thispagestyle{empty}\mbox{}\clearpage\fi}
としておく、でしょうか。
ただ、indexがなくてchapterのときだけだと、chapterの\cleardoublepageとの絡みで白が2つできますね…。
けっこう難しいところですね。
私の本だと索引付けるのでひとまずは @kmuto さんの対応方法で対応したいと思います。
ちなみに、この問題はjlreqだと起こるのでしょうか?
tex, jsbook.cls, jlreq.clsいずれも「奥付」という要素は考慮されておらず、今の奥付要素はあくまでもRe:VIEWが「とりあえず作っておいた」紙面の1つにすぎません。jlreq.clsでも同様に奇数のままになるはずです。製本についての考え方も同様で、「偶数にそろえる」ということ自体が(4の倍数にするなどと同様に)製本固有のことであり、JLREQ仕様でも何ら定義はありません。
技術的には、要所要所で奇数偶数に揃えるということについてはcolophon:break-before=left
のようなフラグを導入するなどして、奇数偶数の判断をして改ページを入れていくということ自体は可能です(現時点ではまだそういうものは入れていません)。
- ただ、そういう調整を仕込もうとすると、jsbookにパッチを入れまくったものになり、むしろ新規にクラスを起こすほうがコストが安くなりそうです。そもそもjsbookから離れようという目標があるのにさらに関係を深めてしまうのはどうなのか。なお、クラスについては、調整も新規に起こすのも、これ以上は(すでにという話もありますが)プロの仕事として適切な対価を支払い、それをプロジェクトが買い取って広く使う、とするほうが妥当に思っています。
- 偶数で合わせようとするとするときに、「必ずこうである」という定義が存在しません。業務での経験だけでも以下のようなバリエーションがあります。
- 奥付前の奇数ページに白を入れる
- 奥付後の偶数ページに何か(白や広告など)を入れる
- そもそも奇数ページの白は禁止なので何か埋める(たとえば索引を追加する、著者紹介を入れる、挿絵を入れる)
- そもそも全体に白ページの存在は禁止なのでコンテンツを調整して埋める
ひとまず #1175 で「便利な命令」を追加してみます。
ページ繰りについて「こうあるべきである」というのはRe:VIEW自体では決めたくないので、
- 決めうち(たとえば奥付は偶数で裏表紙などは入らない)にしやすいであろうサードパーティスタイルのほうで、この便利なマクロを使って適宜ページ調整をしておいてもらう
- 「このマクロをこうすればいい、こう書き換えればいい」という情報を出していく
ということで対応するほうが妥当かなと考えています。