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-label と list-item-body は、それぞれの内容の before-edge で位置が揃えられます。baseline-shift="super" が含まれる line-area は、その分だけ高さが高くなっていて、line-area の baseline 位置は下がっています。

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-label と list-item-body の baseline 位置を揃えることができます。


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