AH Formatter / XSL Formatter
Q&A



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

拡張機能

トップ
基本・一般
AH Formatter について
XSL Formatter について
操作方法
プログラミング
XSLT/XSL-FO/SVG/MathML 仕様について
XSLT/XSL-FO/MathML テクニック
索引
Q.  索引ページでaxf:suppress-duplicate-page-number="true"を使って重複したページ番号を削除しました。しかし、リーダの後ろ(ページ番号の手前)で改行されてしまいます。 [No.2007042702]
A. 

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

<fo:block axf:suppress-duplicate-page-number="true" text-align-last="justify">Antenna<fo:inline>
		<fo:leader font-weight="normal" leader-length.optimum="0pt" leader-pattern="dots"/>
		<fo:basic-link internal-destination="IDX_N10027">
			<fo:page-number-citation ref-id="IDX_N10027"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N10030">
			<fo:page-number-citation ref-id="IDX_N10030"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N10039">
			<fo:page-number-citation ref-id="IDX_N10039"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N10042">
			<fo:page-number-citation ref-id="IDX_N10042"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N1004B">
			<fo:page-number-citation ref-id="IDX_N1004B"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N10054">
			<fo:page-number-citation ref-id="IDX_N10054"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N1005D">
			<fo:page-number-citation ref-id="IDX_N1005D"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N10066">
			<fo:page-number-citation ref-id="IDX_N10066"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N1006F">
			<fo:page-number-citation ref-id="IDX_N1006F"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N10078">
			<fo:page-number-citation ref-id="IDX_N10078"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N10081">
			<fo:page-number-citation ref-id="IDX_N10081"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N1008A">
			<fo:page-number-citation ref-id="IDX_N1008A"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N10093">
			<fo:page-number-citation ref-id="IDX_N10093"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N1009C">
			<fo:page-number-citation ref-id="IDX_N1009C"/>
		</fo:basic-link>, <fo:basic-link internal-destination="IDX_N100A5">
			<fo:page-number-citation ref-id="IDX_N100A5"/>
		</fo:basic-link>
	</fo:inline>
</fo:block>

このFOではfo:page-number-citationの参照先IDが15個指定されていました。さらに、索引ページが前にあり、参照する項目は索引より後ろのページに存在していました。

参照する参照先のページ番号が全て同じページ番号だった場合、表示されるページ番号は1つですが、索引が前にあるような場合、fo:page-number-citationは未解決のまま組版され、改行位置が決まってしまいます。axf:suppress-duplicate-page-number="true" を指定していても、その時点では 同じページ番号になるのかどうかわからないので、ひとつにまとめることができません。本文の組版をして、未解決のページ番号が解決してから、同じ番号をまとめるこ とになります。このとき改行位置を直すことはしません。

これは、XSL Formatterの制限事項です。

解決方法は、索引を巻末に移動させるか、2パス組版を行うことです。2パス組版は例えば、以下のように指定します。

xslcmd -d test.fo -o test.pdf -2pass

2パス組版についてはオンラインマニュアル「コマンドラインインターフェイス」の-2passを参照してください。


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