質問: XSL-FOで柱やノンブルの位置をページごとに変更したいと考えています。 XSL-FOではどのように記述すればページごとにレイアウトを変更することができるでしょうか? 例えば、奇数ページは柱やノンブルを左寄せ、偶数ページは右寄せにできればと思います。
回答: XSL-FOでは、各ページのレイアウトの設定は、fo:layout-master-set で行います. この中で、左ページ用のレイアウト、右ページ用レイアウトを、fo:simple-page-master で定義します. 例えば以下のようになります. ``` : : ``` このように定義したレイアウトをどのように配置するかを、 fo:page-sequence-master で設定します. 例えば以下のようになります. ``` ``` この fo:conditional-page-master-reference の odd-or-evenに "even"を指定すると偶数ページに、 "odd"を指定すると奇数ページに、それぞれ指定された master-reference のレイアウトが適用されます. > > 例えば、奇数ページは柱やノンブルを左寄せ、偶数ページは右寄せにできればと思います。 > > > 一般的に、柱やノンブルのような各ページに共通するような内容は、ページのヘッダやフッタに配置します. 前述の方法で奇数ページ、偶数ページの切り替えはできるようになりますので、それぞれのページのfo:simple-page-masterの中で定義したヘッダ、フッタの領域の出力時に 右寄せ、左寄せなどを指定します. 例えば、 ``` : ``` とノンブルに text-align="end"と指定すれば、end側に揃えられます.