以前の版との組版上の相違
Antenna House Formatter V7.2 との相違
Antenna House Formatter V7.3 と Antenna House Formatter V7.2 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- text-autospace-mode
<fo:inline> 前後で axf:text-autospace の指定が異なるとき、両側に和欧文間のアキを適用するようになりました。 以前と同様に片側だけにするには、オプション設定ファイルの text-autospace-mode を指定してください。
- html.css
HTML用デフォルトCSS(html.css)の記述に変更があります。
- ::marker の指定で空白の扱いが若干変更されました。定義済みカウンタスタイルでの見た目の違いはほとんどないでしょう。 以前は でしたが、次のように修正されています。
- li[value] の指定が counter-reset から counter-set に変更されました。
- インラインのMathML前後に和欧文間空白が適用されるように次の指定が追加されました。 axf:text-treat-as を参照してください。
- list-style-type
list-style-type: "disc"; のように、値を文字列で指定したとき、その文字列そのものが表示されるようになりました。
- axf:baseline-grid
段組で span="all" の後の axf:baseline-grid がずれることがありましたが、正しく組まれるようになりました。
- 単純なルビのBPIL適用
ルビが親文字よりも長くない単純なルビが含まれていてもBPILが適用できるようになりました。 ☞ 行分割
Antenna House Formatter V7.1 との相違
Antenna House Formatter V7.2 と Antenna House Formatter V7.1 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- CSS解釈の相違
以下の相違があります。
- 関数名と括弧の間に空白があると、正しく文法エラーになります。例えば、rgb (...) は文法違反です。
- CSSでは裸の式はプロパティに指定できません。例えば、 のような記述は文法違反です。正しくは、 としなければなりません。Antenna House Formatter V7.1 では calc() で囲まれていない裸の式をある程度許容していました。そのようにしたいときは、オプション設定ファイルで css-allow-bare-expression="true" を指定してください。
- :first-child や :only-of-type などの擬似クラスがルート要素にマッチするようになりました。Antenna House Formatter V7.1 のようにマッチしないようにしたいときは、オプション設定ファイルで css-child-match-root="false" を指定してください。
- <link>
HTMLの <link> で、titleの指定されたものが指定順のとおりに適用されないことがありましたが、指定順のとおりに適用されるようになりました。また、<link rel="alternate stylesheet"> で指定されたスタイルシートが適用されるようになりました。CSSの適用順序を参照してください。
Antenna House Formatter V7.0 との相違
Antenna House Formatter V7.1 と Antenna House Formatter V7.0 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- 画像サイズの%指定
(X)HTMLで、<img src="xxx" width="50%">としたときの%は画像のサイズが基準となります。 CSSで img { width:50% } としたときは親要素のサイズが基準となります。 しかし、Antenna House Formatter V7.0まではCSSの場合でも、以下のプロパティの%が画像のサイズを基準として計算されていました。
- width
- max-width
- min-width
- height
- max-height
- min-height
Antenna House Formatter V7.1ではこの誤りが訂正され、親要素のサイズを基準として計算されます。 もし、以前と同じように計算させたいときは、オプション設定ファイルで fix-css-img-percentage="false" を指定してください。 -ah-attr-img()も参照してください。
Antenna House Formatter V6.6 との相違
Antenna House Formatter V7.0 と Antenna House Formatter V6.6 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- 行分割
行分割処理が改良されました。行分割を参照してください。 また、Unicode の仕様変更により、行分割位置が変化することがあります。
- axf:suppress-if-first-on-page
axf:suppress-if-first-on-page の動作が改良されました。
- axf:suppress-if-first-on-page により削除されたブロックに続くブロックにも指定された axf:suppress-if-first-on-page が有効になりました。
- 段組エリア内で axf:suppress-if-first-on-page が有効になりました。
- axf:suppress-if-first-on-page により削除されたブロックに続くブロックに指定された space-before が無効になりました。
- ページ先頭の fo:table-row に fo:marker が指定されていたとき、それに続く fo:table-row に指定された axf:suppress-if-first-on-page が有効になりました。
- ::first-letter
CSS の ::first-letter擬似要素で文字を大きくしたような場合、line-height が明示されていないと行間が広がってしまうことがありました。Antenna House Formatter V7.0 では、::first-letterにline-heightが明示されていないときには不必要に行間が広がらないようになりました。
- zwsp-mode
zwsp-mode のデフォルト値が 6 に変更されました。
- hyphenation-keep-mode
hyphenation-keep="page" などで、ページ(段)末の単語がハイフネーションされているときの処理方法が改良されました。 オプション設定ファイルの hyphenation-keep-mode を参照してください。 V6と同様に組ませたいときは、hyphenation-keep-mode="line" と指定してください。
- white-space-collapse-mode
white-space-collapse は、<fo:inline> をまたいで適用するように実装されていますが、Antenna House Formatter V6.6 までは、無条件に適用していたので、<fo:inline> にボーダーがあるようなケースでも collapse されていました。Antenna House Formatter V7.0 では、以下の条件のときは collapse しないようになりました。
- <fo:inline> の境界に border や padding があるとき
- 間に幅指定のある <fo:inline> があるとき
V6と同様に組ませたいときは、オプション設定ファイルで white-space-collapse-mode="6" と指定してください。
- font-stretch-mode
font-stretch-mode="6" の動作が修正されました。
font-stretchにcondensedなどのキーワードを指定したとき、フォント選択にその情報を利用します。そして、例えば、extra-condensedを指定したとき、condensedフォントがあればそのフォントを元に圧縮が行われます。そのときの圧縮率は (62.5/75)% = 83.3% となります。ただし、選択候補の中にnormalフォントがない場合は 62.5% の圧縮率となります。 - マルチメディア埋め込みのポスター画像
Antenna House Formatter V7.0 では、マルチメディアの埋め込み時に axf:poster-image が指定されていたら、その画像サイズを使用するようになりました。Antenna House Formatter V6.6 までと同じように動作させるには、scaling="non-uniform" content-width="scale-to-fit" content-height="scale-to-fit" を <fo:external-graphic> に指定してください。
- BIDI
UAX #9: Unicode Bidirectional Algorithm のリビジョン41に対応しました。V6と同様のアルゴリズムで処理したい場合は、unicode-bidi-rev で37未満の値を設定してください。37以上の値は41とみなされます。 ☞ BIDIアルゴリズムの実装上の制限
Antenna House Formatter V6.5 との相違
Antenna House Formatter V6.6 と Antenna House Formatter V6.5 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- html.css
HTML用デフォルトCSS(html.css)の記述に変更があります。
- li::marker {...} が ::marker {...} と変更されました。これにより、<li> 以外の list-item のマーカにもこのスタイルが適用されます。 そのため、-ah-margin-end:0.5em; によって今までと違うマージンが付くようになります。必要なら -ah-margin-end:0; などを指定するようにしてください。
- *[hidden] { visibility: hidden } が追加されました。
- -ah-force-page-count
CSSで
のように書くと、Antenna House Formatter V6.6 では、すべてのページの切り替え時に -ah-force-page-count が作用します。Antenna House Formatter V6.5 までと同じように最後のページにのみ作用させるには、最後に使うページセレクタのある @page に -ah-force-page-count を指定してください。
- リガチャの抑制
次の文字を挿入することで、リガチャが抑制されるようになりました。
- U+200B
- U+200C
- U+2060
- U+FEFF
- Math
ML デフォルトで、STIXバージョン2.0 のフォントがインストールされているときはそれが採用されるようになりました。
OpenType に MATHテーブルがあれば、それを参照するようになりました。オプション設定ファイルの enableOpenTypeMATH、exceptOpenTypeMATHVariants で細かく制御できます。
<mlongdiv> の線の太さが、mslinethickness の太さで描かれるようになりました。
行分割が起こったときの各行の高さが、それぞれの高さとなるようになりました。 Antenna House Formatter V6.5 までのように各行の高さが同一になるようにするには、オプション設定ファイルで、linebreakingHeightAdjust="false" を指定してください。
Antenna House Formatter V6.3 との相違
Antenna House Formatter V6.4 と Antenna House Formatter V6.3 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- Math
ML オプション設定ファイルの MathML に関する設定で、添え字の配置に関する初期値が若干修正されました。 Antenna House Formatter V6.3 の設定にするためには、mathmlSettingsMode="6.3" を指定してください。
Antenna House Formatter V6.2 との相違
Antenna House Formatter V6.3 と Antenna House Formatter V6.2 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- keep-footnote-anchor
Antenna House Formatter V6.2 では、アンカーを含むブロックが orphansなどの条件によって次のページに送られてしまい、脚注自身が前のページに配置されるということがまれに起こります。Antenna House Formatter V6.3 では、アンカーの後の分割可能な位置までを前のページに収めようとします。これは、元のブロックに axf:footnote-keep="always" を指定しても同じ効果を得ることができます。 Antenna House Formatter V6.2 までと同じように動作させるには、オプション設定ファイルで keep-footnote-anchor="false" を指定してください。
- list-style-type
list-style-type の実装が、定義済みカウンタスタイルを利用するように変更されました。以前の list-style-type にあって定義済みカウンタスタイルに含まれない名前は以下のとおりです。
- japanese-formal-obsolete
- urdu
- lower-norwegian
- upper-norwegian
- hangul
- hangul-consonant
- halfwidth-katakana
- halfwidth-katakana-iroha
以前の list-style-type と同じ名前であっても、定義済みカウンタスタイルの実装には若干の相違があります。
Antenna House Formatter V6.1 との相違
Antenna House Formatter V6.2 と Antenna House Formatter V6.1 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- latin-ligature / pair-kerning
オプション設定ファイルの、latin-ligature と pair-kerning のデフォルト値が変更されました。Antenna House Formatter V6.1 までは、これらのデフォルト値は false でしたが、Antenna House Formatter V6.2 では true に変更されました。これは、デフォルトでよりよい組版結果を得ることができるように、ということを意図しています。 FO中でそれらについて、axf:ligature-mode と axf:kerning-mode が明示的に指定されている場合は、組版結果に影響はありません。 また、これらの指定は組版速度に影響します。
-
ブロックの分割
CSSで、高さが auto のブロックが、例えばページ末で分割されたとき、Antenna House Formatter V6.1 までは、前のページでのそのブロックの高さは分割位置のままでした。Antenna House Formatter V6.2 では、ページ末までの高さに調整されます。これは、ブロックに背景やボーダーが指定されているときに違いが顕著です。段の末尾等でも同様です。 ☞ 5.3. Splitting Boxes
なお、FOには適用されません。
オプション設定ファイルで splitting-blocks-space="true" と指定することで、V6.1の動作に戻すことができます。 -
beforeフロートの回り込み
before側のフロートの幅が領域いっぱいで、テキストの回りこむ余地がないとき、intrusion-displace="auto" などでは、テキストはフロートをよけて配置されますがブロック自身はフロートに重なっていました。これは、ブロックに背景やボーダーを付けると確認できます。intrusion-displace="block" のときはブロック自身もフロートをよけて配置されます。Antenna House Formatter V6.2 では、intrusion-displace の指定によらずにブロック自身がフロートをよけて配置されるようになりました。
-
脚注の分割
Antenna House Formatter V6.1 までは、footnote-body内でページ分割(段分割)することはありませんでした。Antenna House Formatter V6.2では、footnote-body内での分割が可能です。脚注の分割は axf:footnote-max-height の指定によりますが、デフォルトでは分割が起こるため、Antenna House Formatter V6.1 と組版結果が異なることがあります。自動的な分割をしないようにするには、オプション設定ファイルで auto-break-footnote="false" を指定してください。
- BIDI
Antenna House Formatter V6.1 までは、BIDI 処理に問題があったことがわかっています。Antenna House Formatter V6.2 では BIDI 処理が修正されました。そのため、V6.1 までと組版結果が異なることがあります。
Antenna House Formatter V6.0 との相違
Antenna House Formatter V6.1 と Antenna House Formatter V6.0 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- normalize
Antenna House Formatter V6.1 では、入力されたテキストに対して Unicode の正規化処理(UAX#15: Unicode Normalization Forms)が行われるようになりました。 axf:normalize を参照してください。 正規化処理は、組版速度に多少影響します。 デフォルトでの正規化処理を行わないようにするには、オプション設定ファイルで normalize="none" を指定してください。
- font-stretch-mode
Antenna House Formatter V6.1 では、font-familyにファミリ名を指定したとき、font-stretch="condensed" などを考慮して、実際にcondensedフォントがある場合にそれを選択させることができるようになりました。 オプション設定ファイルで font-stretch-mode="6" を指定してください。 font-stretch-mode="5" と "6" の動作の違いは以下のとおりです。
- font-stretch-mode="5"
Antenna House Formatter V5 と同じ動作をします。フォント選択に、font-stretch の情報は利用されません。つまり、condensedフォントがファミリ内にあっても選択されません。condensedフォントを選択するには、そのフォント名を明示する必要があります。例えば、Fooというファミリ名のフォントに、Foo-Regular.otf と Foo-Condensed.otf というフォントがあったとき、<fo:block font-family="Foo" font-stretch="condensed"> としても Foo-Condensed.otf は選択されません。<fo:block font-family="Foo-Condensed"> のように指定する必要があります。
<fo:block font-family="Foo" font-stretch="condensed"> とした場合、Foo-Regular.otf を圧縮して表示します。そのときの圧縮率は、OpenTypeの仕様に示されている値よりも若干小さく(伸張のときは大きく)なります。
- font-stretch-mode="6"
フォント選択に、font-stretch の情報を利用します。上の例で、<fo:block font-family="Foo" font-stretch="condensed"> とすれば Foo-Condensed.otf が選択されます。font-stretch に数値を指定したときはcondensedフォントは探されません。また、<fo:block font-family="Foo" font-stretch="extra-condensed"> としたとき、extra-condensedフォントがないときにcondensedフォントを圧縮するわけではありません。normalフォントの圧縮が行われます。
condensedフォントがないときの圧縮率は、OpenTypeの仕様に示されている次の値となります。
ultra-condensed 50% extra-condensed 62.5% condensed 75% semi-condensed 87.5% normal 100% semi-expanded 112.5% expanded 125% extra-expanded 150% ultra-expanded 200%
Antenna House Formatter V7.0 で動作が修正されました。 ☞ font-stretch-mode
- font-stretch-mode="5"
- baseline-mode
ベースラインの位置は、Antenna House Formatter V5 で改良されましたが、縦書き時に欧文の文字(英数字)を正立させたときに中心が揃わない問題が残っていました。この問題は Antenna House Formatter V6.1 で解決されました。 V5と同様に組ませたいときに、オプション設定ファイルで baseline-mode="5" と指定してください。
- viewport-length-units-mode
単位 vw、vh の解釈が変更されました。以前はページ余白を含むページ全体のサイズを基準としていましたが、Antenna House Formatter V6.1 ではページ余白を除くサイズが基準となります。また、ページ全体を基準とする単位 pvw、pvh 等も追加されています。 V5と同様に組ませたいときには、オプション設定ファイルで viewport-length-units-mode="5" と指定してください。このとき、vw=pvw、vh=pvh、vmin=pvmin、vmax=pvmax となります。
- letter-spacing / word-spacing
letter-spacing や word-spacing が指定されているテキストでは、axf:punctuation-trim や axf:text-autospace などの指定が無効でした。Antenna House Formatter V6.1 では、この制限が解除されています。
- 全角空白の扱い
Antenna House Formatter V6.1 では、全角空白(U+3000)の扱いが若干変更されました。
- axf:punctuation-trim="adjacent" のとき、全角括弧との間で詰めが起こります。
- 行頭禁則されます。これは、Unicode 6.3 での仕様変更を受けてのことです。行頭禁則したくないときは、オプション設定ファイルで non-starter-ideographic-space="false" と指定してください。
Antenna House Formatter V5 との相違
Antenna House Formatter V6.0 と Antenna House Formatter V5 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- span
Antenna House Formatter V6.0 では、span="all"の振る舞いが、Antenna House Formatter V5 と異なっています。
-
Antenna House Formatter V5では、<fo:block-container>などの参照領域を生成するFOの、入れ子になった内側のspan指定も有効になっています。これが Antenna House Formatter V6.0では、参照領域を生成するFOの中に入れ子になったFOでのspan指定は無効となります。例えば、
のようなとき、<fo:block>ABC</fo:block>に対して、V5では span="all"が有効でしたが、Antenna House Formatter V6.0では無効となります。また、axf:column-countを使った <fo:block-container>の段組の中の <fo:block>で span="all"が指定された場合は、その <fo:block-container>の段組に対してスパンが指定されたものとなります。組版結果を V5と同様にするには、親の <fo:block-container>で span="all"を指定するようにしてください。
文書先頭での空のブロックとspan="all"のブロックの間の強制改ページの指定は、V5では無視されていましたが、Antenna House Formatter V6.0 では強制改ページが有効となり、空白ページが生じます。組版結果を V5と同様にするには、次のようにしてください。
- 空のブロックをbreak-before="page"を指定したブロックの前に置かない。または、
- break-before="page"を指定しない(<fo:flow>の先頭なので不要)。または空のブロックの方に指定する。
1段組の場合に、V5ではspan="all"の指定の効果がありませんでした。Antenna House Formatter V6.0 では1段組であっても参照領域が生成されます。これは、例えば次のような違いを生みます。
1段組の場合、V5ではAAAとBBBの間にspace-before="1cm"によるスペースができますが、Antenna House Formatter V6.0 ではできません。なぜなら、1段組でもspanによる参照領域が生成されて、参照領域の先頭でspace-before.conditionality="retain"の指定がないスペースが除去されるためです。組版結果を V5と同様にするには、1段組のときはspan="all"を指定しないようにしてください。
-
- text-underline-mode
Antenna House Formatter V5 では、下線上線取消線の位置について次のような問題がありました。
- axf:text-underline-position が指定してあると、axf:vertical-underline-side が効かなくなる。
- axf:text-underline-position に数値が指定してあると、常にbaselineからのオフセットとして解釈される。
- axf:vertical-underline-side によって下線の位置が変更されても、上線の位置は変更されない。
- CSSで、-ah-line-stacking-strategy:line-height のときに -ah-line-stacking-strategy:max-height のときと異なる位置に下線、上線が引かれていた。
- 横書きで下線などを引くとき、途中に baseline-shift="super" などがあると、線が不揃いになるが、縦書きでは一直線に揃う。
- 取消線を引くとき、文字のサイズが異なっていたり baseline-shift="super" などがあると、線が不揃いになる。
- axf:text-line-width="auto" のときの線の太さはフォントサイズに依存する。ただしCSSでは 行領域の高さに依存する。
Antenna House Formatter V6.0 では、次のように改良されています。
- axf:vertical-underline-side は、axf:text-underline-position があっても有効。
- axf:text-underline-position に指定する数値には、基準となる位置を併記できる。
- 上線は、常に下線の反対側に位置する。
- CSSで、-ah-line-stacking-strategy の値によらず同じ位置に引かれる。
- 横書きで下線などを引くとき、途中に baseline-shift="super" などがあっても一直線に揃う。
- 取消線を引くとき、文字のサイズが異なっていたり baseline-shift="super" などがあっても一直線に揃う。
- axf:text-line-width="auto" のときの線の太さは行領域の高さに依存する。
V5と同様に組ませたいときは、オプション設定ファイルで text-underline-mode="5" と指定してください。
- intrusion-displace-mode
Antenna House Formatter V6.0 で intrusion-displace の実装が修正されており、Antenna House Formatter V5 と異なります。
- intrusion-displace="line" または "auto" の場合に text-indent が消えないようになりました。
- intrusion-displace="indent" の場合に start-indent および end-indent による相対的なインデントが保持されます。Antenna House Formatter V5 では intrusion-displace="indent" を指定しても text-indent が保持されるだけでした。
V5と同様に組ませたいときは、オプション設定ファイルで intrusion-displace-mode="5" と指定してください。
- vertical-block-width-mode
横書きの中の縦書きのブロックの幅(あるいは縦書きの中の横書きのブロックの高さ)の auto値の扱いが Antenna House Formatter V6.0 で修正されました。
Antenna House Formatter V5 では、縦書きブロックの幅は外側のエリアの幅からとられました。Antenna House Formatter V6.0 では、縦書きブロックのautoの幅は内容に合わせて小さくなります。それが望ましくない場合は width="100%" のように幅を明示的に指定してください。縦書きの中の横書きのブロックの高さについても同様です。
V5と同様に組ませたいときは、オプション設定ファイルで vertical-block-width-mode="5" と指定してください。
- zwsp-mode
ZERO WIDTH SPACE(U+200B)の動作については、仕様上あいまいな部分があります。Antenna House Formatter V5 では、text-align="justify" に対して、ZERO WIDTH SPACE もその対象となり、その部分が他よりも広くなります。また、ブロックの先頭末尾にある ZERO WIDTH SPACE も例外ではないため、そこも広がります。Antenna House Formatter V6.0 では、これを次のように組ませることができます。
- ZERO WIDTH SPACE を justify の対象から除外します。
- ブロック先頭末尾の ZERO WIDTH SPACE を削除します。
このことにより、<fo:block>​</fo:block> のようなブロックでは、1行空けるような効果が現れなくなります。 オプション設定ファイルで zwsp-mode を指定してください。
XSL Formatter V4 との相違
Antenna House Formatter V5 と XSL Formatter V4 とで、組版上の相違がいくらかあります。ここでは、それらを列挙します。
- capitalize
例えば、
に対して、V4では
と変換されていましたが、Antenna House Formatter V5 では
と変換されます。つまり、V4では頭文字以外を小文字に変換していましたが、Antenna House Formatter V5 では何もしません。V4と同様にするには、
としてください。 ☞ text-transform
- text-justify-mode
Antenna House Formatter V5 では、行の追い込み処理が改良されました。これに伴い、axf:text-justify-trim によってよりきめ細かな制御が可能となりましたが、XSL Formatter V4 と、1行に入る文字数に違いが生じることがあります。 axf:text-justify-trim を利用していないFOで、V4と同様に組ませたいときは、オプション設定ファイルで text-justify-mode="4" と指定してください。
- baseline-mode
Antenna House Formatter V5 では、和欧混植のように、ベースラインの異なるフォントを並べたときの処理が改良されています。例えば、
というようなとき、Latinに日本語フォントが適用されないように font-family="'Times New Roman', 'MS Mincho'" のように指定するでしょう。このとき、XSL Formatter V4 では、font-family に指定されている最初のフォントによってベースラインを決定してしまうため、行の高さに違いができてしまうことがあります。 Antenna House Formatter V5 では、そのときのスクリプトや言語の指定によって、font-family 中のフォントを選択するので、上記の例では language="jpn" と指定することによって適切なベースラインが適用されます。 V4と同様に組ませたいときに、オプション設定ファイルで baseline-mode="4" と指定してください。
- フォントの選択
Antenna House Formatter V5 で、font-selection-strategy="character-by-character" がサポートされました。 また、オプション設定ファイルでのauto-fallback-fontで、フォールバックの制御ができるようになりました。 フォントの選択を参照してください。