質問: 度々すみません。 XSL-FOでページの制御を行いたいと考えています。 CSS組版よりXSL-FO組版が有利な点として、ページ制御があると知って興味がわきました。 * 改ページの制御はどのように行いますか? * 特定のオーサリングで改ページする場合、どのような方法が想定されますか? * ページ数を減らすように調整するにはどのような方法がありますか? よろしくお願いいたします。
回答: > > ・改ページの制御はどのように行いますか? > > > 改ページ指定は、break-after, break-before, keep-together,keep-with-next, keep-with-previousといった属性を指定することで制御できます. これらは、CSS3-Multicolでも定義されていますが、keep-with-next, keep-with-previous についてはサポートされていません. > > ・特定のオーサリングで改ページする場合、どのような方法が想定されますか? > > > "例えば表を書いた後には改ページするようにする" という指定をしたい場合、fo:table要素にbreak-after="page"と指定すると、表を出力した後に改ページします. > > ・ページ数を減らすように調整するにはどのような方法がありますか? > > > XSL-FOでは、コンテンツをページに流し込んでいきますので、データの編集により内容が増減すると、配置されるページが変わってきます.従ってあまり改ページ制御の指定を多用すると、かえってページ数が増えてしまう場合もあり得ます. 改ページによる制御ではありませんが、ページ数を減らすために、本文を二段組で出力したり、float要素により画像をフロート出力して本文を回り込ませたりすることで、ページ数を調整することがあります.