AH Formatter / XSL Formatter
Q&A



XSLT/XSL-FO/SVG/MathML 仕様について

XSL-FO

トップ
基本・一般
AH Formatter について
XSL Formatter について
操作方法
プログラミング
XSLT/XSL-FO/SVG/MathML 仕様について
XSLT/XSL-FO/MathML テクニック
索引
Q.  ページの始めのblockで space-before="2.0in" を指定したのですが、有効になりません。なぜですか。 [No.2002102507]
A. 

例えば次のFOのとき、space-before="2.0in" は有効になりません。

<fo:flow>
  <fo:block space-before="2.0in">
  AAAAAAAA
  </fo:block>
</fo:flow>

参照エリア、行エリアの先頭と最後のspaceの conditionality は "discard" がデフォルトです。 したがって、参照エリアの始めの block で space-before="2.0in"を指定しても、space-before.conditionality="discard" によって無効になります。

また、次の例でも同じです。

<fo:flow>
  <fo:block>
    <fo:block space-before="2.0in">
    AAAAAAAA
    </fo:block>
  </fo:block>
</fo:flow>

親のblockに discard の対象となる space や border/padding がない場合、子の最初のblockに条件が当てはまり、space-before.conditionality="discard"となるので、子のblockに設定されているspace-before="2.0in"は無効になります。

よって、space-beforeを有効にしたいときは、次のようにspace conditionalityを"retain"にする必要があります。

<fo:flow>
  <fo:block space-before="2.0in" space-before.conditionality="retain">
  AAAAAAAA
  </fo:block>
</fo:flow>

Copyright © 1999-2011 Antenna House, Inc. All rights reserved.
Antenna House is a trademark of Antenna House, Inc.