Changes from Previous Versions in Formatting

Changes from Antenna House Formatter V7.2

There are some differences in formatting between Antenna House Formatter V7.3 and Antenna House Formatter V7.2 as listed below.

  • text-autospace-mode

    When the settings of axf:text-autospace before and after <fo:inline> are different, the space between ideographic and non-ideographic glyphs is now applied to both sides. To use only one side as before, specify text-autospace-mode in the Option Setting File.

  • html.css

    There are changes in the description of Default CSS for HTML (html.css).

    • The handling of whitespace has changed slightly with the setting of ::marker. You won't see much difference in appearance with predefined counter styles. Previously the setting was as follows:
      *::marker {
       -ah-margin-end: 0.5em;
       text-indent: 0;
       font-variant: tabular-nums;
      }
      
      but it has been fixed as follows:
      *::marker {
       -ah-white-space-treatment: preserve;
       -ah-white-space-collapse: false;
       -ah-margin-end: 0.25em;
       text-indent: 0;
       font-variant: tabular-nums;
      }
      
    • The setting of li[value] has been changed from counter-reset to counter-set.
    • The following setting has been added so that the space between ideographic and non-ideographic glyphs is applied before and after inline MathML. See axf:text-treat-as.
      m|math { -ah-text-treat-as: "A"; }
      

  • list-style-type

    When the value is specified as a string like list-style-type: "disc";, the string itself is now displayed.

  • axf:baseline-grid

    In columns, axf:baseline-grid after span="all" was sometimes misaligned, but now it is formatted correctly.

  • Applying BPIL to simple Ruby

    BPIL can now be applied to ruby even if it contains simple ruby where the ruby is not longer than the ruby base text.   Line Breaking

Changes from Antenna House Formatter V7.1

There are some differences in formatting between Antenna House Formatter V7.2 and Antenna House Formatter V7.1 as listed below.

  • Changes in CSS interpretation

    There are the following changes:

    • A space between the function name and the parentheses will result in a correct syntax error. For example, rgb (...) is a grammar violation.
    • In CSS, bare expressions cannot be specified in properties. for example, the description like the following is a grammar violation:
      font-size: 20pt + 30pt;
      Correctly, it must be:
      font-size: calc(20pt + 30pt);
      Antenna House Formatter V7.1 allowed some bare expressions that are not enclosed in calc(). If you want to do that, specify css-allow-bare-expression="true" in the Option Setting File.
    • pseudo-classes such as :first-child and :only-of-type now match the root element. If you want to prevent matching like Antenna House Formatter V7.1, specify css-child-match-root="false" in the Option Setting File.

  • <link>

    In HTML <link>, the one with title specified may not be applied in specified order, but it is now applied in specified order. Also, the stylesheet specified by <link rel="alternate stylesheet"> is now applied. See Cascading Order of CSS.

Changes from Antenna House Formatter V7.0

There are some differences in formatting between Antenna House Formatter V7.1 and Antenna House Formatter V7.0 as listed below.

  • Specifying Image Size in %

    In (X)HTML, when <img src="xxx" width="50%"> is specified, % is based on the size of the image. When img { width:50% } is specified in CSS, the size of the parent element is the base. However, until Antenna House Formatter V7.0, even with CSS, % of the following properties were calculated based on the size of the image.

    • width
    • max-width
    • min-width
    • height
    • max-height
    • min-height

    Antenna House Formatter V7.1 corrects this error and calculates % based on the size of the parent element. If you want to calculate % the same as before, specify fix-css-img-percentage="false" in the Option Setting File. See also -ah-attr-img().

Changes from Antenna House Formatter V6.6

There are some differences in formatting between Antenna House Formatter V7.0 and Antenna House Formatter V6.6 as listed below.

  • Line Breaking

    Line breaking processing has been improved. See Line Breaking. In addition, the line break position may change due to changes in the Unicode specifications.

  • axf:suppress-if-first-on-page

    The behavior of axf:suppress-if-first-on-page has been improved.

  • ::first-letter

    When the character is enlarged using the ::first-letter pseudo-element in CSS, the line spacing may be expanded unless line-height is specified. In Antenna House Formatter V7.0, the line spacing is not unnecessarily expanded when line-height is not specified in ::first-letter.

  • zwsp-mode

    The default value for zwsp-mode has been changed to 6.

  • hyphenation-keep-mode

    The processing method when the word at the end of the page (column) is hyphenated by hyphenation-keep="page", etc. has been improved. See hyphenation-keep-mode in the Option Setting File. Specify hyphenation-keep-mode="line" when you want to make it the same as V6.

  • white-space-collapse-mode

    white-space-collapse is implemented to apply across <fo:inline>, but until Antenna House Formatter V6.6, it was applied unconditionally, so even in some cases where there is a border in <fo:inline>, it was collapsed. Antenna House Formatter V7.0 no longer collapses under the following conditions:

    • When there is border or padding at the border of <fo:inline>
    • When there is <fo:inline> with width settings in between

    Specify white-space-collapse-mode="6" in the Option Setting File when you want to make it the same as V6.

  • font-stretch-mode

    The behavior of font-stretch-mode="6" has been corrected. When a keyword such as condensed is specified in font-stretch, that information is used for the font selection. For example, when extra-condensed is specified, if there is a condensed font, the compression is performed based on that font. The compression ratio at that time is (62.5/75)% = 83.3%. However, if there is no normal font in the selection candidates, the compression rate will be 62.5%.

  • Poster image when embedding multimedia

    In Antenna House Formatter V7.0, if axf:poster-image is specified when embedding multimedia, the size of that image is used. In order to get the same result as Antenna House Formatter V6.6 or earlier, specify scaling="non-uniform" content-width="scale-to-fit" content-height="scale-to-fit" to <fo:external-graphic>.

  • BIDI

    Revision 41 in UAX #9: Unicode Bidirectional Algorithm is now supported. If you want to process with the same algorithm as V6, set a value less than 37 in unicode-bidi-rev. A value greater than or equal to 37 is considered 41.  BIDI Algorithm Implementation Restrictions

Changes from Antenna House Formatter V6.5

There are some differences in formatting between Antenna House Formatter V6.6 and Antenna House Formatter V6.5 as listed below.

  • html.css

    There are changes in the description of Default CSS for HTML (html.css).

    • li::marker { ... } has been changed to ::marker {...}. With this change, this style also applies to markers of list-items other than <li>. As a result, -ah-margin-end:0.5em; will cause a different margin from the past. Specify -ah-margin-end:0;, etc. if necessary.
    • *[hidden] { visibility: hidden } has been added.

  • -ah-force-page-count

    In CSS,

    @page {
      -ah-force-page-count: document 4;
    

    If you write as above, in Antenna House Formatter V6.6, -ah-force-page-count will work when switching all pages. To make it work only on the last page as Antenna House Formatter V6.5 or earlier, specify -ah-force-page-count to @page where the last used page selector exists.

  • Suppression of ligatures

    Ligatures are suppressed by inserting the following characters:

    • U+200B
    • U+200C
    • U+2060
    • U+FEFF

  • MathML

    When STIX version 2.0 font is installed by default, it will be adopted.

    If OpenType has a MATH table, it will be referenced. You can control it finely using enableOpenTypeMATH, exceptOpenTypeMATHVariants in the Option Setting File.

    The thickness of the line of <mlongdiv> will be drawn with the thickness of mslinethickness.

    The height of each line at the time of line breaking will become the height of each line. To make the height of each line the same, as it has been with Antenna House Formatter V6.5 or earlier, specify linebreakingHeightAdjust="false" in the Option Setting File.

Changes from Antenna House Formatter V6.3

There are some differences in formatting between Antenna House Formatter V6.4 and Antenna House Formatter V6.3 as listed below.

  • MathML

    In the MathML settings in the Option Setting File, the default value for the alignment of subscript/superscript has somewhat been modified. In order to make it the same setting as Antenna House Formatter V6.3, specify mathmlSettingsMode="6.3".

Changes from Antenna House Formatter V6.2

There are some differences in formatting between Antenna House Formatter V6.3 and Antenna House Formatter V6.2 as listed below.

  • keep-footnote-anchor

    With Antenna House Formatter V6.2, the block containing the anchor was sent to the following page due to conditions such as orphans, and as a result, the footnote itself was sometimes arranged in the previous page. On the other hand, Antenna House Formatter V6.3 will try to fit the dividable block after the anchor in the previous page. You can also get the same result by specifying axf:footnote-keep="always" in the original block. In order to get the same result as Antenna House Formatter V6.2 or earlier, specify keep-footnote-anchor="false" in the Option Setting File.

  • list-style-type

    The implemented list-style-type has been changed to use Predefined Counter Styles. The following style names were included in the previous list-style-type but are not included in the Predefined Counter Styles:

    • japanese-formal-obsolete
    • urdu
    • lower-norwegian
    • upper-norwegian
    • hangul
    • hangul-consonant
    • halfwidth-katakana
    • halfwidth-katakana-iroha

    Even though the style names are same as those given in the previous list-style-type, some of implementation of the Predefined Counter Style may differ.

Changes from Antenna House Formatter V6.1

There are some differences in formatting between Antenna House Formatter V6.2 and Antenna House Formatter V6.1 as listed below.

  • latin-ligature / pair-kerning

    The default values of latin-ligature and pair-kerning in the Option Setting File have been changed. Up to Antenna House Formatter V6.1, these values are false. In Antenna House Formatter V6.2, they are changed to true. This intends to be able to get a better formatting result by default. When axf:ligature-mode and axf:kerning-mode are specified specifically about those in FO, they don't influence the formatting result. These settings will influence the formatting speed.

  • Splitting blocks

    In CSS, when the block with auto-height breaks at the end of a page for example, the block height was the break point as is up to Antenna House Formatter V6.1. In Antenna House Formatter V6.2, the height is adjusted to the end of a page. The difference is remarkable when the background or the border is specified to the block. The same is applied to the end of column.  5.3. Splitting Boxes
    This behavior is not applied to FO.
    By specifying splitting-blocks-space="true" in the Option Setting File, you can return to the original V6.1 behavior.

  • Text wrapping with before float

    When the float width on the before side fills up the region and there is no room for wrapping text, although the text is positioned aside by the float, the block itself has overlapped with the float. This can be checked by adding a background or a border to the block. When intrusion-displace="block" is specified, the block itself is positioned aside by the float. In Antenna House Formatter V6.2, regardless of the setting of intrusion-displace, the block itself is positioned aside by the float.

  • Splitting footnotes

    Up to Antenna House Formatter V6.1, a page (column) break did not occur within footnote-body. In Antenna House Formatter V6.2, it is possible to break pages (columns) within footnote-body. A footnote breaks by the setting of axf:footnote-max-height and it occurs by default. For this reason, the formatted result may differ from Antenna House Formatter V6.1. In order to avoid the automatic break, specify auto-break-footnote="false" in the Option Setting File.

  • BIDI

    Up to Antenna House Formatter V6.1, there was a known issue in the BIDI processing. With Antenna House Formatter V6.2, BIDI processing was corrected. Therefore, the formatted result may differ from V6.1.

Changes from Antenna House Formatter V6.0

There are some differences in formatting between Antenna House Formatter V6.1 and Antenna House Formatter V6.0 as listed below.

  • normalize

    In Antenna House Formatter V6.1, Unicode normalization (UAX#15: Unicode Normalization Forms) can be performed to the inputted text. See also axf:normalize. The normalization may somehow influence the formatting speed. If you don't want to perform the normalization by default, specify normalize="none" in the Option Setting File.

  • font-stretch-mode

    In Antenna House Formatter V6.1, when specifying a family name to the font-family, it's made available to choose a condensed font if it actually exists using the information of font-stretch="condensed" etc. Specify font-stretch-mode="6" in the Option Setting File. The operating differences between font-stretch-mode="5" and "6" are as follows:

    • font-stretch-mode="5"

      The behavior is the same as Antenna House Formatter V5. The information on font-stretch is not used for the font selection. That is, even if a condensed font exists in the family, it is not chosen. In order to choose a condensed font, it is necessary to specify the font name. When fonts called Foo-Regular.otf and Foo-Condensed.otf exist with the family name of Foo, Foo-Condensed.otf is not chosen even if <fo:block font-family="Foo" font-stretch="condensed"> is specified. It is necessary to specify <fo:block font-family="Foo-Condensed">.

      When <fo:block font-family="Foo" font-stretch="condensed"> is specified, Foo-Regular.otf is compressed and displayed. The compression ratio at that time is somewhat smaller (larger when expanding) than the value defined in the OpenType specification.

    • font-stretch-mode="6"

      The information on font-stretch is used for the font selection. In the example above, <fo:block font-family="Foo" font-stretch="condensed"> is specified, Foo-Condensed.otf will be chosen. When a numerical value is specified as font-stretch, a condensed font is not searched. <fo:block font-family="Foo" font-stretch="extra-condensed"> is specified, and when there is no extra-condensed font, a condensed font is not necessarily compressed but the normal font will be compressed.

      A compression ratio in case there is no condensed font will be the following values shown in the specification of OpenType.

      ultra-condensed 50%
      extra-condensed 62.5%
      condensed 75%
      semi-condensed 87.5%
      normal100%
      semi-expanded112.5%
      expanded125%
      extra-expanded150%
      ultra-expanded200%

    The behavior has been corrected in Antenna House Formatter V7.0.  font-stretch-mode

  • baseline-mode

    Although the position of the baseline was improved by Antenna House Formatter V5, when the character (alphanumeric character) of European languages was rendered upright in vertical writing mode, there still remains the problem that the center position was not aligned. The problem has been improved by Antenna House Formatter V6.1. Specify baseline-mode="5" in the Option Setting File when you want to make it the same as V5.

  • viewport-length-units-mode

    The interpretation of the vw and vh units have been changed. Formerly the unit was based on the entire page size including page margins. In Antenna House Formatter V6.1, it is based on the size excluding the page margins. In addition, the pvw and pvh units based on the entire page size have been added. Specify viewport-length-units-mode="5" in the Option Setting File when you want to make it the same as V5. In this case, the units behave as vw=pvw, vh=pvh, vmin=pvmin and vmax=pvmax.

  • letter-spacing / word-spacing

    When letter-spacing and word-spacing are specified to the text, the settings of axf:punctuation-trim, axf:text-autospace, etc. were invalid. Antenna House Formatter V6.1 removed this restriction.

  • Treatment of ideographic space

    With Antenna House Formatter V6.1, the treatment of the ideographic space (U+3000) has been somewhat changed.

Changes from Antenna House Formatter V5

There are some differences in formatting between Antenna House Formatter V6.0 and Antenna House Formatter V5 as listed below.

  • span

    In Antenna House Formatter V6.0, the behavior of span="all" differs from that in Antenna House Formatter V5.

    • In Antenna House Formatter V5, the span specified inside of the nested FO, that generates reference area such as <fo:block-container> is also effective. However, in Antenna House Formatter V6.0, the span specified in FO nested inside of FO that generates reference area is invalid. For instance,

      <fo:block-container>
      <fo:block span="all">
      <fo:block>ABC</fo:block>
      </fo:block>
      </fo:block-container>

      In V5, span="all" was effective with <fo:block>ABC</fo:block>. However it's invalid in Antenna House Formatter V6.0. In addition, when span="all" is specified to <fo:block> in the column of <fo:block-container>, that uses axf:column-count, it is considered that the span is specified to the column of the <fo:block-container>. In order to keep the same result as V5, specify span="all" to the parent's <fo:block-container>.

    • Although the specification of the forced page break between the empty block at the beginning of the document and the block with span="all" was disregarded in V5, In Antenna House Formatter V6.0, a forced page break is effective and a blank page is produced. In order to keep the same result as V5, specify as follows:

      • Do not place an empty block the block with break-before="page" specified, or
      • Do not specify break-before="page" (as it is the beginning of <fo:flow>, it's not necessary). Or specify it to an empty block.

    • In case of one-column format, span="all" was not effective in V5. Antenna House Formatter V6.0, even if it's one-column format, a reference area is generated. This causes the following differences, for example:

      <fo:block>AAA</fo:block>
      <fo:block space-before="1cm" span="all">BBB</fo:block>

      In case of one-column format, the space was generated between AAA and BBB in V5, but it's not generated in Antenna House Formatter V6.0. It is because a reference area is generated by span even in one-column format, then the space without the specification of space-before.conditionality="retain" will be deleted at the beginning of the reference area. In order to keep the same result as V5, do not specify span="all" in one-column format.

  • text-underline-mode

    In Antenna House Formatter V5, there were the following problems with the position of underline, overline and line-through.

    • axf:vertical-underline-side doesn't work when axf:text-underline-position is specified.
    • It is always interpreted as an offset from base-line when the numerical value is specified to axf:text-underline-position.
    • Even if the position of the underline is changed by axf:vertical-underline-side, the position of the overline is not changed.
    • In CSS, the position of underline and overline differs between -ah-line-stacking-strategy:line-height and -ah-line-stacking-strategy:max-height specified.
    • When the underline etc. are drawn in horizontal writing mode, the line becomes uneven when there are baseline-shift="super", etc. though the line is aligned in a straight in vertical writing mode.
    • When the strikethrough is drawn, the line becomes uneven when the font size differs or there are baseline-shift="super", etc.
    • The line width depends on the font size when axf:text-line-width="auto" is specified. However in CSS, it depends on the height of the line area.

    In Antenna House Formatter V6.0, these are improved as follows:

    • axf:vertical-underline-side is effective even if axf:text-underline-position is specified.
    • The standard position can also be described in the numerical value specified for axf:text-underline-position.
    • The overline is always positioned on the opposite side of the underline.
    • In CSS, the line is drawn at the same position without depending on the value of -ah-line-stacking-strategy.
    • When the underline etc. are drawn in horizontal writing mode, it is aligned in a straight line even if there are baseline-shift="super", etc.
    • When the strikethrough is drawn, it is aligned in a straight line even if the font size differs or there are baseline-shift="super", etc.
    • The line width depends on the height of the line area when axf:text-line-width="auto" is specified.

    Specify text-underline-mode="5" in the Option Setting File when you want to make it the same as V5.

  • intrusion-displace-mode

    In Antenna House Formatter V6.0, the behavior of the intrusion-displace is revised and different from that of Antenna House Formatter V5.

    • text-indent no longer disappears when intrusion-displace="line" or "auto".
    • intrusion-displace="indent" ensures that relative indents by start-indent and end-indent are preserved. In Antenna House Formatter V5, only text-indent was preserved when intrusion-displace="indent".

    Specify intrusion-displace-mode="5" in the Option Setting File when you want to make it the same as V5.

  • vertical-block-width-mode

    The behavior of the auto value of the width of vertical-text block within horizontal-text flow (or the height of horizontal-text block within vertical-text flow) is changed with Antenna House Formatter V6.0.

    In Antenna House Formatter V5, the width of vertical-text block was given by the width of the outer area. In Antenna House Formatter V6.0, the auto width of vertical-text block shrinks to fit the content. If you don't want this behavior you should specify the width explicitly such as width="100%". Also the same behavior will be applied to the height of horizontal-text block within vertical-text flow.

    Specify vertical-block-width-mode="5" in the Option Setting File when you want to make it the same as V5.

  • zwsp-mode

    There is an ambiguous portion of the specification in the operation of ZERO WIDTH SPACE (U+200B). In Antenna House Formatter V5, ZERO WIDTH SPACE is also a target for text-align="justify" and this portion becomes larger than others. In addition, since leading and trailing ZERO WIDTH SPACE in the block are not exceptions, they spread also. Antenna House Formatter V6.0 can format as follows:

    • Remove ZERO WIDTH SPACE from the target of justify.
    • Delete leading and trailing ZERO WIDTH SPACE of a block.

    This will avoid the effect of having a one-line space in the block such like <fo:block>&#x200B;</fo:block>. Specify zwsp-mode in the Option Setting File.

Changes from XSL Formatter V4

There are some differences in formatting between Antenna House Formatter V5 and XSL Formatter V4 as listed below.

  • capitalize

    For example, V4 formats the following

    <fo:block text-transform="capitalize">
    HELLO world!
    </fo:block>
    

    as follows:

    Hello World!

    Antenna House Formatter V5 formats as follows:

    HELLO World!

    That is, although V4 changes the letters except the initial letter into lower case, Antenna House Formatter V5 does nothing. In order to make it the same as V4, specify as follows:

    <fo:block text-transform="capitalize-lowercase">
    

     text-transform

  • text-justify-mode

    Antenna House Formatter V5 improves the processing of trimming a line of text. Although finer control was attained by axf:text-justify-trim with this enhancement, a difference may arise in the number of characters included in one line with XSL Formatter V4. When you want to make it the same as V4 by FO which does not use axf:text-justify-trim, specify text-justify-mode="4" in the Option Setting File.

  • baseline-mode

    Antenna House Formatter V5 improves the processing when putting fonts with different baselines like a mixture of Western and Japanese text. For example,

    <fo:block>Latin漢字</fo:block>
    <fo:block>漢字Latin</fo:block>
    <fo:block>Latin</fo:block>
    <fo:block>漢字</fo:block>
    

    like the above, you may specify font-family="'Times New Roman', 'MS Mincho'" so that Japanese fonts are not applied to Latin. Since the first font specified as font-family determines a baseline by XSL Formatter V4 at this time, a difference may arise in the height of a line. Since Antenna House Formatter V5 selects the font in the font-family by the script or the language specification, a suitable baseline will be applied by specifying language="jpn" in the example above. When you want to make it the same as V4, specify baseline-mode="4" in the Option Setting File.

  • Font selection

    font-selection-strategy="character-by-character" is supported from Antenna House Formatter V5 In addition, auto-fallback-font in the Option Setting File makes it possible to control the fallback. See also Font Selection.