書籍の中には奇数ページ(または偶数ページ)だけ別デザインのレイアウトの場合があります。図表を奇数ページにまとめて、本文中には入れないといったデザインです。
LaTeXで強制的にページすると、当たり前ですが本文を修正するとズレていってしまいます。今回のマクロは奇数ページを専用のフロート環境にして、何とか実現しようとしたものです。
新規のフロート環境は2のn乗の番号がふられます。デフォルトのフロートはたいていfigure (2^0), table(2^1)だけですから、2^2を使うことにしました。
奇数ページ用に専用の垂直ボックスを用意しました。こうすれば奇数ページの中身が多すぎてもそのページの下にはみ出すだけなので、後のページに影響を与えません。
これの残念なところは、本文の変更によってOddPage環境を挿入する場所を調整しないとズレてしまうところです。うまい位置を決める試行錯誤が必要になって、それはそれで無駄な時間が費やされてしまいます。
まぁ、これはフロートの性質なのでしかたないのですが面倒です。
\documentclass{jbook}
\makeatletter
% 奇数ページ専用の\vboxを定義
\newbox\Oddpage@box
% 専用ボックスの高さ
\newdimen\Oddpage@ht
% figure(2^0),table(2^1)に続く3つめのフロートとして定義
\def\ftype@Oddpage{4} % 2^n
\newenvironment{OddPage}
{\Oddpage@ht=.99\textheight % 100%でもページ収まるけど、念のため小さく設定
\setbox\Oddpage@box=\vbox\bgroup} % 奇数ページ用のボックス開始
{\egroup % 奇数ページ用ボックスを閉じる
\@float{Oddpage}
\vbox to \Oddpage@ht{% 新たにvboxを作ってから
% 仕事では罫線などを入れることが多い
% \rlap{\includegraphics{keisenTop.eps}}%
\box\Oddpage@box % 奇数ページ用ボックスの中身を出力
% \rlap{\includegraphics{keisenBot.eps}}%
\vfill}%
\end@float}
\makeatother
\begin{document}
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
...省略...
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□■
\begin{OddPage}
奇数ページです。\par
△△△
...省略...
△△△
はみ出してもOK
\end{OddPage}
●□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
...省略...
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□▼▲□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
...省略...
\end{document}
コメント