AH Formatter / XSL Formatter
Q&A



XSLT/XSL-FO/MathML テクニック

インライン

トップ
基本・一般
AH Formatter について
XSL Formatter について
操作方法
プログラミング
XSLT/XSL-FO/SVG/MathML 仕様について
XSLT/XSL-FO/MathML テクニック
索引
Q.  fo:list-item-label内で baseline-shift="super" を使いました。このとき、"Label" だけではなく "Body" も上付き文字になってしまいます。 [No.2005070803]
A. 

FOは以下のようになっていました。

<fo:list-item>
  <fo:list-item-label ...>
    <fo:block><fo:inline baseline-shift="super">Label</fo:inline>:</fo:block>
  </fo:list-item-label>
  <fo:list-item-body ...><fo:block>Body</fo:block></fo:list-item-body>
</fo:list-item>

これは W3CのXSL-FO仕様の勧告どおりの動作です。

以下のとおり relative-align の初期値が before ですので、list-item-labellist-item-body は、それぞれの内容の before-edge で位置が揃えられます。baseline-shift="super" が含まれる line-area は、その分だけ高さが高くなっていて、line-areabaseline 位置は下がっています。

7.13.6 "relative-align"

XSL Definition:

Value: before | baseline | inherit
Initial: before
Applies to: fo:list-item, fo:table-cell
Inherited: yes

relative-align="baseline"fo:list-item に指定すれば、list-item-labellist-item-bodybaseline 位置を揃えることができます。


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