XSL/CSS Extensions

AH Formatter V7.1 provides you with numerous XSL proprietary extension elements and properties. When you use the extension elements or properties in XSL, be sure to specify the namespace URL http://www.antennahouse.com/names/XSL/Extensions.

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
         xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions">

AH Formatter V7.1 also provides many CSS extensions. In this document, CSS 2.1 or CSS3 properties with restrictions are written together with XSL properties. See also “XSL/CSS Properties”. Although many of CSS3 specifications are included, many of them are in the state before Recommendation. It is safer for these properties of CSS3 specifications to use by adding the -ah- prefix. It is written as (-ah-) in this document. Although the property without adding -ah- will work with AH Formatter V7.1, the specification may change in the future. It is not necessary to add -ah- to the property of Recommendation (or Candidate Recommendation, Proposed Recommendation) such as CSS 2.1. For more details, see also Property Value Syntax.

Extended Elements

Extended elements are provided only for XSL.

Element nameDescription
<fo:change-bar-begin>Extends the child element so that <fo:float> can be described as the content of the element. no-LT
<axf:counter-style> / CSS @counter-style Defining Custom Counter Styles. no-LT
<axf:custom-property> / HTML <meta>Specifies the custom property. This information is embedded in PDF. no-LT
<axf:document-info> / HTML <meta>Specifies the document information. This information is embedded into the PDF.
<axf:font-face> / CSS @font-face Appends a font. no-LT
<axf:footnote-number> Generates a footnote number. no-LT
<axf:footnote-number-citation> Cites a footnote number. no-LT
<axf:form>Encloses the unit of the form action. no-LT
<axf:form-field>Generates a form field. no-LT
<axf:form-field-event>Defines the form action which corresponds to the event. no-LT
<axf:form-field-option>Specifies the component elements of the list box, combo box. no-LT
<axf:formatter-config>Specifies additional option setting information. no-LT
<axf:hyphenation-info>Specifies additional hyphenation information. no-LT
<axf:index-page-citation-range-f-suffix>Specifies the suffix when merge-sequential-page-numbers="merge-f". no-LT
<axf:index-page-citation-range-ff-suffix>Specifies the suffix when merge-sequential-page-numbers="merge-ff". no-LT
<axf:output-volume-info>Outputs PDF in Multiple Separate Volume. no-LT
<fo:page-sequence>Extends so that <fo:page-sequence> can be nested and described as a child element or otherwise an empty element is allowed. no-LT
<axf:ruby>Generates a ruby area.
<axf:ruby-base>Generates a ruby base area.
<axf:ruby-text>Generates a ruby text area.
<axf:space-end-punctuation>Specifies the amount of space after the punctuation in European Typography.
<axf:space-start-punctuation>Specifies the amount of space before the punctuation in European Typography.
<axf:space-between-digit-and-punctuation>Specifies the amount of space between the digit and the punctuation in European Typography.
<axf:space-between-punctuation-and-digit>Specifies the amount of space between the punctuation and digit in European Typography.
<axf:spread-page-master>Specifies a two-page spread. no-LT
<axf:spread-region>Specifies a region in a two-page spread. no-LT
<axf:tab>Inserts white spaces up to the tab stop position. no-LT
<axf:table-cell-repeated-marker>Specifies the contents to be displayed in the split cell. no-LT

Extended Values

Extended values are provided for one or both of XSL and CSS. Extended values may differ between XSL and CSS.

Property nameDescription
<border-style>Extended the dot-dash, dot-dot-dash, and wave properties defined in old CSS3. These styles are preferred in the following order:
  1. double
  2. solid
  3. dashed
  4. dot-dash
  5. dot-dot-dash
  6. dotted
  7. ridge
  8. outset
  9. groove
  10. inset
  11. wave
This order is not described in CSS3.
<color>The value of <color> in XSL-FO is one of the following:
  • #RRGGBB or values in #RGB format
  • The sixteen basic color names; i.e., aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white and yellow
  • rgb(), rgb-icc(), system-color() functions
The following values are extended to be able to specify. In the CSS specification, transparent is equivalent to rgba(0,0,0,0). In AH Formatter V7.1, transparent characters are not output, although the size is secured. rgba(0,0,0,0) outputs characters.
displayExtends the value of the display property in CSS.
display-alignExtends the value of the display-align property.
font-size-adjustExtends the value of the font-size-adjust property.
font-stretchExtends the value of the font-stretch property.
font-variantExtends the value of the font-variant property.
force-page-countExtends the value of the force-page-count property.
formatExtends the value of the format property.
hyphenation-push-character-countExtends the value of the hyphenation-push-character-count property.
hyphenation-remain-character-countExtends the value of the hyphenation-remain-character-count property.
internal-destinationExtends the value of the internal-destination property. no-LT
leader-alignmentExtends the value of the leader-alignment property.
merge-sequential-page-numbersExtends the value of the merge-sequential-page-numbers property. no-LT
odd-or-evenExtends the value of the odd-or-even property. no-LT
overflowExtends the value of the overflow property.
sizeExtends the value of the size property.
table-omit-footer-at-breakExtends the value of the table-omit-footer-at-break property. no-LT
table-omit-header-at-breakExtends the value of the table-omit-header-at-break property. no-LT
text-transformExtends the value of the text-transform property. no-LT

Extended Functions

Both FO and CSS functions are extended. For CSS3 functions, see also CSS3 Functions.

Function nameDescription
rgb-icc()Extends the rgb-icc() function.  <color>
rgb()The rgb() function is available with both CSS and FO. Its 3 arguments can be given like rgb(<R>,<G>,<B>). For <R>,<G>,<B>, % values, or values from 0 to 255 are given.  <color>
rgba()The rgba() function from CSS3 RGBA color values is available with both CSS and FO. Its 4 arguments can be given like rgba(<R>,<G>,<B>,<A>). For <R>,<G>,<B>, % values or values from 0 to 255 are given. For <A>, % values, or values from 0.0 to 1.0 are given. You can also give a color name instead of <R>,<G>,<B> and write it like rgba(green,0.5).  <color>
hsl()The hsl() function from CSS3 HSL color values is available with both CSS and FO. Its 3 arguments can be given like hsl(<H>,<S>,<L>). Unitless numbers are given to <H>. For <S>,<L>, % values, or values from 0.0 to 1.0 are given.  <color>
hsla()The hsla() function from CSS3 HSLA color values is available with both CSS and FO. Its 4 arguments can be given like hsla(<H>,<S>,<L>,<A>). Unitless numbers are given to <H>. For <S>,<L>, % values, or values from 0.0 to 1.0 are given. For <A> % values, or values from 0.0 to 1.0 are given.  <color>
cmyk()Available to use cmyk() function. 4 arguments can be given like cmyk(<C>,<M>,<Y>,<K>). For <C>,<M>,<Y>,<K>, % values, or values from 0.0 to 1.0 are given. cmyk(<C>,<M>,<Y>,<K>) is equivalent to rgb-icc(#CMYK,<C>,<M>,<Y>,<K>).  <color>
cmyka()Available to use cmyka() function. 5 arguments can be given like cmyka(<C>,<M>,<Y>,<K>,<A>). For <C>,<M>,<Y>,<K>,<A>, % values, or values from 0.0 to 1.0 are given.  <color>
linear-gradient()It is a function expressing the gradation. no-LT
radial-gradient()
repeating-linear-gradient()
repeating-radial-gradient()
counter()Extends the counter() function from CSS. It can be used only with CSS.
attr()The attr() function from the specification in CSS3 Values is available. It can be used only with CSS.
-ah-attr-img()Same as attr(), but provided for referencing the width/ height of an image such as <img>. It can be used only with CSS. V7.1
-ah-attr-from()Extends the attr() function. It can be used only with CSS.

Extended Units

Besides the units defined by the XSL specification, the following units can be used. These can also be applied to CSS.

Unit nameDescription
remUnit of em in the root element. It cannot be used for the value of the font-size property in the root element.  CSS Values and Units
dcemUnit of the value based on the font size of a dropped initial. It can be used in elements for which the axf:initial-letters property is specified. It cannot be used for the value of the axf:initial-letters property. When dcem is not available, it is treated as em.
exUnit of the value based on x-height of the font. When the font does not have x-height, a value of 0.5em should be used.  CSS Values and Units
capUnit of the value based on cap-height of the font. When the font does not have cap-height, a value of altitude of the font should be used.  CSS Values and Units
jptUnit of the absolute value defined by JIS Z 8305. 1jpt = 0.3514mm.
qUnit of the absolute value expressing Q (quarter) by JIS X 4052, JIS Z 8125. 1q = 0.25mm.
dpiUsed when expressing the resolution with axf:image-resolution.
emu Unit of the absolute value expressing English Metric Unit. 1emu = 1in/914400 = 1cm/360000.
chUnit of the length expressing the width of character "0" U+0030 to be 1. When the glyph is not in the font, a value of 0.5em should be used.  CSS Values and Units
icUnit of the length expressing the width of character "" U+6C34 to be 1. When the glyph is not in the font, a value of 1em should be used.  CSS Values and Units
lhUnit of the length expressing the line-height to be 1. Even if line-height="2" is specified, for example, lh is converted into the absolute value. It cannot be used for the value of the line-height property.  CSS Values and Units
rlhUnit of lh in the root element. It cannot be used for the value of the line-height property in the root element.  CSS Values and Units
vwUnit of the width expressing the viewport width as 100. It cannot be used with elements for which a viewport, such as the root element, has not been established.  CSS Values and Units
vhUnit of the height expressing the viewport height as 100. It cannot be used with elements for which a viewport, such as the root element, has not been established.  CSS Values and Units
vminEqual to the smaller length of vw or vh. It cannot be used with elements for which a viewport, such as the root element, has not been established.  CSS Values and Units
vmaxEqual to the larger length of vw or vh. It cannot be used with elements for which a viewport, such as the root element, has not been established.  CSS Values and Units
pvwUnit of the width expressing the page width as 100. It cannot be used with elements for which a viewport, such as the root element, has not been established.
pvhUnit of the height expressing the page height as 100. It cannot be used with elements for which a viewport, such as the root element, has not been established.
pvminEqual to the smaller length of pvw or pvh. It cannot be used with elements for which a viewport, such as the root element, has not been established.
pvmaxEqual to the larger length of pvw or pvh. It cannot be used with elements for which a viewport, such as the root element, has not been established.
grUnit to specify spanning columns. It cannot be used with elements that do not have a reference area such as the root element.

Other Extensions

  1. In the XSL specification, the unit has to be put on the value which shows the length. In AH Formatter V7.1, “0” without the unit is also acceptable only when the length value is zero.

  2. In the XSL Specification, the description order of <fo:region-*> is defined as follows:

    (region-body+,region-before?,region-after?,region-start?,region-end?)

    However its rendering order is not defined. For this reason, if a part of region overlaps, it's important to determine which region should appear first. (With z-index, the order between region-* cannot be controlled.) AH Formatter V7.1 handles the <fo:region-*> elements in any description order and renders them exactly in that order. If you describe <fo:region-body> last of all, then the content can be rendered upper than the other <fo:region-*>.

  3. In the XSL Specification, the width of the padding or the border specified to <fo:region-body> or <fo:region-before>, etc. should be zero. AH Formatter V7.1 can accept and process values other than zero. The following is sample code.

    <fo:region-body padding="1.5cm" border-color="red" border-style="solid" border-width="2pt"/>

  4. Although only xml:lang of the XML specification is explicitly stated in the XSL specification, AH Formatter V7.1 accepts the following XML input. The same is applied to XHTML and XML+CSS.


Document Information

This section describes how to embed document information into PDF file.

<axf:document-info> / HTML <meta>

Document information such as an author and title can be embedded in the PDF. AH Formatter V7.1 generates document information automatically by adding the following extended elements. The information that was embedded into PDF can be seen by Adobe Acrobat or Reader.

Common Usage:

Specifies the document information. The information is not included in the generated areas. For example, this information is embedded into PDF.

Areas:

None.

Constraints:
<!ELEMENT axf:document-info EMPTY>
<!ATTLIST axf:document-info name  CDATA #REQUIRED>
<!ATTLIST axf:document-info value CDATA #REQUIRED>
Contents:

EMPTY

Examples:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
         xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions">
 ...
 <fo:declarations>
  <axf:document-info name="document-title" value="The document title"/>
  <axf:document-info name="subject" value="The document subject"/>
  <axf:document-info name="author" value="The author"/>
  <axf:document-info name="keywords" value="Comma-separated keywords list"/>
 </fo:declarations>
 ...

In HTML, the setting equivalent to <axf:document-info> can be specified with the name attribute in the <meta> tag. The setting of <meta name="document-title"> will take precedence over the setting of <title>. See also (-ah-)display to learn more about <meta>.

  <meta name="document-title" content="The document title" />
  <meta name="subject" content="The document subject"/ >
  <meta name="author" content="The author" />
  <meta name="keywords" content="Comma-separated keywords list" />
  ...

The <axf:document-info> extension property can be placed as a child of <fo:declarations>, or as the first child element of <fo:page-sequence>. <axf:document-info> as a child of <fo:page-sequence> is effective only for PDF output in multi separate volume. <axf:document-info> as a child of <fo:page-sequence> overwrites <axf:document-info> as a child of <fo:declarations> and is utilized for an information of the document when outputting in separate volume. Therefore the same document information is embedded in all the separate volumes unless <axf:document-info> is specified to <fo:page-sequence>.

With AH Formatter V7.1 Lite, <axf:document-info> specified to <fo:page-sequence> is ignored.

Properties of <axf:document-info> are name and value, both are required. The value of name must be one of the following. The information with “*” will be outputted either to the first document or all documents generated by multi-volume output by specifying the axf:document-info-include property. Other information will be always outputted to all documents generated by multi-volume output.

  • document-title

    Specifies the title of the document.

  • subject

    Specifies the subtitle of the document.

  • author

    Specifies the author of the document.

  • author-title no-LT

    Specifies the title or some keywords of the author.

  • description-writer no-LT

    Specifies the author of the document description.

  • keywords

    Enumerates the comma-deliminated keyword.

  • copyright-status no-LT

    Specifies the status of the copyright using either of the following.

    • Unknown
    • Copyrighted
    • PublicDomain

    Effective with PDF1.4 or later.

  • copyright-notice no-LT

    Specifies the information of the copyright. Effective with PDF1.4 or later.

  • copyright-info-url no-LT

    Specifies the URL of the copyright information. This URL is treated just as a character string and the program does not access this URL. Effective with PDF1.4 or later.

  • xmp no-LT

    Specifies the URL of XMP. This URL follows <uri-specification> in the XSL specification. See also URI. The validity of a XMP file is checked simply whether it is well-formed or not. Effective with PDF1.4 or later.

    The following settings become invalid when XMP is specified.

    When <axf:document-info> has the following specifications, it will be compensated if there is no corresponding description in XMP.

    • document-title
    • subject
    • author
    • author-title
    • description-writer
    • keywords
    • copyright-status
    • copyright-notice
    • copyright-info-url

    In addition, the contents of AH Formatter V7.1 or the current time is set to the following contents in XMP.

    • <pdf:Producer>
    • <xmp:CreatorTool>
    • <xmp:CreateDate>
    • <xmp:ModifyDate>

  • pagemode *

    Specifies the method of the display when the document is opened. The following one can be specified.

    • UseNone
      Neither document outline nor thumbnail images visible
    • UseOutlines
      Document outline visible
    • UseThumbs
      Thumbnail images visible
    • FullScreen
      Full-screen mode, with no menu bar, window controls, or any other window visible
    • UseOC
      Optional content group panel visible

    UseOC can be specified for PDF1.5 or later. The default is UseOutlines when the outline exists.

    “Document outline” is expressed as “bookmark” in Adobe Acrobat or Reader.

  • pagelayout *

    Specifies the page layout when a document is opened. You can specify either of the following.

    • SinglePage
      Display one page at a time
    • OneColumn
      Display the pages in one column
    • TwoColumnLeft
      Display the pages in two columns, with odd-numbered pages on the left
    • TwoColumnRight
      Display the pages in two columns, with odd-numbered pages on the right
    • TwoPageLeft
      Display the pages two at a time, with odd-numbered pages on the left
    • TwoPageRight
      Display the pages two at a time, with odd-numbered pages on the right

    TwoPageLeft and TwoPageRight can be specified for PDF1.5 or later. When nothing is specified, it depends on the operation of the PDF viewer application.

  • hidetoolbar *

    Specifies whether to hide a tool bar or not when a document is opened with the value of true or false. The default value is false.

  • hidemenubar *

    Specifies whether to hide a menu bar or not when a document is opened with the value of true or false. The default value is false.

  • hidewindowui *

    Specifies whether to hide user interface elements (a scroll bar, the control for navigation, etc.). or not when a document is opened with the value of true or false. The default value is false.

  • fitwindow *

    Specifies whether to change the size of a document window to fit the page size or not when a document is opened with the value of true or false. The default value is false.

  • centerwindow *

    Specifies whether to arrange a document window in the center of a screen or not when a document is opened with the value of true or false. The default value is false.

  • displaydoctitle *

    Specifies whether to display the title of a document or not when a document is opened with the value of true or false. The default value is false. Effective with PDF1.4 or later.

  • openaction *

    Specifies the address displayed when the document is opened or the action executed. The value similar to <number-with-fragment> of internal-destination can be described here. See also Making Link too. Action with a name and JavaScript can also be specified at this time.

    • value="#Named=Print"
      The print dialog will be displayed when the document is opened.
    • value="#Named=LastPage"
      The last page is displayed when the document is opened.
    • value="#JavaScript=arbitrary JavaScript program"
      Executes the specified JavaScript.

    “#” Named coming right after or JavaScript are case insensitive. Actions which can be specified to Named correspond to the menu name of a viewer. The operation in the case where an unknown name is specified to Named, or in the case where the wrong program is specified to JavaScript are not guaranteed. JavaScript cannot be specified with PDF/A. If allow-javascript="false" is specified in the Option Setting File, the specified JavaScript is ignored.

  • createdate, modifydate

    Specifies “/CreationDate”, “/ModDate” in PDF. When modifydate is not specified, it is considered the current time. When createdate is not specified, it is considered modifydate. If modifydate is older than createdate, it will be adjusted to createdate.

    The date format is a string in the ISO 8601 format. The following format of this standard is accepted:

    • YYYY-MM-DD(Thh(:mm(:ss)?)?)?(Z|±hh(:mm)?)?

    The numbers 0 to 9 are given to Y, M, D, h, m and s, either “+” or “-” is given to “±”. Date “-” and time “:” separators may be omitted. For example, the following strings are acceptable:

    • 2018-04-13T12:34:56+09:00
    • 2018-04-13T12:34+09
    • 20180413T123456+09
    • 20180413T1234

    When time zone is omitted, it is considered the system time zone (local time). Even dates that do not exist are appropriately corrected. The setting is ignored for dates before 1970, invalid strings, and dates that cannot be corrected.

<axf:custom-property> / HTML <meta> no-LT

Specifies the custom property in PDF. Effective with PDF1.4 or later. Invalid with PDF/A.

Common Usage:

Specifies the custom property. This element does not create an area.

Areas:

None.

Constraints:
<!ELEMENT axf:custom-property EMPTY>
<!ATTLIST axf:custom-property name  CDATA #REQUIRED>
<!ATTLIST axf:custom-property value CDATA #REQUIRED>
Contents:

EMPTY

In HTML, the setting equivalent to <axf:custom-property> can be specified with the itemprop attribute in the <meta> tag. If both the itemprop attribute and the name attribute are specified, the name attribute will be ignored.

  <meta itemprop="Custom-Prop" content="blah blah blah"/>
  ...

The <axf:custom-property> extension can be placed in the child of <fo:declarations>. Its properties are name and value, both of which are mandatory. Neither should be empty. The following cannot be specified to name. name is case sensitive. itemprop in <meta> is the same as name.

  • Title
  • Author
  • Subject
  • Keywords
  • Creator
  • Producer
  • CreationDate
  • ModDate
  • Trapped

This element is not available with AH Formatter V7.1 Lite.

HTML <meta name="color-profile"> V7.1 no-LT

Use <meta> in HTML to specify the same as <fo:color-profile> in FO. For example,

<fo:color-profile color-profile-name="#CMYK" src="JapanColor2001Coated.icc#OutputConditionIdentifier=JC200103"/>

is described as follows:

<meta name="color-profile" content="name='#CMYK' src='JapanColor2001Coated.icc#OutputConditionIdentifier=JC200103'"/>

content is a list of <name>=<value> separated by spaces, and one of the following can be specified:

  • name=<string>
  • src=<string>
  • rendering-intent=[auto | perceptual | relative-colorimetric | saturation | absolute-colorimetric]

These features are not available with AH Formatter V7.1 Lite.

axf:pdftag / CSS -ah-pdftag no-LT

Specifies the tag name of Tagged PDF.

Value:<string>
Initial:empty string
Applies to:all formatting objects
Inherited:no
Percentages:N/A

Customizes the tag name when outputting Tagged PDF. When you want to make the tag name of the relevant element “Paragraph”, e.g., specify as follows:

<fo:block axf:pdftag="Paragraph">

When new-tagging-mode is set to true, and an empty string is specified explicitly as shown below, that element does not create a tag but belongs to the tag to which the parent area belongs.

<fo:block axf:pdftag="''">

Multiple Separate Volume no-LT

AH Formatter V7.1 makes it possible to output PDF in Multiple Separate Volume. These features are not available in CSS. These features are not available with AH Formatter V7.1 Lite.

<axf:output-volume-info>

Common Usage:

Makes it possible to output PDF in separate volume per <fo:page-sequence> when outputting the formatted result.

Areas:

None.

Constraints:
<!ELEMENT axf:output-volume-info EMPTY>
<!ATTLIST axf:output-volume-info initial-volume-number NMTOKEN "1"><!-- digits -->
<!ATTLIST axf:output-volume-info format                CDATA   "1">
<!ATTLIST axf:output-volume-info bookmark-include (first|all|separate) "separate">

The <axf:output-volume-info> is placed as a child of <fo:declarations>.

Contents:

EMPTY

Examples:
<axf:output-volume-info
  initial-volume-number="2"
  format="-1"
  bookmark-include="separate"
/>

<fo:page-sequence>
  PAGE-SEQUENCE-1
  ...
</fo:page-sequence>
<fo:page-sequence>
  PAGE-SEQUENCE-2
  ...
</fo:page-sequence>
<fo:page-sequence axf:output-volume-break="true">
  PAGE-SEQUENCE-3
  ...
</fo:page-sequence>

Effective only when outputting to files. It's not available for printing or stream output. At that time the file name should be given by GUI, command line parameter or etc. The file names of separate volumes are given automatically based on the output file names. This process is done by inputting the strings formatted by the format property right before the file extension of the output file name. In the above example, when document.pdf is given to the file name, PAGE-SEQUENCE-1 and PAGE-SEQUENCE-2 are outputted to document-2.pdf, PAGE-SEQUENCE-3 is outputted to document-3.pdf.

The numeric value applied to the format property can be given by the axf:initial-volume-number property as the initial value. The format property is the same as “7.26.1. format” in the XSL-FO specification.

The volume is separated by the axf:output-volume-break property specified to <fo:page-sequence>. If the axf:output-volume-filename property is specified, only the separated volumes can be outputted with the specified file name.

The book mark of PDF in multi separate volume can be set by the axf:bookmark-include from the following options. However it is invalid for bookmarks created by <fo:bookmark>. Use axf:outline-*.

  • Adds a bookmark to the first separate volume only.
  • Adds bookmarks to all the separate volumes.
  • Adds each bookmark to each separate volume.

The following conditions are required for the actual separate volume.

  • The <axf:output-volume-info> element should be included in FO.
  • The following items are set in each interface.
    GUIMulti Volume should be checked in the PDF Output Dialog.
    Command-lineThe -multivol parameter should be specified.
    .NETtrue should be specified to the MultiVolume property.
    COMtrue should be specified to the MultiVolume property.
    JavaThe separate volume should be specified by XfoObj::setMultiVolume().
    C/C++The separate volume should be specified by XfoObj::setMultiVolume().

axf:bookmark-include no-LT

Specifies how to include bookmarks in multi separate volume.

Value:first | all | separate | separate-group
Initial:separate
Applies to:axf:output-volume-info
Inherited:no
Percentages:N/A

Values have the following meanings:

first

Adds a bookmark to the first separate volume.

all

Adds bookmarks to all the separate volumes.

separate

Adds each bookmark to each separate volume. Bookmarks are added to the volume where axf:outline-level="1" appears. The bookmark that goes across the volume is added to the previous volume. For that reason, the external link to the other volume may be included even though axf:bookmark-include="separate" is specified. Bookmarks grouped by axf:outline-group are attached to the last separate volume.

separate-group

Same as separate, but also adds grouped bookmarks to each volume.

This property is not available with AH Formatter V7.1 Lite.

axf:document-info-include no-LT

Specifies how to include document information in multi separate volume.

Value:first | all
Initial:first
Applies to:axf:output-volume-info
Inherited:no
Percentages:N/A

Values have the following meanings:

first

Adds document information to the first separate volume.

all

Adds document information to all the separate volumes.

See <axf:document-info>. This property is not available with AH Formatter V7.1 Lite.

axf:initial-volume-number no-LT

Specifies the initial volume number in multi separate volume.

Value:<number>
Initial:1
Applies to:axf:output-volume-info
Inherited:no
Percentages:N/A

This value is applied for the format property and utilized for the PDF file name to output. In the following example, the file name of the separate volume is document-2.pdf, document-3.pdf, document-4.pdf, and so on.

<axf:output-volume-info
  initial-volume-number="2"
  format="-1"
/>

This property is not available with AH Formatter V7.1 Lite.

axf:output-volume-break no-LT

Separates the file in multi volume.

Value:true | false
Initial:false
Applies to:fo:page-sequence
Inherited:no
Percentages:N/A

Values have the following meanings:

true

Separates the volume newly from this <fo:page-sequence>.

false

Do not separates the volume newly from this <fo:page-sequence>.

Specifies axf:output-volume-break="true" to <fo:page-sequence> where you want to start separating the volume. The document number increases one by one. When separating the volume, axf:output-volume-break="true" is considered to be always being specified to the first <fo:page-sequence>. If axf:output-volume-break="false" is specified explicitly, it is ignored.

This property is not available with AH Formatter V7.1 Lite.

axf:output-volume-filename no-LT

Specifies the document file name in multi separate volume.

Value:<string>
Initial:empty string
Applies to:fo:page-sequence
Inherited:no
Percentages:N/A

If nothing specified, the automatic file name using the format property is adopted. If this property is specified, the specified name is adopted. This property is effective only with the top <fo:page-sequence> or with the <fo:page-sequence> where axf:output-volume-break="true" is specified.

In the following example, suppose that if document.pdf is specified as the file name of the PDF output, the separated file names will be document-2.pdf, chapterX.pdf, document-4.pdf, and so on.

<axf:output-volume-info
  initial-volume-number="2"
  format="-1"
/>

<fo:page-sequence>
  ...
</fo:page-sequence>
<fo:page-sequence axf:output-volume-break="true" axf:output-volume-filename="chapterX.pdf">
  ...
</fo:page-sequence>
<fo:page-sequence axf:output-volume-break="true">
  ...
</fo:page-sequence>

The original PDF file name cannot be omitted even though axf:output-volume-filename is specified to all the <fo:page-sequence>. This property is not available with AH Formatter V7.1 Lite.


This section describes how to create bookmark and link within the PDF file.

Making Bookmark

A PDF document has a function called bookmarks. Bookmarks in Adobe Acrobat or Reader consist of a tree-structured hierarchy which serve as a “visual table of contents”, allowing the user to navigate to the target place by clicking on items.

PDF bookmark

AH Formatter V7.1 generates bookmarks automatically by adding the extended properties to the objects to have bookmarks.

The following sample illustrates how to create the bookmark of the above picture.

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
         xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions">
...
<fo:block axf:outline-level="1"
          axf:outline-expand="false"
          axf:outline-title="Colophon">
  ...
</fo:block>
<fo:block axf:outline-level="1"
          axf:outline-expand="false"
          axf:outline-title="Table of Contents">
  ...
</fo:block>
<fo:block axf:outline-level="1"
          axf:outline-expand="true"
          axf:outline-title="1. Introduction and Overview">
  <fo:block axf:outline-level="2"
            axf:outline-expand="true"
            axf:outline-title="1.1. Processing a Stylesheet">
    <fo:block axf:outline-level="3"
              axf:outline-expand="false"
              axf:outline-title="1.1.1. Tree Transformations">
      ...
    </fo:block>
    <fo:block axf:outline-level="3"
              axf:outline-expand="false"
              axf:outline-title="1.1.2. Formatting">
      ...
    </fo:block>
  </fo:block>
  <fo:block axf:outline-level="2"
            axf:outline-expand="false"
            axf:outline-title="1.2. Benefits of XSL">
    ...
  </fo:block>
</fo:block>
<fo:block axf:outline-level="1"
          axf:outline-expand="false"
          axf:outline-title="2. XSL Transformation">
  ...
</fo:block>
...

axf:outline-expand / CSS -ah-outline-expand

Specifies whether to display the lower hierarchy of bookmark items or not.

Value:true | false
Initial:true
Applies to:block-level formatting objects
Inherited:no
Percentages:N/A

true specifies to display the lower hierarchy in the expanded state. false specifies to display in the collapsed state. In CSS, (-ah-)bookmark-state is also available.

axf:outline-group / CSS -ah-outline-group

Groups bookmark items, and outputs them collectively.

Value:<string>
Initial:empty string
Applies to:block-level formatting objects
Inherited:no
Percentages:N/A

If this property is omitted or specifies empty string, bookmark items are not grouped. If this specifies any string, the string is used as the name of group. The group with the same name is outputted collectively. The non-grouped bookmark is outputted as the group without the group name.

axf:outline-level / CSS -ah-outline-level

Indicates the hierarchy level of bookmark items.

Value:<number>
Initial:0
Applies to:block-level formatting objects
Inherited:no
Percentages:N/A

The <number> must be a non-negative integer. Initial value is 0 and it means that bookmarks should not be created. The highest level of bookmarks is 1 and it becomes 2 or more according to the hierarchy level of the bookmarks. In CSS, (-ah-)bookmark-level is also available.

axf:outline-title / CSS -ah-outline-title

Specifies the string which appears as a title of bookmarks.

Value:<string>
Initial:empty string
Applies to:block-level formatting objects
Inherited:no
Percentages:N/A

If this property is omitted or has an empty string, the text of the object to which the property is added will become the title. In other words, the following two samples create the same bookmark.

<fo:block axf:outline-level="2" axf:outline-title="1. Introduction">...
<fo:block axf:outline-level="2">1. Introduction</fo:block>

In CSS, (-ah-)bookmark-label is also available.

axf:outline-color / CSS -ah-outline-color no-LT

Specifies the color which appears as a title of bookmarks.

Value:<color>
Initial:transparent
Applies to:block-level formatting objects
Inherited:no
Percentages:N/A

When transparent is specified, the color information is not set to PDF.

This property is effective with PDF1.4 or later. This property is not available with AH Formatter V7.1 Lite.

axf:outline-font-style / CSS -ah-outline-font-style no-LT

Specifies the font style which appears as a title of bookmarks.

Value:normal | italic
Initial:normal
Applies to:block-level formatting objects
Inherited:no
Percentages:N/A

Values have the following meanings:

normal

Specifies normal style.

italic

Specifies italic.

This property is effective with PDF1.4 or later. This property is not available with AH Formatter V7.1 Lite.

axf:outline-font-weight / CSS -ah-outline-font-weight no-LT

Specifies the font weight which appears as a title of bookmarks.

Value:normal | bold
Initial:normal
Applies to:block-level formatting objects
Inherited:no
Percentages:N/A

Values have the following meanings:

normal

Specifies normal weight.

bold

Specifies bold weight.

This property is effective with PDF1.4 or later. This property is not available with AH Formatter V7.1 Lite.

Remarks

  • These properties have to be created in block areas or inline areas (<fo:block>, <fo:inline> ...). If you specify them in an <fo:wrapper>, for example, they are not effective.
  • When the language is not supported in Acrobat and the font that belongs to the unsupported language is specified for the bookmark, there may be a possibility of the font displaying incorrectly in Adobe Acrobat or Reader.

In XSL-FO, PDF links can be created easily by using <fo:basic-link>. In HTML, <a> is used to create links.

PDF links are classified either as an internal link to a specified position in the PDF document, or as an external link to an external document. The internal-destination property of <fo:basic-link> indicates a link to a position in the same document. The external-destination property indicates a link to an external document. Below are the examples of both.

The external link specified by the local file is transformed into either “Open the file” or “World Wide Web link” by the use-launch-for-local-file property in PDF Output Settings. The external link specified by the non-local file is always transformed into “World Wide Web link”.

Furthermore, it's possible to specify professional links as follows:

  • Specifies the following actions for the external link explicitly.
    • Moves the destination inside PDF (GoToR)
    • Opens the file (Launch)
    • World Wide Web link (URI)
  • Possible to specify ID (named destination) for an external link to another PDF.
  • Possible to specify ID (named destination) for an internal link.
  • Possible to specify the page number for the external link in PDF.
  • Possible to specify the page number for the internal link.
  • Possible to specify the type of destination for the external link.
  • Possible to specify the type of destination for the internal link.
  • Possible to specify the external link in the bookmark.
  • Possible to specify the internal link in the bookmark.

For further understanding see also ISO 32000-1 or ISO 32000-2. The professional links are not available with AH Formatter V7.1 Lite.

The setting of external-destination for the external link in PDF conforms to the following specification of PDF parameters. Not all the parameters are effective with AH Formatter V7.1. The invalid parameters are ignored.

This specification provides the following examples.

  • http://mydocs/doc.pdf#nameddest=Chapter6
  • http://mydocs/doc.pdf#page=3
  • http://mydocs/doc.pdf#page=3&zoom=200,250,100
  • http://mydocs/doc.pdf#zoom=50
  • http://mydocs/doc.pdf#page=72&view=fitH,100
  • http://mydocs/doc.pdf#view=fitb&nameddest=Chapter3
  • http://mydocs/doc.pdf#pagemode=none
  • http://mydocs/doc.pdf#pagemode=bookmarks&page=2
  • http://mydocs/doc.pdf#page=3&pagemode=thumbs

Only the following parameters are effective with AH Formatter V7.1. The case sensitivity is ignored.

  • nameddest
  • page
  • zoom
  • view
  • viewrect

For example, it's invalid to specify fitH, fitR and fitBH for the external link. These are effective only with the internal link. If the required values for the PDF parameters are omitted in fitH, etc., the values are accounted as 0.

With the external link for PDF, it's possible to specify whether to open a new window by the show-destination property. A link destination except PDF is invalid. If show-destination="new" is specified, a new window will be opened and PDF will be displayed on the window. If show-destination="replace" is specified, a new window will not be opened but PDF will be displayed in the current window. When nothing is specified, it depends on the operation of the PDF viewer application. Although it is defined as "replace" in the XSL-FO specification when the property is omitted, AH Formatter V7.1 complies with the specification a little differently. show-destination property is invalid under the following conditions.

  • Other than the case that axf:action-type is specified as "gotor" or as "launch" when the link destination is PDF.
  • In the internal link. There may be a case that an internal link is embedded as an external link when separating the volume. show-destination specified to the internal link is effective only in that case.

AH Formatter V7.1 provides the following extension properties for the professional link.

axf:action-type / CSS -ah-action-type

Specifies the action of External Link. See also Form Actions.

Value:auto | gotor | launch | uri
Initial:auto
Applies to:fo:basic-link
Inherited:no
Percentages:N/A

Values have the following meanings:

auto

Dependent on the system setting.

gotor

Opens the link destination by the “GoToR” action as PDF. The URI of the link destination is considered PDF.

launch

Opens the link destination by the “Launch” action as the file.

uri

Opens the link destination by the “URI” action as URI (World Wide Web).

When the link destination is not a local file, such as http:, the action type is “URI” at any time. When axf:action-type="auto" specified, the external link specified by the local file is transformed into either “Open the file” or “World Wide Web link” by the use-launch-for-local-file property in PDF Output Settings. The external link specified by the non-local file is always transformed into “World Wide Web link”.

axf:destination-type / CSS -ah-destination-type no-LT

Specifies the way a link opens in a link destination.

Value:<string>
Initial:empty string
Applies to:block level formatting object
Inherited:no
Percentages:N/A

The destination type has the following options. If nothing specified, it's accounted as axf:destination-type="xyz-top". The case sensitivity is ignored. axf:destination-type can be specified together with ID in the External Link, ID in the Internal Link, Page Number in the External Link, Page Number in the Internal Link, Bookmark with the External Link and Bookmark with the Internal Link.

Destination Type of PDFHow to specify axf:destination-type
[page /XYZ left top zoom]AH Formatter V7.1 calculates the value of left/top. However it's possible to specify null or non-null explicitly. The user can specify the arbitrary value for zoom.
axf:destination-type="xyz"Specifies left and top as null.
axf:destination-type="xyz-left"Specifies top as null.
axf:destination-type="xyz-top"Specifies left as null.
axf:destination-type="xyz-left-top"
If nothing is specified to zoom, it's accounted as null. Specifies % value to zoom as follows:
axf:destination-type="xyz-top 75"
If only the numbers are specified, the value is accounted for xyz-top.
axf:destination-type="75"
[page /Fit]
axf:destination-type="fit"
[page /FitH top]AH Formatter V7.1 calculates the value of top. Effective only to specify in the internal link.
axf:destination-type="fith"
[page /FitV left]AH Formatter V7.1 calculates the value of left.
axf:destination-type="fitv"
[page /FitR left bottom right top]AH Formatter V7.1 calculates the value of left/bottom/right/top. Effective only to specify in the internal link.
axf:destination-type="fitr"
[page /FitB]
axf:destination-type="fitb"
[page /FitBH top]AH Formatter V7.1 calculates the value of top. Effective only to specify in the internal link.
axf:destination-type="fitbh"
[page /FitBV left]AH Formatter V7.1 calculates the value of left.
axf:destination-type="fitbv"

This property is not available with AH Formatter V7.1 Lite.

axf:outline-external-destination / CSS -ah-outline-external-destination no-LT

Sets the external link in the PDF bookmark.

Value:<uri-specification>
Initial:empty string
Applies to:block-level formatting objects
Inherited:no
Percentages:N/A

Values have the following meanings:

<uri-specification>

Specifies the URI of the link destination.

This property is not available with AH Formatter V7.1 Lite.

axf:outline-internal-destination / CSS -ah-outline-internal-destination no-LT

Sets the internal link in the PDF bookmark.

Value: <idref> | <number-with-fragment>
Initial:empty string
Applies to:block-level formatting objects
Inherited:no
Percentages:N/A

Values have the following meanings:

<idref>

Specifies the ID of the link destination.

<number-with-fragment>

Specifies the page number of the link destination. This string is simple numeric characters or the following string that combines numeric characters and a fragment with “#”. See Making Link for the fragment.

123#zoom=50

The page number also can be specified in the fragment.

#page=123&zoom=50

When the page number is not specified, it is usually considered the 1st page. However, when the top position is specified, it is considered the head of the page of a block where axf:outline-internal-destination is contained. For example, it is specified as follows:

#view=fit
#view=fith
#zoom=,,0

This property is not available with AH Formatter V7.1 Lite.

A link destination is created when axf:destination-type is set and the ID of the destination is specified in the id property.

<fo:block id="Chapter6" axf:destination-type="xyz-top">

The ID is specified in external-destination if the link destination is referred to from an external link in a different PDF. Only the nameddest parameter is valid in the URI.

<fo:basic-link external-destination="http://mydocs/doc.pdf#nameddest=Chapter6"
               axf:action-type="gotor">

A link destination is created when axf:destination-type is set and the ID of the destination is specified in the id property.

<fo:block id="Chapter6" axf:destination-type="xyz-top">

The ID is specified in internal-destination when creating an internal link.

<fo:basic-link internal-destination="Chapter6">

The page number can be accounted by the page parameter in the URI. If both page and nameddest are specified, nameddest takes priority. When specifying the page number, the destination information cannot be set to the link destination. Therefore the type of the destination is given by reading the parameter in the URI. The unreadable parameter is discarded.

<fo:basic-link external-destination="http://mydocs/doc.pdf#page=72&amp;view=fitH,100"
               axf:action-type="gotor">

When neither page nor nameddest are included in the parameter of the URI, it's accounted as page=1. The page number is accounted as physical in PDF.

Adds extension in order to specify the page number to the value of internal-destination.

<fo:basic-link internal-destination="72">

The type of the destination can be specified by adding the parameter of the external link URI.

<fo:basic-link internal-destination="72#view=fitH,100">

The page number is accounted as physical in PDF. If only the page number is specified, the type of the destination is accounted as view=fit.

To specify the external link to the bookmark, specify the axf:outline-external-destination property as follows:

<fo:block axf:outline-level="1"
          axf:outline-title="Chapter 6"
          axf:outline-external-destination="http://mydocs/doc.pdf#nameddest=Chapter6"
          axf:action-type="gotor"
          show-destination="new">

At that time, this bookmark becomes independent of the block such as fo:block, etc., which the bookmark belongs to.

To specify the internal link to the bookmark, specify the axf:outline-internal-destination property as follows:

<fo:block axf:outline-level="1"
          axf:outline-title="Chapter 6"
          axf:outline-internal-destination="Chapter6">

At that time, this bookmark becomes independent of the block such as fo:block, etc., which the bookmark belongs to.

  • Specify either internal-destination or external-destination.
  • There may be a case that an internal link is accounted as an external link when separating the multi volume. At that time, the action type of the link is accounted as axf:action-type="gotor".
  • When an unintended link is created, confirm the setting of your PDF viewer application first. For example, in Adobe Reader or Adobe Acrobat, the feature of “Create links from URLs” may create a link automatically.

Annotation no-LT

Annotations can be added to PDF with AH Formatter V7.1. For more details, see also ISO 32000-1 or ISO 32000-2. Annotations which can be specified here are a part of those. This function is not available with AH Formatter V7.1 Lite.

axf:annotation-type / CSS -ah-annotation-type no-LT

Specifies the type of the annotation.

Value:<string>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

Any of the following types of the annotation can be specified.

  • empty string

    No annotations.

  • Text

    Text annotation.

  • FreeText

    Free text annotation.

  • Stamp

    Rubber stamp annotation.

  • FileAttachment

    File attachment annotation.

Character strings are case insensitive.

<fo:basic-link> and HTML <a> always generate a Link annotation.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-author / CSS -ah-annotation-author no-LT

Specifies the author of the annotation.

Value:<string>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-title / CSS -ah-annotation-title no-LT

Specifies the title of the annotation.

Value:<string>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is effective with PDF1.5 or later. This property is not available with AH Formatter V7.1 Lite.

axf:annotation-contents / CSS -ah-annotation-contents no-LT

Specifies the content of the annotation.

Value:<string>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

Specifies the character string to be displayed for an <fo:basic-link> or HTML <a> or when axf:annotation-type specifies one of the following annotation types:

  • Text
  • FreeText
  • Stamp
  • FileAttachment

See Alternate descriptions are provided.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-color / CSS -ah-annotation-color no-LT

Specifies the color used for the background of the annotation.

Value:<color> | none
Initial:none
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-flags / CSS -ah-annotation-flags no-LT

Specifies the flag of the annotation.

Value:<string>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

Specifies the following character sequences by enumerating using the white space. They are case insensitive.

  • Invisible
  • Hidden
  • Print
  • NoZoom
  • NoRotate
  • NoView
  • ReadOnly
  • Locked
  • ToggleNoView
  • LockedContents

See also ISO 32000-1 or ISO 32000-2 to learn more.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-open / CSS -ah-annotation-open no-LT

Specifies the initial state of the annotation.

Value:true | false
Initial:false
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

Specifies whether it is displayed in the open state when the type of the annotation (axf:annotation-type) is as follows:

  • Text

Values have the following meanings:

true

Displays the annotation in the open state.

false

Displays the annotation in the closed state.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-icon-name / CSS -ah-annotation-icon-name no-LT

Specifies the name of the icon used for displaying the annotation.

Value:<string>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

Although arbitrary name can be specified for the icon used for the display of annotations, whether it can be displayed or not depends on the viewer application of a document. The annotation type (axf:annotation-type) shows the standard name which can be specified.

  • Text

    Standard names are as follows:

    • Comment
    • Help
    • Insert
    • Key
    • NewParagraph
    • Note
    • Paragraph

    Empty string is considered Note.

  • Stamp

    Standard names are as follows:

    • Approved
    • AsIs
    • Confidential
    • Departmental
    • Draft
    • Experimental
    • Expired
    • Final
    • ForComment
    • ForPublicRelease
    • NotApproved
    • NotForPublicRelease
    • Sold
    • TopSecret

    Empty string is considered Draft.

  • FileAttachment

    Standard names are as follows:

    • Graph
    • Paperclip
    • PushPin
    • Tag

    Empty string is considered PushPin.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-position-horizontal / CSS -ah-annotation-position-horizontal no-LT

Specifies the horizontal position of the annotation.

Value:<length>
Initial:0pt
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

The position specified is the distance from the left edge of the region and is used for the position of pop-up or icons and the position of rubber stamp annotations.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-position-vertical / CSS -ah-annotation-position-vertical no-LT

Specifies the vertical position of the annotation.

Value:<length>
Initial:0pt
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

The position specified is the distance from the top edge of the region and is used for the position of pop-up or icons and the position of rubber stamp annotations.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-width / CSS -ah-annotation-width no-LT

Specifies the width of the annotation.

Value:<length> | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is used for the width of pop-up and the width of rubber stamp annotations.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-height / CSS -ah-annotation-height no-LT

Specifies the height of the annotation.

Value:<length> | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is used for the height of pop-up and the height of rubber stamp annotations.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-font-family / CSS -ah-annotation-font-family no-LT

Specifies the font family of the free text annotation.

Value:<string>
Initial:depends on user agent
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-font-size / CSS -ah-annotation-font-size no-LT

Specifies the font size of the free text annotation.

Value:<absolute-size> | <relative-size> | <length> | <percentage>
Initial:depends on user agent
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:refer to the font size

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-font-weight / CSS -ah-annotation-font-weight no-LT

Specifies the font weight of the free text annotation.

Value:normal | bold
Initial:normal
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-font-style / CSS -ah-annotation-font-style no-LT

Specifies whether to make the font of the free text annotation italic.

Value:normal | italic
Initial:normal
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-text-color / CSS -ah-annotation-text-color no-LT

Specifies the color of the free text annotation.

Value:<color>
Initial:depends on user agent
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-text-align / CSS -ah-annotation-text-align no-LT

Specifies the alignment of the free text annotation.

Value:left | center | right
Initial:left
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-border-style / CSS -ah-annotation-border-style no-LT

Specifies the border style of the free text annotation.

Value:<border-style>
Initial:solid
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

The following can be specified for <border-style>. If anything else is specified, it is considered solid.

  • solid
  • dotted
  • dashed
  • dot-dash
  • dot-dot-dash

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-border-width / CSS -ah-annotation-border-width no-LT

Specifies the border width of the free text annotation.

Value:<border-width>
Initial:0pt
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-border-color / CSS -ah-annotation-border-color no-LT

Specifies the border color of the free text annotation.

Value:<color>
Initial:axf:annotation-text-color
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-file-attachment / CSS -ah-annotation-file-attachment no-LT

Specifies the file with which file attachment annotation is related.

Value:<uri-specification>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-createdate / CSS -ah-annotation-createdate V7.1 no-LT

Specifies the annotation creation date.

Value:<string>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

It is the value of /CreationDate in the annotation dictionary. If omitted, it is considered the same as axf:annotation-modifydate. See The date format for the character string that can be specified.

This property is not available with AH Formatter V7.1 Lite.

axf:annotation-modifydate / CSS -ah-annotation-modifydate V7.1 no-LT

Specifies the annotation modification date.

Value:<string>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:no
Percentages:N/A

It is the value of /M in the annotation dictionary. If omitted, it is considered the value of modifydate in <axf:document-info>. If axf:annotation-modifydate is older than axf:annotation-createdate, it will be adjusted to axf:annotation-createdate. See The date format for the character string that can be specified.

This property is not available with AH Formatter V7.1 Lite.


Acroform no-LT

It's possible to create PDF forms with AH Formatter V7.1. Forms consist of the field to fill in the text and buttons, etc. Moreover, the action can be specified.

Forms can be specified by describing <axf:form-field> inside <axf:form>.

<axf:form
  external-destination="http://www.antenna.co.jp/form-test.cgi"
  field-submit-method="post"
  field-submit-coordinates="true">
  <fo:block>
    Submit:
    <axf:form-field
      field-type="button"
      field-name="SubmitButton"
      action-type="submit"
      field-button-layout="caption"
      field-button-face="Submit!"
      width="5em"
      background-color="#eee"
      border="2px silver outset"
    />
  </fo:block>
  <fo:block>
    Text Field:
    <axf:form-field
      field-type="text"
      field-name="InputText"
      field-default-text="Input text here!"
      field-multiline="false"
      field-scroll="true"
      field-maxlen="32"
      width="10em"
      height="1.2em"
      background-color="#ff8"
      border="1pt silver inset"
    />
  </fo:block>
</axf:form>

When <axf:form-field> is not inside of <axf:form> and action-type is submit or reset, these do not function. <axf:form-field> other than these will work fine regardless of <axf:form>.

In the HTML form, the appearance of the following tags is specified by html.css. Tags other than these are ignored.

  • <form>
  • <input>
  • <button>
  • <textarea>
  • <select>
  • <option>

This function is not available with AH Formatter V7.1 Lite.

<axf:form> / HTML <form> no-LT

Common Usage:

Encloses the unit of the form action.

Areas:

Generates and returns a block-area.

Contents:

(#PCDATA | %inline; | %block;)*

axf:field-submit-method / CSS -ah-field-submit-method no-LT

Specifies the way to send the information when submitting a form field.

Value:get | post
Initial:get
Applies to:axf:form
Inherited:no
Percentages:N/A

Values have the following meanings:

get

Sends out a form as GET request.

post

Sends out a form as POST request.

axf:field-submit-coordinates / CSS -ah-field-submit-coordinates no-LT

Specifies whether to send out the coordinates of the mouse when submitting a form field.

Value:false | true
Initial:false
Applies to:axf:form
Inherited:no
Percentages:N/A

Values have the following meanings:

false

Does not send out the coordinates.

true

Sends out the coordinates.

<axf:form-field> / HTML <input> <button> <textarea> <select> no-LT

Common Usage:

Generates a form field.

Areas:

Generates and returns a single normal inline-area.

Contents:

(axf:form-field-option | axf:form-field-event)*

The main constraints of form fields generated by HTML forms are as follows:

  • Not all attributes that can be specified for <input>, <button>, <textarea>, <select> are supported.
  • Not all type that can be specified for <input> are supported.
  • If search, tel, url, email, month, week, datetime-local are specified as the type of <input>, it is treated as -ah-field-type:text.
  • By <input type="button">, <button type="button">, the button will be displayed, but it will not function as a field. In addition, only the text is valid for the contents displayed on the <button>.

See the contents of html.css to know more about supported features. Features not explicitly stated in html.css are invalid even if they are not listed in the constraint.

axf:field-type / CSS -ah-field-type no-LT

Specifies the field type.

Value:text | button | checkbox | radio | listbox | combobox | signature
Initial:N/A, a value is required
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

text

Specifies the Text field.

button

Specifies the Push Button field.

checkbox

Specifies the Check Box field.

radio

Specifies the Radio Button field.

listbox

Specifies the List Box field.

combobox

Specifies the Combo Box field.

signature

Specifies the Digital Signature field.

axf:field-name / CSS -ah-field-name no-LT

Specifies the field name.

Value:<string>
Initial:N/A
Applies to:axf:form-field
Inherited:no
Percentages:N/A

If the name is omitted, an appropriate name will be generated.

axf:field-name-suffix-page-number no-LT

Adds a page number to the field name.

Value:<string>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Adds a page number to the name specified by axf:field-name. It's invalid when axf:field-name is not specified. A character string that can be specified is the one that can be specified by format. A page number is formatted and added. If it's an empty string, nothing is added.

This property is specified when creating a form in <fo:static-content> and you want to make a separate form on each page.

axf:field-description / CSS -ah-field-description no-LT

Specifies the descriptive text of the field.

Value:<string>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

The string that was specified here as a value is shown as a tooltip with Acrobat etc.

axf:field-value / CSS -ah-field-value no-LT

Specifies the value used when submitting a form field, etc.

Value:<string>
Initial:empty string
Applies to:axf:form-field, axf:form-field-option
Inherited:no
Percentages:N/A

axf:field-flags / CSS -ah-field-flags no-LT

Specifies the flag of the field.

Value:<string>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Specifies the following character sequences by enumerating using the white space. They are case insensitive.

  • ReadOnly
    Makes it a read-only field. Same as axf:field-readonly="true", but the axf:field-flags setting takes precedence.
  • Required
    Makes it a input-required field. Same as axf:field-required="true", but the axf:field-flags setting takes precedence.
  • Multiline
    Makes the text field multiple lines. Same as axf:field-multiline="true", but the axf:field-flags setting takes precedence.
  • Scroll
    Makes the text field scrollable. Same as axf:field-scroll="true", but the axf:field-flags setting takes precedence.
  • Password
    Makes the text field password-protected. Same as axf:field-password="true", but the axf:field-flags setting takes precedence.
  • Checked
    Makes the check box and radio button being checked. Same as axf:field-checked="true", but the axf:field-flags setting takes precedence.
  • Multiple
    Makes multiple items selectable in the list box. Same as axf:field-multiple="true", but the axf:field-flags setting takes precedence.
  • Editable
    Makes the value editable in the combo box. Same as axf:field-editable="true", but the axf:field-flags setting takes precedence.
  • Hidden
    Makes it a hidden field. However, the size of the field is secured. Backgrounds and borders are displayed.

This property is not available with AH Formatter V7.1 Lite.

axf:field-readonly / CSS -ah-field-readonly no-LT

Specifies whether the field is read-only or not.

Value:true | false
Initial:false
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

true

The field is read-only.

false

The field is not read-only.

axf:field-required / CSS -ah-field-required no-LT

Specifies whether the field is enter-required or not.

Value:true | false
Initial:false
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

true

The field is enter-required.

false

The field is not enter-required.

axf:field-default-text / CSS -ah-field-default-text no-LT

Specifies the text entered into the text field from the beginning.

Value:<string>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

axf:field-multiline / CSS -ah-field-multiline no-LT

Specifies whether the text field is a single-line enterable field or a multi-line enterable field.

Value:false | true
Initial:false
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

false

The text field is a single-line enterable field.

true

The text field is a multi-line enterable field.

axf:field-scroll / CSS -ah-field-scroll no-LT

Specifies whether the text field is scrollable or not.

Value:false | true
Initial:false
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

false

The text field is not scrollable.

true

The text field is scrollable.

axf:field-password / CSS -ah-field-password no-LT

Specifies whether the text field requires the password or not.

Value:false | true
Initial:false
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

false

The text field does not require the password.

true

The text field requires the password. Entered characters are shown as “*”, etc.

axf:field-maxlen / CSS -ah-field-maxlen no-LT

Specifies the maximum number of characters which can be entered into the text field.

Value:<number>
Initial:0
Applies to:axf:form-field
Inherited:no
Percentages:N/A

When 0 or less is specified, the number of characters is not limited.

axf:field-format-category / CSS -ah-field-format-category no-LT

Specifies the format type of the text field.

Value:none | number | percentage | date | time
Initial:none
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

none

Does not specify the format.

number

Specifies the format for numerical values.

percentage

Specifies the format for percentage values.

date

Specifies the format for date values.

time

Specifies the format for time values.

Actual formats can be specified by axf:field-format.

axf:field-format / CSS -ah-field-format no-LT

Specifies the format of the text field.

Value:auto | [ [<string> | <number>] [<string> | <number> | true | false]* ]
Initial:auto
Applies to:axf:form-field
Inherited:no
Percentages:N/A

The setting of the format will differ depending on the type of formats specified by axf:field-format-category. When auto is specified, the default is adopted to all values. In other cases, values of axf:field-format-category can be specified as follows:

number

Values can be specified with a maximum of 5 as follows:

axf:field-format="2 0 1 '$ ' true"

These values have the following meanings in sequence.

  1. The number of digits after the decimal point. (default: 2)

    When the inputted value has many digit numbers after the decimal point, it is displayed by rounding off.

  2. How to display numbers with different separators. One of the following values can be specified. (default: 0)
    0.1,234.56
    1. 1234.56
    2.1.234,56
    3. 1234,56
    4.1'234.56
  3. How to display negative numbers. (default: 0)
    0.No processing.
    1.Display in red.
    2.Display with parentheses.
    3.Display in red with parentheses.
  4. Currency symbol. Any character strings can be specified. (default: empty)

    When putting a currency symbol before numbers, it's better to put a white space after the currency symbol like “$ ”. When putting it after numbers, put a white space before the currency symbol.

  5. Position of a currency symbol. If true is specified, it is displayed before numbers, if false is specified, it is displayed after numbers. (default: true)

percentage

Values can be specified with a maximum of 2 as follows:

axf:field-format="2 0"

Values have the same meaning as number.

date

Specifies the format by the numerical value or character strings. One of the following numerical values can be specified. (default: 0)

0.m/d
1.m/d/yy
2.mm/dd/yy
3.mm/yy
4.d-mmm
5.d-mmm-yy
6.dd-mmm-yy
7.yy-mm-dd
8.mmm-yy
9.mmmm-yy
10.mmm d, yyyy
11.mmmm d, yyyy
12.m/d/yy h:MM tt
13.m/d/yy HH:MM

The following 2 settings have the same meaning.

axf:field-format="2"
axf:field-format="'mm/dd/yy'"

Although an arbitrary format can be specified in the character string, the operation when specifying the mistaken format will not be guaranteed. See the specifications of JavaScript, etc. to learn the meaning of the character in the format.

time

Specifies the format by the numerical value or character strings. One of the following numerical values can be specified. (default: 0)

0.HH:MM
1.h:MM tt
2.HH:MM:ss
3.h:MM:ss tt

The following 2 settings have the same meaning.

axf:field-format="0"
axf:field-format="'HH:MM'"

Although an arbitrary format can be specified in the character string, the operation when specifying the mistaken format will not be guaranteed. See the specifications of JavaScript, etc. to learn the meaning of the character in the format.

axf:field-text-align / CSS -ah-field-text-align no-LT

Specifies the alignment of the text field.

Value:left | center | right
Initial:left
Applies to:axf:form-field
Inherited:no
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:field-font-size / CSS -ah-field-font-size no-LT

Specifies the font size of the character string displayed in the form fields.

Value:font-size | auto | <length>
Initial:font-size
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

font-size

Sets the value specified by the font-size property.

auto

Sets the font size to auto without specifying the size.

<length>

Sets the font size explicitly.

This property is not available with AH Formatter V7.1 Lite.

axf:field-button-layout / CSS -ah-field-button-layout no-LT

Specifies the positioning between the caption and icon displayed in the push button field.

Value:caption | icon | caption-below-icon | caption-above-icon | icon-caption | caption-icon | caption-over-icon
Initial:caption
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

caption

Only a caption is displayed on the button. An icon is not displayed.

icon

Only an icon is displayed on the button. A caption is not displayed.

caption-below-icon

A caption is displayed under the icon.

caption-above-icon

A caption is displayed on top of the icon.

icon-caption

A caption is displayed on the right side of the icon.

caption-icon

A caption is displayed on the left side of the icon.

caption-over-icon

A caption is displayed on the icon in piles.

axf:field-button-face / CSS -ah-field-button-face no-LT

Specifies the caption displayed in the push button field.

Value:<string>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

axf:field-button-icon / CSS -ah-field-button-icon no-LT

Specifies the icon displayed in the push button field.

Value:<uri-specification>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

axf:field-button-face-down / CSS -ah-field-button-face-down no-LT

Specifies the caption displayed when pressing the push button.

Value:<string>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

axf:field-button-icon-down / CSS -ah-field-button-icon-down no-LT

Specifies the icon displayed when pressing the push button.

Value:<uri-specification>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

axf:field-button-face-rollover / CSS -ah-field-button-face-rollover no-LT

Specifies the caption displayed when rolling over the push button.

Value:<string>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

axf:field-button-icon-rollover / CSS -ah-field-button-icon-rollover no-LT

Specifies the icon displayed when rolling over the push button.

Value:<uri-specification>
Initial:empty string
Applies to:axf:form-field
Inherited:no
Percentages:N/A

axf:field-checked / CSS -ah-field-checked no-LT

Specifies the initial state of the check box and the radio button.

Value:false | true
Initial:false
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

false

The initial state is unchecked.

true

The initial state is checked.

axf:field-checked-style / CSS -ah-field-checked-style no-LT

Specifies the style of the check box and the radio button.

Value:checkmark | circle | square | cross | star
Initial:checkmark
Applies to:axf:form-field
Inherited:no
Percentages:N/A

axf:field-top-index / CSS -ah-field-top-index no-LT

Specifies the first selected item in the list box, combo box.

Value:<number>
Initial:1
Applies to:axf:form-field
Inherited:no
Percentages:N/A

The specified value indicates what number of <axf:form-field-option> it is. The beginning number is 1. When less than 1 is specified or the specified number exceeds the number of elements contained, the value is considered 1.

axf:field-multiple / CSS -ah-field-multiple no-LT

Specifies whether multiple items can be chosen in the list box.

Value:false | true
Initial:false
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

false

Multiple items cannot be chosen.

true

Multiple items can be chosen.

axf:field-editable / CSS -ah-field-editable no-LT

Specifies whether the value can be edited with the combo box.

Value:false | true
Initial:false
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

false

The value cannot be edited.

true

The value can be edited.

axf:field-lock-document / CSS -ah-field-lock-document no-LT

Specifies whether to lock the document at the time of signing with the digital signature field.

Value:auto | false | true
Initial:auto
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

auto

The PDF viewer will display a user interface such as a dialog asking whether or not to lock the document.

false

Does not lock the document after signing.

true

Locks the document at the time of signing.

Effective with PDF1.7 or later.

<axf:form-field-option> / HTML <option> no-LT

Common Usage:

Specifies the component elements of the list box, combo box.

Areas:

No areas generated.

Contents:

#PCDATA

axf:field-selected / CSS -ah-field-selected no-LT

Specifies the first selected item in the list box, combo box.

Value:false | true
Initial:false
Applies to:axf:form-field-option
Inherited:no
Percentages:N/A

Values have the following meanings:

false

Does nothing.

true

Specifies the first selected item.

The axf:field-selected="true" setting overrides the axf:field-top-index setting. The behavior when multiple items specified is inconstancy.

Form Fields

These fields can be added to your forms:

These are all expressed by the <axf:form-field> extension element. <axf:form-field> is an inline element. Although many common extension properties can be specified to <axf:form-field>, the effective property differs depending on the field type. The size of the field can be specified with the width and the height properties. When omitted, a suitable size will be applied. Below shows the example of the setting for each form field.

Text field

Text field can be specified by field-type="text". The contents are empty. Whether it is a single line or not depends on the setting of field-multiline.

<axf:form-field
     field-type="text"
     field-default-text="TEXT"
     field-multiline="false"
     field-scroll="false"
     field-password="true"
     field-maxlen="100"
/>

The contents of field-default-text are not displayed in GUI.

Push Button field

Push Button field can be specified by field-type="button". The contents are empty. The Push button is usually an object used to perform an action.

<axf:form-field
     field-type="button"
     field-button-layout="caption"
     field-button-face="TEXT"
     field-button-icon="URI"
     field-button-face-down="DOWN"
     field-button-icon-down="URI"
     field-button-face-rollover="OVER"
     field-button-icon-rollover="URI"
/>

The contents of field-button-face are not displayed in GUI.

Check Box field

Check Box field can be specified by field-type="checkbox". The contents are empty.

<axf:form-field
     field-type="checkbox"
     field-checked="true"
     field-checked-style="checkmark"
/>

The status of field-checked="true" are not displayed in GUI.

Radio Button field

Radio Button field can be specified by field-type="radio". The contents are empty.

<axf:form-field
     field-type="radio"
     field-checked="true"
     field-checked-style="checkmark"
     field-name="Card"
     field-value="MasterCard"
/>

Radio buttons are usually arranged in groups of two or more. The group is identified as a radio button with the same field-name. Users can select only one of the radio buttons. Even if field-checked="true" is set multiply, only one button in a group is checked.

The status of field-checked="true" is not displayed in GUI.

List Box field

List Box field can be specified by field-type="listbox". <axf:form-field-option> is required for the contents. It should not be empty. <axf:form-field-option> expresses the contents of the list and these are lined up in the appearance order in the list. Neither the value of field-value nor the content text in <axf:form-field-option> should be empty or white-space characters.

<axf:form-field
     field-type="listbox"
     field-top-index="1"
     field-multiple="true"
>
 <axf:form-field-option field-value="M">MasterCard</axf:form-field-option>
 <axf:form-field-option field-value="V">Visa</axf:form-field-option>
 <axf:form-field-option field-value="A">AMEX</axf:form-field-option>
</axf:form-field>

The contents of the list box are not displayed in GUI.

Combo Box field

Combo Box field can be specified by field-type="combobox". <axf:form-field-option> is required for the contents. The contents should not be empty. <axf:form-field-option> is the same as that of the list box.

<axf:form-field
     field-type="combobox"
     field-top-index="1"
     field-editable="true"
>
 <axf:form-field-option field-value="M">MasterCard</axf:form-field-option>
 <axf:form-field-option field-value="V">Visa</axf:form-field-option>
 <axf:form-field-option field-value="A">AMEX</axf:form-field-option>
</axf:form-field>

The contents of the combo box are not displayed in GUI.

Digital Signature field

Digital Signature field can be specified by field-type="signature". The contents are empty. The appearance cannot be specified beforehand.

<axf:form-field
     field-type="signature"
     width="40pt"
     height="50pt"
/>

When performing the formatting process, the signature area is only secured and the signature field is not generated. The signature field is generated when generating PDF.

Form Actions

Form actions are realized by specifying the event to be triggered and the action corresponding to the event to each field. In AH Formatter V7.1, the action can be specified to the field that is included in <axf:form>. The contents of <axf:form> are arbitrary and generate a block area. Usually, <axf:form-field> is included in <axf:form>. The form actions include the following:

axf:action-type is prepared for the external link, but Form actions have more contents that can be specified.

axf:action-type

Specifies the action of Form Actions.

Value:auto | goto | gotor | launch | uri | reset | submit | javascript
Initial:auto
Applies to:axf:form-field
Inherited:no
Percentages:N/A

Values have the following meanings:

auto

Dependent on the system setting. See also axf:action-type for external link.

goto

Moves to the internal link destination by the “GoTo” action.

gotor

Opens the external link destination by the “GoToR” action as PDF. The URI of the external link destination is considered PDF.

launch

Opens the external link destination by the “Launch” action as the file.

uri

Opens the external link destination by the “URI” action as URI (World Wide Web).

reset no-LT

Resets a form field as a form action.

submit no-LT

Submits a form field as a form action.

javascript

Generates the action by JavaScript. This setting is available only with axf:form-field-event. Ignored when allow-javascript="false" is set in the Option Setting File.

Reset

Reset initializes the value of all the fields included in <axf:form> to their initial state. Specify axf:action-type="reset" to the button to reset. The action is generated by releasing the button.

<axf:form>
 <axf:form-field field-type="button" action-type="reset"/>
 <axf:form-field field-type="text" field-default-text="XXX"/>
 ...
</axf:form>

Submit

Submit sends out the information by using HTTP. The contents of each field are sent out as GET or the POST request of HTTP. That is, the information is submitted using the same HTTP method of HTML. The action is generated by releasing the button.

<axf:form
     external-destination="URI"
     field-submit-method="post"
     field-submit-coordinates="false"
>
 <axf:form-field field-type="button" action-type="submit"/>
 <axf:form-field field-type="text" field-default-text="YYY"/>
 ...
</axf:form>

Link cannot be specified to <axf:form> but directly specified to the Button field. The method is the same as that of <fo:basic-link>. The internal link can be specified as follows:

<axf:form-field field-type="button" internal-destination="IDREF" 
                                    action-type="goto"/>

Specifies goto to action-type or omits the setting. The action is generated by releasing the button.

The external link can be specified as follows:

<axf:form-field field-type="button" external-destination="URI"
                                    action-type="gotor"/>

You can specify any one of gotor, launch or uri to action-type.

<axf:form-field-event> no-LT

Common Usage:

Defines the form action which corresponds to the event.

Areas:

No areas generated.

Contents:
<!ELEMENT axf:form-field-event #PCDATA>
<!ATTLIST axf:form-field-event name        CDATA #REQUIRED>
<!ATTLIST axf:form-field-event action-type CDATA #REQUIRED>

It's possible to put the <axf:form-field-event> extension element as a child element of <axf:form-field>. The properties are name and action-type and both are required. One of the following event types can be specified to name. Case insensitive.

MouseUp

The action occurs when a mouse button is released on the form field.

MouseDown

The action occurs when a mouse button is pushed on the form field.

MouseEnter

The action occurs when a mouse cursor enters the form field.

MouseExit

The action occurs when a mouse cursor exits the form field.

OnFocus

The action occurs when a form field gets focus.

OnBlur

The action occurs when a form field loses focus.

The action occurred by <axf:form-field action-type> is the action by MouseUp. When both are specified like, <axf:form-field-event name="MouseUp">, <axf:form-field-event> will take precedence. When the same events are multiply specified to <axf:form-field-event>, it is indeterminate which one is adopted.

When action-type="javascript" is specified, the JavaScript program will be written in the content text. If an incorrect program is specified, the operation will not be guaranteed. However, when allow-javascript="false" is set in the Option Setting File, it's ignored.


Layer no-LT

Layers can be specified to PDF with AH Formatter V7.1. Layer settings are effective only with PDF1.5 or later. These features are not available with AH Formatter V7.1 Lite.

axf:layer-settings / CSS -ah-layer-settings no-LT

Defines layers.

Value: none | <layer-setting>#
Initial:none
Applies to:root element
Inherited:no
Percentages:N/A

<layer-setting> = <layer-name> [on | off]? [ intent [view | design] || view [on | off] || print [on | off] || export [on | off] || lang <string> preferred? || zoom <number> <number>? || locked ]?
<layer-name> = <string>

Values have the following meanings:

none

No definition.

<layer-setting>

Multiple layers can be defined by comma-separated items. What is essential for layer definition is <layer-name>. Other parameters are optional.

<layer-name>

Specifies a name to identify the layer. on or off specifies the default state of the layer when the document is opened. If omitted, it is assumed to be on. If view, print, export are not specified, the value specified here will be referenced.

intent

Specifies the intent of the layer. When view is specified, showing and hiding layers can be toggle. When design is specified, these cannot be toggled. If omitted, it is assumed to be view.

view

Specifies whether to show or hide the layer. Displayed when the document is opened with on, it is hidden with off.

print

Specifies whether to print the layer. It is printed by on and not printed by off.

export

Specifies whether to include the layer in the exported result. It is included by on and not included by off.

lang

Specifies the language of the layer. Displays the layer if the language of the PDF viewer application matches the specified lang when the document is opened. preferred also displays the layer when the language of the viewer partially matches lang. Whether the string of lang is valid or not depends on the PDF viewer application.

zoom

Specifies the minimum and maximum values of the magnification of the displayed layer. If only one value is specified, the minimum value is set.

locked

Locks the layer and disables editing. locked is effective with PDF1.6 or later.

In PDF/X, PDF/A and PDF/UA, the settings of view, print, and export are ignored.

This property is not available with AH Formatter V7.1 Lite.

axf:layer / CSS -ah-layer no-LT

Specifies to which layer the area is arranged.

Value:none | <layer-name>
Initial:none
Applies to:formatting object that generates area
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

The area is arranged to no layer.

<layer-name>

The area is arranged to the layer with the name specified by axf:layer-settings.

This property is not available with AH Formatter V7.1 Lite.


Extension for European Rule

AH Formatter V7.1 provides the extension for adjusting the amount of space before and after the punctuation in European Typography. Although these features cannot be used as a style in CSS, the setting of <space-end-punctuation> etc. in Option Setting File is effective.

<axf:space-end-punctuation>

Specifies the amount of space end the punctuation.

<axf:space-start-punctuation>

Specifies the amount of space start the punctuation.

<axf:space-between-digit-and-punctuation>

Specifies the amount of space between the digit and the punctuation.

<axf:space-between-punctuation-and-digit>

Specifies the amount of space between the punctuation and the digit.

These extension elements are all empty element and can be put on the right under <fo:declarations>. The area is not generated. The setting of <axf:space-between-digit-and-punctuation> or <axf:space-between-punctuation-and-digit> takes precedence over the setting of <axf:space-end-punctuation> or <axf:space-start-punctuation>. The following properties can be specified.

language

Specifies the language code (RFC3066). It is not possible to omit it.

Value:<language>
Initial:N/A
Inherited:no
Percentages:N/A

space

Specifies the amount of space. Specification is invalid when less than 0.

Value:<number> | <length> | <percentage> | figure | punctuation | thin | hair
Initial:N/A
Inherited:no
Percentages:refer to the font size

Values have the following meanings:

figure

Indicates the same amount as U+2007.

punctuation

Indicates the same amount as U+2008.

thin

Indicates the same amount as U+2009.

hair

Indicates the same amount as U+200A.

code

Specifies the code point to be applied.

Value:<string>
Initial:empty string
Inherited:no
Percentages:N/A

language and space are applied to all the specified code points.

For instance, the following would be specified to format French.

<axf:space-start-punctuation code="?" space="1 div 3" language="fr"/>
<axf:space-start-punctuation code="!" space="1 div 3" language="fr"/>
<axf:space-start-punctuation code=";" space="1 div 3" language="fr"/>
<axf:space-start-punctuation code=":" space="1 div 4" language="fr"/>
<axf:space-start-punctuation code="&#xBB;" space="1 div 4" language="fr"/>
<axf:space-end-punctuation   code="&#xAB;" space="1 div 4" language="fr"/>
<axf:space-between-punctuation-and-digit code="+" space="thin" language="fr"/>
<axf:space-between-punctuation-and-digit code="&#x2212;" space="thin" language="fr"/>
<axf:space-between-punctuation-and-digit code="&#xB1;" space="thin" language="fr"/>
<axf:space-between-digit-and-punctuation code="%" space="thin" language="fr"/>
<axf:space-between-digit-and-punctuation code="&#x2103;" space="thin" language="fr"/>
<axf:space-between-digit-and-punctuation code="&#x2109;" space="thin" language="fr"/>

These settings for European Typography can also be specified by the Option Setting File. The setting in FO overwrites it.


Appending Option Setting Information

AH Formatter V7.1 can specify the additional option setting information used inside the document. These features are not available in CSS.

<axf:formatter-config> no-LT

Common Usage:

Specifies additional option setting information. This element does not generate an area. These features are not available with AH Formatter V7.1 Lite.

Areas:

None.

Constraints:
<!ELEMENT axf:formatter-config (%axs-settings;)*>
<!ATTLIST axf:formatter-config src CDATA #IMPLIED>

The <axf:formatter-config> extension element can be set as many as you want right under fo:declarations.

The src property can optionally specify the external Option Setting File. It's an additional setting to the original settings and effective only in this document. It becomes base-uri for the relative path. A part of the element that is the same as %axs-settings; under the specified file is evaluated.

Contents:

%axs-settings; is an element which belongs to the name space http://www.antennahouse.com/names/XSL/Settings. The properties in the Option Setting File are included in the name space, however currently only the following elements and their child elements can be described. The other elements will be disregarded. Also, some specifications, such as those related to initialization, are ignored.

  • <formatter-settings>
  • <pdf-settings>
  • <text-settings>
  • <svg-settings>
  • <ps-settings>
  • <mathml-settings>
  • <cgm-settings>
Examples:
<fo:declarations>
 <axf:formatter-config src="add-settings.xml"
  xmlns:axs="http://www.antennahouse.com/names/XSL/Settings">
  <axs:pdf-settings pdf-version="PDF1.6" tagged-pdf="true"/>
 </axf:formatter-config>
</fo:declarations>

In this example, an additional option setting file, add-settings.xml is specified, and then PDF setting is added.

Remarks

Usually, the additional setting by <axf:formatter-config> never influences the formatting process of the following document. However, when the following settings are done by GUI, the additional settings will be reflected on the default settings, then reflected on the formatting of the following document.

The addition option setting information by <axf:formatter-config> is not reflected in the AreaTree.

When axf-formatter-config="false" is specified in the Option Setting File, the contents of <axf:formatter-config> will be ignored.


Printer Marks no-LT

AH Formatter V7.1 can draw printer marks in PDF etc. Since printer marks are drawn outside of the actual page size (trim size) specified with the page-width and page-height properties, they have no effect on the contents of the document. This function is not available with AH Formatter V7.1 Lite.

Printer Marks

axf:crop-offset / CSS -ah-crop-offset no-LT
axf:crop-offset-top / CSS -ah-crop-offset-top no-LT
axf:crop-offset-bottom / CSS -ah-crop-offset-bottom no-LT
axf:crop-offset-left / CSS -ah-crop-offset-left no-LT
axf:crop-offset-right / CSS -ah-crop-offset-right no-LT

Specifies the distance from the physical end to the trim size of the output medium.

Value:<length>
Initial:0pt
Applies to:fo:simple-page-master / CSS @page
Inherited:no
Percentages:N/A

The trim size is specified by the page-width and page-height properties (CSS size property). axf:crop-offset is for specifying how much the space is taken outside the trim size. In order to specify the same values vertically and horizontally, axf:crop-offset can be used. In order to specify individual values, axf:crop-offset-top, axf:crop-offset-bottom, axf:crop-offset-left and axf:crop-offset-right can be used. When axf:crop-offset and others are specified simultaneously, individual axf:crop-offset-* properties take priority.

These properties are not available with AH Formatter V7.1 Lite.

axf:crop-area-visibility / CSS -ah-crop-area-visibility no-LT

Specifies whether to display the area that is extended beyond the trim size.

Value:hidden | visible
Initial:hidden
Applies to:fo:simple-page-master / CSS @page
Inherited:no
Percentages:N/A

Specifies whether the area that overflows on the margin specified with axf:crop-offset is clipped with the trim size, if there is a bleed area, clipped with the bleed area, or the extended area is displayed.

These properties are not available with AH Formatter V7.1 Lite.

axf:bleed / CSS (-ah-)bleed no-LT
axf:bleed-top / CSS -ah-bleed-top no-LT
axf:bleed-bottom / CSS -ah-bleed-bottom no-LT
axf:bleed-left / CSS -ah-bleed-left no-LT
axf:bleed-right / CSS -ah-bleed-right no-LT

Specifies the width of the bleed area for cutting off. [CSS3-GCPM] Page marks and bleed area (“bleed” has been removed from GCPM on and after May 13, 2014)

Value:<length>
Initial:0pt
Applies to:fo:simple-page-master / CSS @page
Inherited:no
Percentages:N/A

The area of the bleed is taken outside the trim size. In order to specify the same values vertically and horizontally, axf:bleed can be used. In order to specify individual values, axf:bleed-top, axf:bleed-bottom, axf:bleed-left and axf:bleed-right can be used. When axf:bleed and others are specified simultaneously, individual axf:bleed-* properties take priority.

These properties are not available with AH Formatter V7.1 Lite.

axf:printer-marks / CSS (-ah-)marks no-LT

Specifies the Printing marks, such as a crop mark. Specifies the action of external link. [CSS3-GCPM] Page marks and bleed area (“marks” has been removed from GCPM on and after May 13, 2014)

Value:[ [ crop | crop-trim ] || [ cross | cross-circle | cross-registration ] || <uri-specification>+ ] | none
Initial:none
Applies to:fo:simple-page-master / CSS @page
Inherited:no
Percentages:N/A

Values have the following meanings:

crop

Outputs corner marks. Outputs corner marks to the position of the trim size and the position of the bleed area if it exists. When corner marks are output to both the position of the trim size and the position of the bleed area, they are combinations of crop marks and bleed marks in Japanese style.

crop-trim

Outputs corner marks only to the position of the trim size (crop marks).

cross

Outputs cross-shaped marks.

cross-circle

Outputs cross-shaped marks with concentric circle.

cross-registration

Outputs registration marks.

<uri-specification>

Original printer marks, color bars, etc. can be outputted by specifying images, such as SVG. Two or more URIs can be specified.

This property is not available with AH Formatter V7.1 Lite.

axf:printer-marks-line-color / CSS -ah-printer-marks-line-color no-LT

Specifies the line color of printer marks.

Value:<color> | auto
Initial:auto
Applies to:fo:simple-page-master / CSS @page
Inherited:no
Percentages:N/A

When the value is auto, the color is considered the registration color.

This property is not available with AH Formatter V7.1 Lite.

axf:printer-marks-line-length / CSS -ah-printer-marks-line-length no-LT

Specifies the line length of printer marks.

Value:<length> | auto
Initial:auto
Applies to:fo:simple-page-master / CSS @page
Inherited:no
Percentages:N/A

When the value is auto, the length depends on the system setting. The default length of a printer mark is 10mm, it can be adjusted in the Option Setting File.

This property is not available with AH Formatter V7.1 Lite.

axf:printer-marks-line-width / CSS -ah-printer-marks-line-width no-LT

Specifies the line width of printer marks.

Value:<length> | auto
Initial:auto
Applies to:fo:simple-page-master / CSS @page
Inherited:no
Percentages:N/A

When the value is auto, the width depends on the system setting. The default width of a printer mark is 0.24pt, it can be adjusted in the Option Setting File.

This property is not available with AH Formatter V7.1 Lite.

axf:printer-marks-zero-margin / CSS -ah-printer-marks-zero-margin no-LT

Specifies the margin between the page and the printer marks when bleed is 0.

Value:<length> | auto
Initial:auto
Applies to:fo:simple-page-master / CSS @page
Inherited:no
Percentages:N/A

When the value is auto, the margin depends on the system setting. The default margin is 3mm, it can be adjusted in the Option Setting File.

This property is not available with AH Formatter V7.1 Lite.

axf:printer-marks-spine-width / CSS -ah-printer-marks-spine-width no-LT

Specifies the spine width of the facing page.

Value:<length>
Initial:0pt
Applies to:fo:simple-page-master / CSS @page
Inherited:no
Percentages:N/A

When a value greater than 0pt is specified, the printing image is assumed to be constructed as facing pages, the center mark of the spine will be outputted as a spine-width printer mark.

This property is not available with AH Formatter V7.1 Lite.


Printing Control

axf:printer-bin-selection / CSS -ah-printer-bin-selection no-LT

Selects the printer tray.

Value:<string> | <integer>
Initial:depends on the environment
Applies to:fo:page-sequence / CSS :root element
Inherited:no
Percentages:N/A

Effective only with the Windows version and functions when outputting to a printer. Whether it is effective also depends on a printer. What can be specified by the character string is the tray name which comes out in each printer setting dialog. This is the tray name acquired from a printer driver. The specified name which does not match to the tray name acquired from a printer driver is invalid. The specified integer needs to match to the tray number acquired from a printer driver.

This property is not available with AH Formatter V7.1 Lite.

axf:printer-duplex / CSS -ah-printer-duplex no-LT

Specifies to print in duplex mode.

Value:<integer>
Initial:depends on the environment
Applies to:fo:page-sequence / CSS :root element
Inherited:no
Percentages:N/A

Effective only with the Windows version and functions when outputting to a printer. Whether it is effective also depends on a printer. Specify the value that is specified by the printer driver. Most printers support following integer values.

  1. Simplex Printing.
  2. Duplex Printing. Flip on Long Edge.
  3. Duplex Printing. Flip on Short Edge.

See also SeparatePrinterDuplexJob in the Option Setting File. This property is not available with AH Formatter V7.1 Lite.

axf:overprint / CSS -ah-overprint no-LT

Specifies the overprint.

Value:auto | <overprint>#
Initial:auto
Applies to:all formatting objects
Inherited:yes
Percentages:N/A

<overprint> = <opcolor> [[stroke || paint || [full | nonzero]] | none]?
<opcolor> = <color> | k100 | separation | all

Values have the following meanings:

auto

The setting of the overprint in the Option Setting File is adopted. If you specify overprint="k100" in the Option Setting File, even if nothing is specified in FO, black overprinting will be done on all pages.

<color>

Specifies a color you want to apply the overprint. A color with alpha value cannot be specified.

k100

Applies the overprint to rgb-icc(#CMYK,0,0,0,1).

separation

Applies the overprint to the separation color shown rgb-icc(#Separation). The registration color is not included.

all

Applies the overprint to all colors except for a color with alpha value.

stroke

Applies the overprint for the line stroke.

paint

Applies the overprint for the paint.

full
nonzero

Specifies the operation in case the color ingredient is 0 when applying the overprint. When full is specified, the color ingredient is set to 0, when nonzero is specified, the color ingredient is not changed. (It is considered no color.) This setting is effective only with CMYK.

none

The overprint is not applied.

If you specify only the color as follows:

axf:overprint="<color>"

it is considered as follows:

axf:overprint="<color> stroke paint nonzero"

In addition, when neither stroke nor paint is specified, it is considered that stroke and paint are specified. Specify none to remove them from the overprint.

axf:overprint="k100, rgb-icc(#CMYK,0,0,0,1) stroke full, all paint"
As specified above, when a certain color can be interpreted as multiple settings, the settings will be investigated in the following order and the first matched setting will be adopted.
  1. <color>
  2. k100
  3. separation
  4. all

The effect of the overprint varies by the actual printing environment, in relation between the background color and the foreground color with overprint specified. The effect of the typical overprint by the color space is shown below. When color-conversion="all-cmyk" is specified in the Option Setting File, RGB serves as CMYK.

Foreground (overprint is specified)
CMYKSeparationRGBGrayscale
Background CMYKyesyesnono
Separationyesyesyesyes
RGByesyesnono
Grayscalenoyesnono

For more details, see also 4.5.6 Overprint Control in ISO 32000-1 or ISO 32000-2.

This property is not available with AH Formatter V7.1 Lite.


Page Control Extensions

axf:repeat-page-sequence-master no-LT

Specifies the repetition of the page sequence.

Value:true | false
Initial:false
Applies to:fo:page-sequence-master
Inherited:no
Percentages:N/A

When the value is true, if the page output reaches in the end of <fo:page-sequence-master> and the page which should still be outputted remains, page output repeats from the start of <fo:page-sequence-master>.

This property is not available with AH Formatter V7.1 Lite.

axf:reverse-page / CSS -ah-reverse-page no-LT

Outputs pages in reverse order.

Value:true | false
Initial:false
Applies to:fo:page-sequence
Inherited:no
Percentages:N/A

Values have the following meanings:

true

Outputs pages in reverse order.

false

Outputs pages in order.

Specifies whether to output pages within fo:page-sequence in reverse order. This setting does not cover all the output destinations. Effective only with PDF output. Multi Separate Volume is not available. In case of CSS, this setting can be specified for the <html> element only.

This property is not available with AH Formatter V7.1 Lite.

CSS @page

:last, :only are extended. [CSS3-Page] Page selectors

  • :last

    The last page of the pages belonging to the specified @page.

  • :only

    A single page that is the first and last, belonging to the specified @page.


Block Extensions

axf:suppress-if-first-on-page / CSS -ah-suppress-if-first-on-page no-LT

Specifies whether to suppress the block at the beginning of a page or column.

Value:false | true | unless
Initial:false
Applies to:fo:block, fo:block-container
Inherited:no
Percentages:N/A

Values have the following meanings:

false

Does nothing.

true

Suppresses a block when it comes at the beginning of a page or column. Actually, it is hidden but exists as a block of zero size without being deleted, it's effective to refer to id, etc.

unless V7.1

Suppresses a block when it comes to a place other than the beginning of a page or column. Actually, it is hidden but exists as a block of zero size without being deleted, it's effective to refer to id, etc.

This property is not available with AH Formatter V7.1 Lite.

Transformation

axf:transform / CSS (-ah-)transform no-LT

Specifies the block transformation. [CSS3-Transforms] The ‘transform’ Property

Value: none | <transform-function>+
Initial:none
Applies to:transformable objects
Inherited:no
Percentages:N/A

Values have the following meanings:

none

Does not transform the block.

<transform-function>

Performs the specified transformation. The following transformations can be specified.

  • matrix(<number>, <number>, <number>, <number>, <number>, <number>)
  • translate(<translation-value>[, <translation-value>])
  • translateX(<translation-value>)
  • translateY(<translation-value>)
  • scale(<number>[, <number>])
  • scaleX(<number>)
  • scaleY(<number>)
  • rotate(<angle>)
  • skew(<angle>[, <angle>])
  • skewX(<angle>)
  • skewY(<angle>)

This property is not available with AH Formatter V7.1 Lite.

axf:transform-origin / CSS (-ah-)transform-origin no-LT

Specifies the origin of the block transformation. [CSS3-Transforms] The ‘transform-origin’ Property

Value: [ <percentage> | <length> | left | center | right | top | bottom] | [ [ <percentage> | <length> | left | center | right ] && [ <percentage> | <length> | top | center | bottom ] ]
Initial:center center
Applies to:transformable objects
Inherited:no
Percentages:refer to the size of the bounding box

This property is not available with AH Formatter V7.1 Lite.

Baseline Grid

axf:baseline-grid / CSS -ah-baseline-grid no-LT

Sets or clears the baseline grid.

Value:normal | none | root | new
Initial:normal
Applies to:block-level formatting objects, fo:flow and fo:static-content / block containers
Inherited:no
Percentages:N/A

Values have the following meanings:

normal

Neither sets nor clears the baseline grid.

none

Clears the baseline grid and the content will not align with a baseline grid.

new

Sets a new baseline grid. The new baseline grid is established by using the font and the line-height settings of this element.

root

Sets the baseline grid defined by the root element. The root baseline grid is defined by using the font and the line-height settings of the root element.

Inside the area line that a baseline grid is set, the lines are aligned with baselines on the baseline grid. Half-leading is not added before the first line and after the last line so that the em-box edges are aligned with the before and after edges of the content box.

The baseline grid is not available in the area with display-align other than auto.

An HTML+CSS example with baseline grids:

:root {
  font-size: 10pt;
  line-height: 18pt;
  font-family: "Yu Mincho", serif;
}

@page {
  size: 128mm 188mm;
  margin: auto;
  width: 28rem;
  height: calc(24rlh - (1rlh - 1rem));
}

body {
  -ah-baseline-grid: root;
}

h1 {
  -ah-baseline-grid: new;
  -ah-baseline-block-snap: center;
  font-size: 16pt;
  line-height: 20pt;
  margin-top: 16pt;
  margin-bottom: 16pt;
}

figure {
  -ah-baseline-grid: none;
  -ah-baseline-block-snap: auto;
}

An XSL-FO example with baseline grids:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
         xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
         font-size="10pt" line-height="18pt" font-family="Yu Mincho, serif">
  ...
  <fo:page-sequence master-reference="master">
    <fo:flow flow-name="xsl-region-body" axf:baseline-grid="root">
      <fo:block axf:baseline-grid="new" axf:baseline-block-snap="center"
          font-size="16pt" line-height="20pt" space-before="16pt" space-after="16pt">
        Heading ...
      </fo:block>
      <fo:block>The quick brown fox jumps ...</fo:block>
      ...
      <fo:block axf:baseline-grid="none" axf:baseline-block-snap="auto">
         Figure ...
      </fo:block>
      ...
    </fo:flow>
  </fo:page-sequence>
</fo:root>

This property is not available with AH Formatter V7.1 Lite.

axf:baseline-block-snap / CSS -ah-baseline-block-snap no-LT

Specifies how to align blocks on the baseline grid.

Value:none | [auto | before | after | center] || [border-box | margin-box]
Initial:auto border-box
Applies to:block-level elements
Inherited:no
Percentages:N/A

Values have the following meanings:

none

The block is not aligned with the baseline grid.

auto

Same as before on top of column, same as after at bottom of column, otherwise center.

before

The before edge of the block is aligned with a text-before-edge baseline on the baseline grid.

after

The after edge of the block is aligned with a text-after-edge baseline on the baseline grid.

center

The block is centered between a text-before-edge and a text-after-edge baselines on the baseline grid.

border-box

The border edge is used to align the block on the baseline grid.

margin-box

The margin edge is used to align the block on the baseline grid.

This property specifies how to align blocks other than normal line boxes, such as headings, figures and tables, on the baseline grid.

baseline-block-snap

See axf:baseline-grid for usage.

This property is not available with AH Formatter V7.1 Lite.


Line Breaking

AH Formatter V7.1 provides extension properties to control the line-breaking. Usually, the line-breaking complies with UAX#14: Line Breaking Properties. See also Line Breaking in Technical Notes.

axf:line-break / CSS (-ah-)line-break

Specifies the method of line breaking. [CSS3-Text] Breaking Rules for Punctuation: the ‘line-break’ property

Value: auto | [[normal | strict | loose | anywhere] || [line | bpil]]
Initial: auto
Applies to:all block-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

auto

It is assumed that normal is specified.

normal

CJK Nonstarter characters (prolonged sound mark, small hiragana letters, small katakana letters, and iteration marks) defined in JIS X 4051:2004 are not treated as Nonstarter characters. Characters marked with [NS] in the following list are processed.

strict

CJK Nonstarter character is treated. Characters marked with [NS] and [JIS] in the following list are processed.

line

Line breaking is performed one by one by a simple algorithm.

bpil

Line breaking is performed according to the line breaking algorithm by Knuth-Plass's Breaking Paragraphs into Lines. At this time, the bpil specification in the Option Setting File is ignored. Depending on the conditions, this algorithm may not be applicable. See Line Breaking in Technical Notes.

If neither normal nor strict is specified, it is assumed that normal is specified. When neither line nor bpil is specified, the algorithm is selected according to the specification of bpil in the Option Setting File. For more details, see Line Breaking in Technical Notes.

The line breaking other than Nonstarter characters in CJK complies with UAX#14: Line Breaking Properties. At this time, characters specified to the properties of axf:append-non-starter-characters, axf:except-non-starter-characters, axf:append-non-end-of-line-characters and axf:except-non-end-of-line-characters are included.

The CJK Nonstarter character is as follows:

U+203CDOUBLE EXCLAMATION MARK [NS]
U+203DINTERROBANG [NS]
U+2047DOUBLE QUESTION MARK [NS]
U+2048QUESTION EXCLAMATION MARK [NS]
U+2049EXCLAMATION QUESTION MARK [NS]
U+3005IDEOGRAPHIC ITERATION MARK [NS] [JIS]
U+301CWAVE DASH [NS]
U+303BVERTICAL IDEOGRAPHIC ITERATION MARK [NS] [JIS]
U+303CMASU MARK [NS]
U+3041HIRAGANA LETTER SMALL A [JIS]
U+3043HIRAGANA LETTER SMALL I [JIS]
U+3045HIRAGANA LETTER SMALL U [JIS]
U+3047HIRAGANA LETTER SMALL E [JIS]
U+3049HIRAGANA LETTER SMALL O [JIS]
U+3063HIRAGANA LETTER SMALL TU [JIS]
U+3083HIRAGANA LETTER SMALL YA [JIS]
U+3085HIRAGANA LETTER SMALL YU [JIS]
U+3087HIRAGANA LETTER SMALL YO [JIS]
U+308EHIRAGANA LETTER SMALL WA [JIS]
U+3095HIRAGANA LETTER SMALL KA [JIS]
U+3096HIRAGANA LETTER SMALL KE [JIS]
U+309BKATAKANA-HIRAGANA VOICED SOUND MARK [NS]
U+309CKATAKANA-HIRAGANA SEMI-VOICED SOUND MARK [NS]
U+309DHIRAGANA ITERATION MARK [NS] [JIS]
U+309EHIRAGANA VOICED ITERATION MARK [NS] [JIS]
U+30A0KATAKANA-HIRAGANA DOUBLE HYPHEN [NS]
U+30A1KATAKANA LETTER SMALL A [JIS]
U+30A3KATAKANA LETTER SMALL I [JIS]
U+30A5KATAKANA LETTER SMALL U [JIS]
U+30A7KATAKANA LETTER SMALL E [JIS]
U+30A9KATAKANA LETTER SMALL O [JIS]
U+30C3KATAKANA LETTER SMALL TU [JIS]
U+30E3KATAKANA LETTER SMALL YA [JIS]
U+30E5KATAKANA LETTER SMALL YU [JIS]
U+30E7KATAKANA LETTER SMALL YO [JIS]
U+30EEKATAKANA LETTER SMALL WA [JIS]
U+30F5KATAKANA LETTER SMALL KA [JIS]
U+30F6KATAKANA LETTER SMALL KE [JIS]
U+30FBKATAKANA MIDDLE DOT [NS]
U+30FCKATAKANA-HIRAGANA PROLONGED SOUND MARK [JIS]
U+30FDKATAKANA ITERATION MARK [NS] [JIS]
U+30FEKATAKANA VOICED ITERATION MARK [NS] [JIS]
U+31F0KATAKANA LETTER SMALL KU [JIS]
U+31F1KATAKANA LETTER SMALL SI [JIS]
U+31F2KATAKANA LETTER SMALL SU [JIS]
U+31F3KATAKANA LETTER SMALL TO [JIS]
U+31F4KATAKANA LETTER SMALL NU [JIS]
U+31F5KATAKANA LETTER SMALL HA [JIS]
U+31F6KATAKANA LETTER SMALL HI [JIS]
U+31F7KATAKANA LETTER SMALL HU [JIS]
U+31F8KATAKANA LETTER SMALL HE [JIS]
U+31F9KATAKANA LETTER SMALL HO [JIS]
U+31FAKATAKANA LETTER SMALL MU [JIS]
U+31FBKATAKANA LETTER SMALL RA [JIS]
U+31FCKATAKANA LETTER SMALL RI [JIS]
U+31FDKATAKANA LETTER SMALL RU [JIS]
U+31FEKATAKANA LETTER SMALL RE [JIS]
U+31FFKATAKANA LETTER SMALL RO [JIS]
U+FE54SMALL SEMICOLON [NS]
U+FE55SMALL COLON [NS]
U+FF1AFULLWIDTH COLON [NS]
U+FF1BFULLWIDTH SEMICOLON [NS]
U+FF65HALFWIDTH KATAKANA MIDDLE DOT [NS]
U+FF67HALFWIDTH KATAKANA LETTER SMALL A [JIS]
U+FF68HALFWIDTH KATAKANA LETTER SMALL I [JIS]
U+FF69HALFWIDTH KATAKANA LETTER SMALL U [JIS]
U+FF6AHALFWIDTH KATAKANA LETTER SMALL E [JIS]
U+FF6BHALFWIDTH KATAKANA LETTER SMALL O [JIS]
U+FF6CHALFWIDTH KATAKANA LETTER SMALL YA [JIS]
U+FF6DHALFWIDTH KATAKANA LETTER SMALL YU [JIS]
U+FF6EHALFWIDTH KATAKANA LETTER SMALL YO [JIS]
U+FF6FHALFWIDTH KATAKANA LETTER SMALL TU [JIS]
U+FF70HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK [JIS]
U+FF9EHALFWIDTH KATAKANA VOICED SOUND MARK [NS]
U+FF9FHALFWIDTH KATAKANA SEMI-VOICED SOUND MARK [NS]

[NS] is classified into NS in Line Break Properties. [JIS] is classified into the Nonstarter character in JIS X 4051:2004.

axf:append-non-starter-characters / CSS -ah-append-non-starter-characters

Specifies the non-starter-characters to append.

Value:<string>
Initial:empty string
Applies to:fo:page-sequence / CSS :root element
Inherited:no
Percentages:N/A

The characters included in <string> can be appended to the non-starter-characters. If the specified characters are also specified in axf:except-non-starter-characters as well in the same tag, the effect could be wrong. White space characters are disregarded even though they are specified. Closing parentheses and punctuation marks are automatically treated as except-non-starter characters without adding them. The initial value of non-starter-characters can be set by append-non-starter-characters in the Option Setting File.

axf:except-non-starter-characters / CSS -ah-except-non-starter-characters

Specifies the non-starter-characters to eliminate.

Value:<string>
Initial:empty string
Applies to:fo:page-sequence / CSS :root element
Inherited:no
Percentages:N/A

The characters included in <string> can be eliminated from the non-starter-characters. If the specified characters are also specified to axf:append-non-starter-characters in the same tag as well, the effect is not guaranteed. White space characters are disregarded even though they are specified. The initial value of non-starter-characters can be set by append-non-starter-characters in the Option Setting File.

axf:append-non-end-of-line-characters / CSS -ah-append-non-end-of-line-characters

Specifies the non-end-of-line-characters to append.

Value:<string>
Initial:empty string
Applies to:fo:page-sequence / CSS :root element
Inherited:no
Percentages:N/A

The characters included in <string> can be appended to the non-end-of-line-characters. If the specified characters are also specified to axf:except-non-end-of-line-characters as well in the same tag, the effect could be wrong. White space characters are disregarded even though they are specified. Opening parentheses etc. are automatically treated as except-non-end-of-line characters without adding them. The initial value of non-end-of-line-characters can be set by append-non-end-of-line-characters in the Option Setting File.

axf:except-non-end-of-line-characters / CSS -ah-except-non-end-of-line-characters

Specifies the non-end-of-line-characters to eliminate.

Value:<string>
Initial:empty string
Applies to:fo:page-sequence / CSS :root element
Inherited:no
Percentages:N/A

The characters included in <string> can be eliminated from the non-end-of-line-characters. If the specified characters are also specified to axf:append-non-end-of-line-characters in the same tag as well, the effect is not guaranteed. White space characters are disregarded even though they are specified. The initial value of non-end-of-line-characters can be set by append-non-end-of-line-characters in the Option Setting File.

axf:word-break / CSS (-ah-)word-break

Specifies whether to enable line breaking even inside a word. [CSS3-Text] Breaking Rules for Letters: the ‘word-break’ property

Value:normal | keep-all | break-all | break-word | keep-non-spaces
Initial:normal
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

normal

Follows a normal line breaking rule.

keep-all

Does not break inside words. A word here indicates a character string which consists of the following category (General Category) of Unicode.

  • Letter
  • Mark
  • Number

Whether to break lines on a boundary with characters other than these follows the rule of the standard line break. Moreover, hyphenate="true" is disregarded.

break-all

The line breaking is enabled between all the characters in the word. This is effective only with the following scripts.

  • Latn
  • Cyrl
  • Grek
  • Zyyy

axf:word-wrap="normal" is disregarded.

keep-non-spaces V7.1

Does not break between non-whitespace characters.

Within the word oriented upright by axf:text-orientation="upright", it is always considered axf:word-break="break-all".

axf:word-wrap / CSS (-ah-)word-wrap

Specifies whether to break word forcibly when line break cannot be performed. [CSS3-Text] Overflow Wrapping: the overflow-wrap/word-wrap property

Value:normal | break-word | break-spaces
Initial:break-word (XSL) / normal (CSS)
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

normal

The line is not broken forcibly. The text will overflow across the region.

break-word

The line is broken forcibly at an appropriate position.

axf:abbreviation-character-count / CSS -ah-abbreviation-character-count

Specifies the maximum number of characters considered an abbreviation.

Value:auto | <number>
Initial:auto
Applies to:fo:block
Inherited:yes
Percentages:N/A

Values have the following meanings:

auto

The value specified by abbreviation-character-count in the Option Setting File is adopted.

<number>

Specifies the number of characters considered an abbreviation.

axf:abbreviation-character-count controls the line break of the abbreviation delimited by U+002F or “/”. In general, the line break occurs with “km/h” or “w/o”, etc. because the position right after “/” is the target for the line break and it's not desirable. In UAX#14: Line Breaking Properties, it is written to avoid splitting in such cases. In AH Formatter V7.1, when the number of characters of the word right after “/” is less than or equal to the specified number with axf:abbreviation-character-count, the word is considered the abbreviation and the line does not break. Also, the word right after “/” will not be hyphenated when the number of characters of the word is less than or equal to the specified number with axf:abbreviation-character-count. It is considered an abbreviation only when the string is one of the following scripts:

  • Latn
  • Cyrl
  • Grek
  • Zyyy

The axf:abbreviation-character-count must be an integer number of 0 or more. 0 does not control over the abbreviation. In addition, when the line overflows without finding the line break position, the line break may forcibly occur right after “/”. If the number of characters exceeds 10, it is considered 10.

axf:quotetype V7.1 no-LT

Specifies the direction of the quotes.

Value:QU | OP | CL
Initial:empty
Applies to:fo:character
Inherited:no
Percentages:N/A

Values have the following meanings (they are case insensitive):

QU

Considered to be an non-directional quotation mark.

OP

Considered to be an open quotation mark.

CL

Considered to be a close quotation mark.

For non-directional quotation marks such as U+0022, explicitly specify the direction as follows to encourage proper line breaks:

Lorem
<fo:character character="&#x22;" axf:quotetype="OP"/>ipsum<fo:character character="&#x22;" axf:quotetype="CL"/>
dolor sit amet,

Specifying the property to characters other than quotation marks is invalid. See Quotation Mark in Technical Notes for how to handle quotation marks. If not specified, the setting there will be used.

This property is not available with AH Formatter V7.1 Lite.


Extension for Hyphenations

AH Formatter V7.1 provides the extended features for hyphenations.

axf:hyphenation-minimum-character-count / CSS -ah-hyphenation-minimum-character-count

Specifies the minimum number of characters a word must have before it can be hyphenated.

Value:<number>
Initial:1
Applies to:fo:block, fo:character
Inherited:yes
Percentages:N/A

The axf:hyphenation-minimum-character-count must be an integer number of 1 or more.

axf:hyphenation-zone / CSS -ah-hyphenation-zone

Limits the range where a hyphenation is available.

Value:none | <length> | <percentage>
Initial:none
Applies to:fo:block
Inherited:yes
Percentages:refer to the width of containing block

Values have the following meanings:

none

Nothing is limited in hyphenation.

<length>

If the length from the end of a word to the end of line is less or equal to the specified value, the following word is not hyphenated.
It is invalid when 0 or less value is specified.

axf:hyphenate-hyphenated-word / CSS -ah-hyphenate-hyphenated-word

Specifies whether to hyphenate the already hyphenated word or not.

Value:true | false
Initial:true
Applies to:fo:block
Inherited:yes
Percentages:N/A

Values have the following meanings:

true

Hyphenates a word.

false

Does not hyphenate a word. The line may break only at the hyphen position.

The following are recognized as hyphens.

U+002DHYPHEN-MINUS
U+00ADSOFT HYPHEN
U+2010HYPHEN
U+2011NON-BREAKING HYPHEN

This setting is invalid when hyphenate="false" is specified.

axf:hyphenate-caps-word / CSS -ah-hyphenate-caps-word

Specifies whether to hyphenate words consisting only of uppercase letters.

Value:true | false
Initial:true
Applies to:fo:block
Inherited:yes
Percentages:N/A

Values have the following meanings:

true

Hyphenates a word.

false

Does not hyphenate a word.

A phrase like ANTENNA-HOUSE with hyphens is considered multiple words. There is a possibility of a line break at the hyphen position. Even letters processed as small-caps are considered lowercase if the original letters are lowercase. This setting is invalid when hyphenate="false" is specified.

CSS (-ah-)hyphenate-after

[CSS3-GCPM] Hyphenate properties (“hyphenate-after” has been removed from GCPM on and after November 29, 2011)

Value:<integer> | auto
Initial:auto
Applies to:all elements
Inherited:yes
Percentages:N/A

 [XSL 1.1] hyphenation-push-character-count, hyphenation-push-character-count

CSS (-ah-)hyphenate-before

[CSS3-GCPM] Hyphenate properties (“hyphenate-before” has been removed from GCPM on and after November 29, 2011)

Value:<integer> | auto
Initial:auto
Applies to:all elements
Inherited:yes
Percentages:N/A

 [XSL 1.1] hyphenation-remain-character-count, hyphenation-remain-character-count

CSS (-ah-)hyphenate-character

[CSS3-GCPM] Hyphenate properties (“hyphenate-character” has been removed from GCPM on and after November 29, 2011)

Value:auto | <string>
Initial:auto
Applies to:all elements
Inherited:yes
Percentages:N/A

 [XSL 1.1] hyphenation-character

CSS (-ah-)hyphenate-lines

[CSS3-GCPM] Hyphenate properties (“hyphenate-lines” has been removed from GCPM on and after November 29, 2011)

Value:no-limit | <integer>
Initial:no-limit
Applies to:all elements
Inherited:yes
Percentages:N/A

 [XSL 1.1] hyphenation-ladder-count

CSS (-ah-)hyphens

[CSS3-Text] Hyphenation Control: the ‘hyphens’ property

Value:none | manual | auto
Initial:manual
Applies to:all elements
Inherited:yes
Percentages:N/A

 [XSL 1.1] hyphenate

<axf:hyphenation-info> no-LT

Common Usage:

Specifies additional hyphenation information. This element does not generate an area. This feature is not available in CSS. This feature is not available with AH Formatter V7.1 Lite.

Areas:

None.

Constraints:
<!ELEMENT axf:hyphenation-info (%axh-elements;)*>
<!ATTLIST axf:hyphenation-info language CDATA #REQUIRED>
<!ATTLIST axf:hyphenation-info src      CDATA #IMPLIED>

The <axf:hyphenation-info> extension element can be set as many as you want right under <fo:declarations>.

The language property is required to indicate which language this element is associated with. It is not available to do hyphenation if the specified language is originally not hyphenated. See Hyphenation for the languages you can specify.

The src property can optionally specify the exception dictionary. It's an additional setting to the original dictionary and effective only in this FO. There is no language dependency constraint for the file name unlike the original dictionary. It is a relative base-uri for the relative path. It's not a relative path to the environment valuable of the hyphenation dictionary. <exceptions> in the specified dictionary is evaluated. When multiple words of the same spelling are registered, the information on the last registered word becomes effective.

Contents:

%axh-elements; is an element which belongs to the name space http://www.antennahouse.com/names/XSL/Hyphenations. The elements in the Hyphenation Exception Dictionary are included in the name space, however currently only <exceptions> (and its child element, <hyphen>) can be described.

Examples:
<fo:declarations>
 <axf:hyphenation-info language="eng" src="en-add.xml"
  xmlns:axh="http://www.antennahouse.com/names/XSL/Hyphenations">
  <axh:exceptions>
  abc-defg
  </axh:exceptions>
 </axf:hyphenation-info>
</fo:declarations>

In this example, an additional exception dictionary, en-add.xml is specified for English language, and then the exception hyphenation is specified for the word spelled “abcdefg”.

Output Glyph by SOFT HYPHEN

Generally SOFT HYPHEN (U+00AD) is displayed only when the line breaks and is not displayed when the line does not break. However in this processing, it is often the case that the glyph assigned to U+00AD may not be printed when the fonts such as pictographic characters are used. AH Formatter V7.1 implements the extension property axf:soft-hyphen-treatment which makes it possible to eliminate this problem.

<fo:block axf:soft-hyphen-treatment="preserve" font-family="Wingdings">abc&#xAD;xyz

axf:soft-hyphen-treatment / CSS -ah-soft-hyphen-treatment

Value:auto | preserve
Initial:auto
Applies to:all formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

auto

SOFT HYPHEN is deleted except when needed for line breaking. (as before)

preserve

SOFT HYPHEN is not deleted and the target glyph is output.


Trimming and Hanging

AH Formatter V7.1 provides extension properties to trim and to hang.

axf:punctuation-trim / CSS (-ah-)punctuation-trim

Specifies whether to treat full width punctuations in Japanese. [CSS3-Text] Fullwidth Punctuation Kerning: the ‘punctuation-trim’ property (“punctuation-trim” has been removed from CSS3-Text on and after January 19, 2012 after the transition of name)

Value:none | [ [ start | start-except-first ] || [ end | allow-end | end-except-fullstop ] || adjacent ] | all | <string> | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

Punctuation characters are not trimmed.

start

Punctuation characters (open parenthesis etc.) at start of line are trimmed.

start-except-first

Same as the start value except for a start line of a paragraph or a line right after the forced line break.

end

When text-align="right" or text-align="justify" (or text-align-last="justify") is specified and full width punctuation marks (closing parenthesis etc.) come to the end of the sentence, the character is treated as half width forcibly.

allow-end

When text-align="right" or text-align="justify" (or text-align-last="justify") is specified and full width punctuation marks (closing parenthesis etc.) come to the end of the sentence, characters are treated as full width if text fits into one line, characters are treated as half width if text does not fit into one line.

end-except-fullstop

Behaves as the same as the end value except for the following two characters.

U+3002IDEOGRAPHIC FULL STOP
U+FF0EFULLWIDTH FULL STOP

adjacent

The space between a full width punctuation and a full width character in Japanese is trimmed.

  • Between full width close parenthesis and full width open parenthesis.
  • Between full width close parenthesis and full width close parenthesis.
  • Between full width close parenthesis and full width middle dots.
  • Between full width close parenthesis and full width space.
  • Between full width close parenthesis and full width non punctuation characters.
  • Between full width open parenthesis and full width open parenthesis.
  • Between full width middle dots and full width open parenthesis.
  • Between full width space and full width open parenthesis.
  • Between full width non punctuation character and full width open parenthesis.

Full width punctuation characters are treated the same as full width close parenthesis. The adjacent value is equivalent to axf:kerning-mode="contextual" with XSL Formatter V4.

all

Trim all parentheses, middle dots, and punctuations of full width and treat them as half width.

<string>

Behave the same as all, but only the character included in the character strings specified here is treated as a half width. Other than parentheses, middle dots, and punctuations of full width are disregarded.

auto

Dependent on the system setting. It is considered axf:punctuation-trim="none" or axf:punctuation-trim="start end adjacent" by punctuation-trim in the Option Setting File.

Full width punctuation open parenthesis processed by axf:punctuation-trim are:

U+2018LEFT SINGLE QUOTATION MARK
U+201CLEFT DOUBLE QUOTATION MARK
U+3008LEFT ANGLE BRACKET
U+300ALEFT DOUBLE ANGLE BRACKET
U+300CLEFT CORNER BRACKET
U+300ELEFT WHITE CORNER BRACKET
U+3010LEFT BLACK LENTICULAR BRACKET
U+3014LEFT TORTOISE SHELL BRACKET
U+3016LEFT WHITE LENTICULAR BRACKET
U+3018LEFT WHITE TORTOISE SHELL BRACKET
U+301ALEFT WHITE SQUARE BRACKET
U+301DREVERSED DOUBLE PRIME QUOTATION MARK
U+FF08FULLWIDTH LEFT PARENTHESIS
U+FF3BFULLWIDTH LEFT SQUARE BRACKET
U+FF5BFULLWIDTH LEFT CURLY BRACKET
U+FF5FFULLWIDTH LEFT WHITE PARENTHESIS  

Full width punctuation close parenthesis processed by axf:punctuation-trim are:

U+2019RIGHT SINGLE QUOTATION MARK
U+201DRIGHT DOUBLE QUOTATION MARK
U+3009RIGHT ANGLE BRACKET
U+300BRIGHT DOUBLE ANGLE BRACKET
U+300DRIGHT CORNER BRACKET
U+300FRIGHT WHITE CORNER BRACKET
U+3011RIGHT BLACK LENTICULAR BRACKET
U+3015RIGHT TORTOISE SHELL BRACKET
U+3017RIGHT WHITE LENTICULAR BRACKET
U+3019RIGHT WHITE TORTOISE SHELL BRACKET
U+301BRIGHT WHITE SQUARE BRACKET
U+301EDOUBLE PRIME QUOTATION MARK
U+301FLOW DOUBLE PRIME QUOTATION MARK
U+FF09FULLWIDTH RIGHT PARENTHESIS
U+FF3DFULLWIDTH RIGHT SQUARE BRACKET
U+FF5DFULLWIDTH RIGHT CURLY BRACKET
U+FF60FULLWIDTH RIGHT WHITE PARENTHESIS  

Full width punctuations processed by axf:punctuation-trim are:

U+3001IDEOGRAPHIC COMMA
U+3002IDEOGRAPHIC FULL STOP
U+FF0CFULLWIDTH COMMA
U+FF0EFULLWIDTH FULL STOP

Full width middle dots processed by axf:punctuation-trim are:

U+30FBKATAKANA MIDDLE DOT
U+FF1AFULLWIDTH COLON
U+FF1BFULLWIDTH SEMICOLON

axf:punctuation-trim doesn't affect the proportional font. Also, it is always considered none when anything other than auto is specified for glyph-orientation-*.

axf:text-justify-trim / CSS (-ah-)text-justify-trim

Specifies the way to trim in text justification. [CSS3-Text] Additional compression: The 'text-justify-trim' property (“text-justify-trim” has been removed from CSS3-Text on and after June 27, 2005)

Value:none | [ punctuation || punctuation-except-fullstop || punctuation-except-middledot || [ kana | ideograph ] || inter-word ] | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

Do not trim Japanese text.

punctuation

Trim text with parentheses, middle dots, and punctuations of full width in Japanese.

punctuation-except-fullstop

Behaves as the same as the punctuation value except for the following two characters.

U+3002IDEOGRAPHIC FULL STOP
U+FF0EFULLWIDTH FULL STOP

punctuation-except-middledot

Behaves as the same as the punctuation value except for the following middle dots.

U+30FBKATAKANA MIDDLE DOT
U+FF1AFULLWIDTH COLON
U+FF1BFULLWIDTH SEMICOLON

kana

Trim Hiragana and Katakana a bit.

ideograph

Trim spaces between Kanji or Kana.

inter-word

Trim spaces between Western words.

auto

Dependent on the system setting. This is the value specified by punctuation-trim and text-justify-mode in the Option Setting File. However, when axf:avoid-widow-words is enabled, it is considered that axf:text-justify-trim="ideograph inter-word" is specified.

Trim the spaces between characters as specified so that text fits into a line. When axf:punctuation-trim="all" is specified, there may be no more space to trim.

axf:text-justify / CSS (-ah-)text-justify

Specifies how to justify text. [CSS3-Text] Justification Method: the ‘text-justify’ property

Value:auto | inter-word | inter-character | distribute
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

auto

Uses the best text justification method for the script. For instance, in case of Japanese Kanji, Hiragana and Katakana, spaces between letters are expanded. In case of Arabic scripts, Kashida is used while spaces between words are expanded for the other scripts.

inter-word

Justifies text by expanding the space between words.

inter-character

Justifies text by expanding the space between letters.

distribute
Changed to inter-character with CSST-Text 2017-08-22. We also accept distribute for compatibility.

axf:kerning-mode / CSS -ah-kerning-mode

Specifies whether to process the kerning.

Value:none | pair | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

The kerning is not processed.

pair

The pair kerning is processed.

auto

Dependent on the system setting.

You can specify whether pair kerning is performed or not by pair-kerning in the Option Setting File. This can also be set in the Format Option Setting dialog in GUI.

axf:kerning-mode does not work when letter-spacing is specified.

axf:punctuation-spacing / CSS -ah-punctuation-spacing

Specifies the trimming spacing between a full width punctuation and a full width character in Japanese.

Value:<length> | <percentage> | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:refer to the font size

The initial value of this space can be set by punctuation-spacing in the Option Setting File.

Values have the following meanings:

<length>

Specifies the amount of the trimming space with an absolute value.

<percentage>

It's a relative setting to the font size when actually applied.

auto

Dependent on the system setting. This is the value specified by punctuation-spacing in the Option Setting File.

This space is used for the following space amount specified by axf:punctuation-trim="adjacent".

  • Between full width close parenthesis and full width open parenthesis.
  • Between full width close parenthesis and full width non punctuation characters.
  • Between full width non punctuation character and full width open parenthesis.

axf:hanging-punctuation / CSS (-ah-)hanging-punctuation

Specifies whether to hang punctuation marks at the start of the line or end of the line. [CSS3-Text] Hanging Punctuation: the ‘hanging-punctuation’ property (“hanging-punctuation” has been removed from CSS3-Text on and after August 22, 2017)

Value:none | [ start || first || [ force-end | allow-end ] || last ]
Initial:none
Applies to:fo:block
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

Do not hang punctuation marks at the start of the line or end of the line.

start

Hangs punctuation marks at the start of the line. If the target character for hanging appears at the start of the line, the character is forced to hang.

first

Behaves as the same as the start value only with the start line of a paragraph.

force-end

Hangs punctuation marks at the end of the line. When text-align="right" or text-align="justify" (or text-align-last="justify") is specified and a target character for hanging appears at the end of the line, the character is hanged forcibly. When anything else is specified to text-align, the character is hung naturally.

allow-end

Hangs punctuation marks at the end of the line. When text-align="right" or text-align="justify" (or text-align-last="justify") is specified and a target character for hanging comes to the end of the line, the character is not hung if text fits into one line, but the character is hung if text does not fit into one line. When anything else is specified to text-align, the character is hung naturally.

last

Behaves the same as the force-end value only with the end of the line of a paragraph.

The target punctuation marks is as follows:

  • force-end, allow-end
    Japanese or Simplified Chinese
    U+3001IDEOGRAPHIC COMMA
    U+3002IDEOGRAPHIC FULL STOP
    U+FF0CFULLWIDTH COMMA
    U+FF0EFULLWIDTH FULL STOP
    Traditional Chinese
    U+FE50SMALL COMMA
    U+FE51SMALL IDEOGRAPHIC
    U+FE52SMALL FULL STOP
    U+FF64HALFWIDTH IDEOGRAPHIC COMMA
    Other languages Same as the last value.
  • last
    quotation marks, closing parentheses, period, comma and hyphen
  • start, first
    quotation marks, closing parentheses and bullet

axf:avoid-widow-words / CSS -ah-avoid-widow-words

Specifies spacing behavior between words or characters so that the last line of the paragraph does not have only one word left (one character for CJK).

Value:false | true | [<length> || <percentage>]
Initial:false
Applies to:fo:block
Inherited:yes
Percentages:refer to the width of containing block

Values have the following meanings:

false

Does nothing.

true

Adjusts the spacing so that the last line of the paragraph does not have only one word left (one character for CJK). When axf:text-justify-trim="auto" is specified, it is considered that axf:text-justify-trim="ideograph inter-word" is specified.

<length>
<percentage>

Leaves the specified width of text on the last line of the paragraph. If both <length> and <percentage> are specified, the smaller one is adopted. When 0 or less is specified, it is considered false. If it is greater than 0 and axf:text-justify-trim="auto" is specified, it is considered that axf:text-justify-trim="ideograph inter-word" is specified. This setting is effective only when the Breaking Paragraphs into Lines line breaking algorithm is applied, such as when axf:line-break="bpil" is specified. Otherwise, the specified value of greater than 0 is considered true.

If the width of columns (length of the line) is short, when true is specified, it is not so effective because there is not enough space to run on. In addition, in case there is no room for a word to be placed at the end of the line, axf:avoid-widow-words has no effect. Note that there may be no more space to trim by setting axf:punctuation-trim or axf:text-justify-trim. See also avoid-widow-words-cjk-punctuation in the Option Setting File to learn more about the treatment of the punctuation at the end of the line in CJK.

axf:avoid-widow-words-cjk-punctuation / CSS -ah-avoid-widow-words-cjk-punctuation V7.1

Specifies whether to include the last punctuation mark and count them in one character when axf:avoid-widow-word="true" is specified in CJK.

Value:auto | true | false | <string>
Initial:auto
Applies to:fo:block
Inherited:yes
Percentages:N/A

Values have the following meanings:

auto

Follows the settings of avoid-widow-words-cjk-punctuation in the Option Settings File.

false

Because punctuation marks are also counted in one character, it may be a line like “す。”.

true

Because punctuation marks are not counted in one character, they do not become a line like “す。”, but a line like “です。”. The target punctuation marks here are the following characters:

<string>

If you specify a character string other than true/false, such as axf:avoid-widow-words-cjk-punctuation="&#xFF1F;&#xFF01;", those characters will also be treated as target punctuation marks in addition to the above.

axf:intrude-into-punctuation / CSS -ah-intrude-into-punctuation V7.1 no-LT

Intrudes the inline element into the punctuation.

Value:none | [start || end]
Initial:none
Applies to:inline elements
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

Does nothing.

start

In Japanese, when the character immediately before the start side is any of the following, that character is treated as half-width.

  • full width close parenthesis
  • full width punctuation

See axf:punctuation-trim for these characters.

end

In Japanese, when the character immediately after the end side is any of the following, that character is treated as half-width.

  • full width open parenthesis

See axf:punctuation-trim for these characters.

Works when axf:punctuation-trim="adjacent" is specified.

This property is specified when you want to place the footnote symbol after the punctuation mark and treat the punctuation mark in half-width characters. You can do the same with axf:punctuation-trim="all", but you can't just apply it to a particular inline element.

This property is not available with AH Formatter V7.1 Lite.


Spacing and Alignment

Adding Space

axf:text-autospace / CSS (-ah-)text-autospace

Specifies whether to add space surrounding ideographic glyphs or not. [CSS3-Text] Adding space: the ‘text-autospace’ property (“text-autospace” has been removed from CSS3-Text on and after April 4, 2011)

Value:none | [ ideograph-numeric || ideograph-alpha || ideograph-parenthesis ] | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

Space is not added.

ideograph-numeric

Space is added between ideograph character and non-ideographic number character. Non-ideographic number character mentioned here indicates the character of Nd classified by Unicode and the non-full-width character.

ideograph-alpha

Space is added between ideograph character and non-ideographic alphabet character. Non-ideographic alphabet character mentioned here indicates the character of Lu, Ll, Lt and Lm classified by Unicode.

ideograph-parenthesis

Space is added between ideograph character and non-ideographic parenthesis character. However space is not added between ideograph character and non-ideographic closing parenthesis or between non-ideographic opening parenthesis and ideograph character.

auto

Dependent on the system setting. It's considered axf:text-autospace="none" or axf:text-autospace="ideograph-numeric ideograph-alpha" according to the setting.

The initial value of whether space is added or not can be set by text-autospace in the Option Setting File. It can also be set in the Format Option Setting Dialog in the GUI.

axf:text-autospace-width / CSS -ah-text-autospace-width

Specifies the width for axf:text-autospace.

Value:<length> | <percentage> | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:refer to the font size

The initial value of this space can be set by text-autospace-width in the Option Setting File.

Values have the following meanings:

<length>

Specifies the amount of the space with an absolute value.

<percentage>

It's a relative setting to the font size when actually applied.

auto

Dependent on the system setting. This is the value specified by text-autospace-width in the Option Setting File.

This space is used in axf:text-autospace.

axf:letter-spacing-side / CSS -ah-letter-spacing-side

Specifies on which side of the character the space by letter-spacing is distributed.

Value:both | start | end
Initial:both
Applies to:inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

both

Half the amount of space is distributed on both side of the character for each.

start

The space is distributed only on the start side of the character.

end

The space is distributed only on the end side of the character.

axf:auto-letter-spacing / CSS -ah-auto-letter-spacing no-LT

Changes letter-spacing depending on the number of characters.

Value:[ none | <length> | <percentage> ]*
Initial:none
Applies to:inline-level formatting objects
Inherited:no
Percentages:refer to the font size

Values have the following meanings:

none

Does not specify letter-spacing.

Values can be enumerated corresponding to the number of characters of 2 or more. For example, if specified as follows:

axf:auto-letter-spacing="2em 1em 0.5em 0.25em"

when the number of characters in this FO is 2, then letter-spacing="2em" is applied. When 3 characters, then letter-spacing="1em" is applied. When 4 characters, then letter-spacing="0.5em" is applied. When 5 characters, then letter-spacing="0.25em" is applied. Does nothing with any other number of characters. Only the characters included in the first inline element are counted.

This property is defined mainly for use in chapter titles in CJK text. In the following case,

第1章 はじめに

It is better to use this together with axf:letter-spacing-side as follows:

第1章 <fo:inline axf:auto-letter-spacing="2em 1em 0.5em 0.25em" axf:letter-spacing-side="end">はじめに</fo:inline>

It is not possible to apply this property to text (such as page numbers, etc.) for which the number of characters is not fixed.

This property is not available with AH Formatter V7.1 Lite.

CSS -ah-margin-break

Specifies how to treat the margin when the page/column breaks.

Value:[ auto | discard | keep ] keep?
Initial:auto
Applies to:block elements
Inherited:no
Percentages:N/A

Values have the following meanings:

auto

Retains the margin on the before side of the block placed at the start of the document or right after the forced page/column break. Except for that, it is the same as discard.

discard

Discards the margin.

keep

Retains the margin on the before side. When the second keep is specified, the margin on the after side is also retained.

CSS -ah-ignore-leading-newline

Specifies whether the newline right after the start tag is disregarded or not.

Value:false | true | auto
Initial:false
Applies to:<pre> element
Inherited:no
Percentages:N/A

Values have the following meanings:

false

The newline right after the start tag is not disregarded.

true

The newline right after the start tag is disregarded.

auto

The newline right after the start tag is disregarded with HTML, not disregarded with XHTML.

This is effective with the element that does not disregard the newline like <pre>.

Text Alignment

axf:text-align-string / CSS -ah-text-align-string

Specifies the text alignment when text-align="<string>".

Value:start | center | end | inside | outside | left | right
Initial:end
Applies to:fo:table-cell
Inherited:yes
Percentages:N/A

Values have the following meanings:

start
center
end
inside
outside
left
right

Same as text-align or text-align-last.

Although the specification of <string> to <fo:table-cell> aligns the character position of decimal point, etc., there is no definition for the alignment of the whole character string. At a default, AH Formatter V7.1 displayed it right aligned according to the illustration of 17.5.4 Horizontal alignment in a column. AH Formatter V7.1 extends the alignment and makes it possible to align left or align center.

axf:text-align-first / CSS -ah-text-align-first

Specifies the text alignment of the first line.

Value:relative | start | center | end | justify | inside | outside | left | right
Initial:relative
Applies to:fo:block
Inherited:yes
Percentages:N/A

Values have the following meanings:

relative

Does nothing. axf:text-align-first is invalid.

start
center
end
justify
inside
outside
left
right

Same as text-align or text-align-last.

Specifies the alignment of the child of the first line area and the alignment of the line coming right after the line with U+000A at the end. Priority is given above text-align-last.

See axf:leader-expansion.

axf:flush-zone / CSS -ah-flush-zone

Adjusts the space at the end of the last line. no-LT

Value:none | <length> | <percentage>
Initial:none
Applies to:fo:block
Inherited:yes
Percentages:refer to the width of containing block

Values have the following meanings:

none

Does nothing.

<length>
<percentage>

If text-align="justify" is specified but text-align-last="justify" are not specified, and the space at the end of the last line is less than or equal to the specified value, the last line is processed as text-align-last="justify" is specified.

This property is not available with AH Formatter V7.1 Lite.

axf:balanced-text-align / CSS -ah-balanced-text-align no-LT

Specifies whether to balance the entire block including the last line.

Value:true | false | auto
Initial:auto
Applies to:fo:block
Inherited:yes
Percentages:N/A

Values have the following meanings:

true

The entire block is adjusted to be balanced including the last line.

false

Does not balance the last line.

auto

When applied to a block with any of the following conditions, the entire block including the last line is adjusted to be balanced.

  • text-align="justify" and text-align-last="justify"
  • text-align="center" and text-align-last="center"

This property is only valid when the line breaking algorithm of Breaking Paragraphs into Lines is applied, such as when axf:line-break="bpil" is specified. Otherwise it is considered false.

This property is not available with AH Formatter V7.1 Lite.

axf:leader-expansion no-LT

Specifies whether to expand a leader forcibly.

Value:auto | force
Initial:auto
Applies to:fo:block
Inherited:yes
Percentages:N/A

Values have the following meanings:

auto

Operates as usual by specifying text-align.

force

Considers a line with leaders as text-align="justify". Consequently, leaders will expand.

Suppose you create a table of contents using leaders. Then you might want to format as follows with the length of a label, or the length of the number of pages.

  1. Short Label ................................. 10, 20, 30
    
  2. Short Label ... 10, 20, 30, 40, 50, 60, 70, 80, 90, 100,
                                     110, 120, 130, 140, 150
    
  3. Very Loooooooooooooooooooooooooooooooooooooong Label ...
    ............................................. 10, 20, 30
    
  4. Very Loooooooooooooooooooooooooooooooooooooong Label ...
    ..... 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
                                               130, 140, 150
    
  5. Very Very Very Loooooooooooooooooooooooooooooooooooooong
    Long Long Label ............................. 10, 20, 30
    
  6. Very Very Very Loooooooooooooooooooooooooooooooooooooong
    Long Long Label .... 10, 20, 30, 40, 50, 60, 70, 80, 90,
                                100, 110, 120, 130, 140, 150
    

When the following XSL Standard is specified,

<fo:block text-align="justify" text-align-last="justify">
 Label
 <fo:leader leader-pattern="dots"/>
 Pages
</fo:block>

only the simple 1. and 5. can get the expected results. And 3. can be performed by the following specification.

<fo:block text-align="justify" text-align-last="justify">
 Label
 <fo:leader leader-length.minimum="0pt" leader-pattern="dots"/><fo:leader leader-pattern="dots"/>
 Pages
</fo:block>

Next, by using axf:text-align-first as follows,

<fo:block text-align="justify" text-align-last="right" axf:text-align-first="justify">
 Label
 <fo:leader leader-length.minimum="0pt" leader-pattern="dots"/><fo:leader leader-pattern="dots"/>
 Pages
</fo:block>

all cases excluding 3. and 5. gets the result as expected. Furthermore, by using axf:leader-expansion as follows,

<fo:block text-align="justify" text-align-last="right" axf:text-align-first="justify"
          axf:leader-expansion="force">
 Label
 <fo:leader leader-length.minimum="0pt" leader-pattern="dots"/><fo:leader leader-pattern="dots"/>
 Pages
</fo:block>

all cases of 1. to 6. gets the result as expected.

This property is not available with AH Formatter V7.1 Lite.

axf:text-kashida-space / CSS -ah-text-kashida-space

Specifies the percentage of Kashida in Arabic justification.

Value:<percentage> | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:yes

Values have the following meanings:

<percentage>

Indicates the percentage of white space and Kashida. If the value is 0%, Kashida is not inserted and only the white space expands as well as the normal justification. If the value is 100%, Kashida is inserted as much as possible. The value should be from 0% to 100%.

auto

Dependent on the system setting.

The initial value of the percentage can be set by text-kashida-space in the Option Setting File.

axf:justify-nbsp / CSS -ah-justify-nbsp

Specifies whether to justify NON-BREAKING SPACE or not.

Value:true | false
Initial:true
Applies to:all formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

true

NON-BREAKING SPACE is included for justification.

false

NON-BREAKING SPACE is not included for justification.

Generally, NON-BREAKING SPACE (U+00A0) is intended for justification. The axf:justify-nbsp property can be used when you want to check off U+00A0 from justification.

axf:indent-here / CSS -ah-indent-here no-LT

Aligns the indent position to the region position when a line break occurs.

Value:none | <length>
Initial:none
Applies to:fo:inline
Inherited:no
Percentages:N/A

Values have the following meanings:

none

Does nothing.

<length>

Aligns the indent position to the shifted position by <length> from the beginning of the specified line area.

In order to indent lines, specify <fo:inline> which contains this property as follows:

<fo:block>Indent-here: <fo:inline axf:indent-here="0pt"/>The quick brown fox jumps over the lazy dog ...</fo:block>

The start position of <fo:inline> becomes the standard of indentation.

This property is not available with AH Formatter V7.1 Lite.

axf:text-indent-if-first-on-page / CSS -ah-text-indent-if-first-on-page no-LT

Specifies the text-indent of a block at the top of the page or the top of the column.

Value: <length> | <percentage> | auto
Initial: auto
Applies to:fo:block, fo:block-container
Inherited:yes
Percentages:refer to the logical width of the containing block

Values have the following meanings:

<length>
<percentage>

When the block comes to the top of the page or column, if the first line is on that page or column, the value of this property substitutes for the value of text-indent.

auto

Does nothing.

This property is not available with AH Formatter V7.1 Lite.

Tab

In case of FO, the tab character (U+0009) will be normalized to the white space (U+0020); therefore, the character normally has a meaning of just a white space. However, there are a lot of document structures that the tab character aligns the text, such as JIS X 4051:2004. AH Formatter V7.1 provides the extension that enables to express the tab structure.

<axf:tab> no-LT

Common Usage:

Places a white space up to a tab stop position. Specify the tab stop position with axf:tab-stops.

Areas:

Generates and returns a single normal inline-area.

Contents:

EMPTY

This element is not equivalent to <fo:character character="&#9;"/>. For <fo:character>, all the properties related to a white space such as white-space-collapse and white-space-treatment are applied.

This element is not available with AH Formatter V7.1 Lite.

axf:tab-align no-LT

Specifies the tab alignment at the tab stop position.

Value:auto | start | center | end | left | right | decimal | <string>
Initial:auto
Applies to:axf:tab
Inherited:no
Percentages:N/A

Values have the following meanings:

auto

The alignment of the tab stop position is considered what is specified in axf:tab-stops.

start

Aligns the start of the string to the tab stop position.

center

Aligns the center of the string to the tab stop position.

end

Aligns the end of the string to the tab stop position.

left

Aligns the left side of the string (the top of the string in case of vertical writing) to the tab stop position. Same as start above in case of writing-mode="lr-tb" and "tb-rl".

right

Aligns the right side of the string (the bottom of the string in case of vertical writing) to the tab stop position. Same as end above in case of writing-mode="lr-tb" and "tb-rl".

decimal

Considered that "." is specified.

<string>

Aligns the start of the string to the tab stop position as specified. For instance, when axf:tab-align="." is specified, alignment will be made as below:

1.2345
123.45
12345.
12345

This property is not available with AH Formatter V7.1 Lite.

axf:tab-stops no-LT

Specifies the tab stop.

Value: [ [ <tab-align>? [ <length> | <number> ] ]* [ <tab-align>? eol ]? ]!
Initial:8
Applies to:all block-level formatting objects
Inherited:yes
Percentages:N/A
<tab-align> = start | center | end | left | right | decimal | <string>

Values have the following meanings:

<tab-align>

Specifies the alignment of the tab stop position. When omitted, it will be considered that this alignment is same as that of the previous tab stop position. When omitted at the start of the line, the value will be considered start. For more details, see axf:tab-align.

<length>

Specifies the tab length.

<number>

Regards the specified number of the white space characters (U+0020) as the tab length.

eol

Regards that the tab stop position is placed at the end of the line. However, when the previous tab specification already exceeded the end of the line, it will be considered that the tab stop position is always placed at the end of the line.

The tab length to be specified will be the distance added from the start of the reference area. You cannot specify a negative value. When eol is not specified, it will be considered that the tab length is repeatedly specified until the last value reaches the end of the line. However, when this value is 0, the tab will be ignored. For instance, specify as below:

axf:tab-stops="80pt decimal 40pt end 8 eol"

In case of CSS, tab-size:8 is equivalent to axf:tab-stops="8".

This property is not available with AH Formatter V7.1 Lite.

axf:tab-treatment no-LT

Specifies the method to treat the tab character (U+0009).

Value:<number> | preserve
Initial:4
Applies to:fo:block, fo:character
Inherited:yes
Percentages:N/A

Values have the following meanings:

<number>

Treated as the specified number of the white space characters (U+0020). You cannot specify a negative value. This white space is subject to processing of white-space-treatment and white-space-collapse, etc.

preserve

Treated as <axf:tab/>.

This property is not available with AH Formatter V7.1 Lite.

axf:tab-overlap-treatment no-LT

Specifies a behavior when tab alignment makes letters overlapped.

Value:auto | ignore-tab | next-tab
Initial:auto
Applies to:fo:block, fo:character
Inherited:yes
Percentages:N/A

Values have the following meanings:

auto

Depends on the default value of the system. This is the value specified in tab-overlap-treatment in the Option Setting File.

ignore-tab

Ignores the tab. The string will be shown just after the previous string.

next-tab

Places the tab at the next tab stop position.

Letters will not be overlapped when axf:tab-align="start" is specified.

This property is not available with AH Formatter V7.1 Lite.


Character and Text Decoration

axf:text-line-color / CSS -ah-text-line-color

Specifies the color of underline, strikethrough, and overline.

Value:<color>
Initial:the value of the ‘color’ property
Applies to:all elements with and generated content with textual content
Inherited:no
Percentages:N/A

axf:text-line-style / CSS -ah-text-line-style

Specifies the style of underline, strikethrough, and overline.

Value:<border-style>
Initial:solid
Applies to:all elements with and generated content with textual content
Inherited:no
Percentages:N/A

none cannot be specified to <border-style>.

axf:text-line-width / CSS -ah-text-line-width

Specifies the width of underline, strikethrough, and overline.

Value:auto | <border-width>
Initial:auto
Applies to:all elements with and generated content with textual content
Inherited:no
Percentages:N/A

axf:text-underline-position / CSS (-ah-)text-underline-position

Specifies the position of underline. [CSS3-Text] Other text decoration simple properties: 'text-underline-position'

Value: auto | [ [ before-edge | alphabetic | after-edge ] || [ <percentage> | <length> ] ]
Initial:auto
Applies to:all elements with and generated content with textual content
Inherited:yes
Percentages:refers to the line height of the parent area

Values have the following meanings:

auto

The underline is placed on the automatically adjusted position. The specification of axf:vertical-underline-side in vertical writing mode is effective.

before-edge

The underline is placed on the before-edge. When <percentage> or <length> is not specified, the upper end of the height of an underline is placed on the before-edge. When <percentage> or <length> is specified, the center of the height of an underline is placed on the before-edge.

alphabetic

The underline is placed on the position of the baseline. When <percentage> or <length> is not specified, the upper end of the height of an underline is placed on the baseline. When <percentage> or <length> is specified, the center of the height of an underline is placed on the baseline.

after-edge

The underline is placed on the after-edge. When <percentage> or <length> is not specified, the upper end of the height of an underline is placed on the after-edge. When <percentage> or <length> is specified, the center of the height of an underline is placed on the after-edge.

<percentage>
<length>

The underline position is shifted by the specified amount. When the underline is placed on the right side by axf:vertical-underline-side, it is moved to the opposite direction of the left side.

axf:vertical-underline-side / CSS -ah-vertical-underline-side

Specifies on which side of the text to put underline in vertical writing-mode.

Value:left | right | depend-on-language | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

left

The underline is placed on the left side.

right

The underline is placed on the right side.

depend-on-language

The underline is placed on the right side when the language property is Japanese (jpn) or Korean (kor). The underline is placed on the left side when the language property is other than Japanese (jpn) or Korean (kor).

auto

Dependent on the system setting.

This property is effective only when axf:text-underline-position="auto" is specified. The overline is placed on the opposite position of the underline.

The initial value of the underline position can be set by vertical-underline-side in the Option Setting File. It can also be set in the Format Option Setting Dialog in the GUI.

When axf:vertical-underline-side="auto" is specified and the initial value of the system is also auto, the underline is placed on the right side when the language property is Japanese (jpn) or Korean (kor). The underline is placed on the left side when the language property is other than Japanese (jpn) or Korean (kor). If there is no language properties specified, it depends on the Default CJK language setting.

axf:text-stroke / CSS -ah-text-stroke no-LT

Specifies the stroke of the character.

Value:<length> <color>? | <color>
Initial:0pt transparent
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

This is a shorthand property for axf:text-stroke-width and axf:text-stroke-color.

This property is not available with AH Formatter V7.1 Lite.

axf:text-stroke-width / CSS -ah-text-stroke-width no-LT

Specifies the stroke width of the character.

Value:<length>
Initial:0pt
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Specifies the stroke width of the character. Strokes are not drawn when these are less than or equal to 0.

This property is not available with AH Formatter V7.1 Lite.

axf:text-stroke-color / CSS -ah-text-stroke-color no-LT

Specifies the stroke color of the character.

Value:<color>
Initial:transparent
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Specifies the stroke color of the character. Strokes are not drawn when these are transparent.

This property is not available with AH Formatter V7.1 Lite.

CSS (-ah-)text-decoration

[CSS 2.1] 16.3.1 Underlining, overlining, striking, and blinking
[CSS3-TextDecor] Text Decoration Shorthand: the ‘text-decoration’ property

Value:<text-decoration-line> || <text-decoration-color> || <text-decoration-style>
Initial:none
Applies to:all elements and generated content
Inherited:no
Percentages:N/A

CSS (-ah-)text-decoration-color

[CSS3-TextDecor] Text Decoration Color: the ‘text-decoration-color’ property

Value:<color>
Initial:currentColor
Applies to:all elements and generated content
Inherited:no
Percentages:N/A

 axf:text-line-color

CSS (-ah-)text-decoration-line

[CSS3-TextDecor] Text Decoration Lines: the ‘text-decoration-line’ property

Value:none | [ underline || overline || line-through || blink ]
Initial:none
Applies to:all elements and generated content
Inherited:no (but see prose)
Percentages:N/A

 [XSL 1.1] text-decoration

CSS (-ah-)text-decoration-style

[CSS3-TextDecor] Text Decoration Style: the ‘text-decoration-style’ property

Value:<border-style>
Initial:solid
Applies to:all elements and generated content
Inherited:no
Percentages:N/A

 axf:text-line-style

axf:text-orientation / CSS (-ah-)text-orientation no-LT

mixed uprightSpecifies the orientation of text in vertical writing mode. [CSS3-WritingModes] Orienting Text: the ‘text-orientation’ property

Value:mixed | upright | sideways-rl | sideways | none | auto
Initial: auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

mixed

Rotates alphanumeric characters, etc. 90-degree clockwise. (As shown on the right in the figure.)

upright

Renders all the characters upright except for punctuation marks, such as parentheses. (As shown on the left in the figure.)

sideways-rl
sideways

Rotates all the characters 90-degree clockwise. This has the same effect as setting some parts in horizontal layout in the vertical writing mode.

none

Dependent on the system. Although the operation is close to mixed, which character is rotated is decided by considering the compatibility with the old version.

auto

In XSL-FO, it is considered mixed when the value of text-orientation-mode is 7 in the Option Setting File, none when the value is less than or equal to 6. In CSS, it is considered mixed.

See also Upright Rendering of Text in Vertical Writing Mode to learn more about the behavior of mixed and upright. It is always considered axf:word-break="break-all", hyphenate="false" in upright character strings.

This property is not effective in horizontal writing mode. In addition, complicated scripts, such as Arabic or Thai, cannot be rendered upright.

This property is not available with AH Formatter V7.1 Lite.

axf:text-combine-horizontal / CSS (-ah-)text-combine-horizontal no-LT

Sets horizontal-in-vertical composition in vertical writing mode automatically. [CSS3-WritingModes] Horizontal-in-Vertical Composition: the ‘text-combine-horizontal’ property (“text-combine-horizontal” has been removed from CSS3-WritingMode on and after March 20, 2014)

Value: none | all | [ digits <integer> || alpha <integer> || alphanumeric <integer> ]
Initial:none
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

Does not set horizontal-in-vertical composition.

all

The whole element which consists of only text is set to horizontal-in-vertical composition.

digits

A sequence of consecutive numbers (0-9) that are less than or equal to the digit number specified by <integer> is set to horizontal-in-vertical composition.

alpha

A sequence of consecutive alphabetic characters (A-Z, a-z) that are less than or equal to the digit number specified by <integer> is set to horizontal-in-vertical composition.

alphanumeric

A sequence of consecutive alphanumeric characters (0-9, A-Z, a-z) that are less than or equal to the digit number specified by <integer> is set to horizontal-in-vertical composition.

Usually, horizontal-in-vertical composition will be marked up as follows:

<fo:inline-container writing-mode="lr-tb"
                     line-height="1"
                     text-align-last="center"
                     text-indent="0pt"
                     start-indent="0pt"
                     end-indent="0pt"
                     padding="0pt"
                     wrap-option="no-wrap">
 <fo:block>12</fo:block>
</fo:inline-container>

The automatic horizontal-in-vertical composition saves time and effort for this.

axf:text-combine-horizontal is applied before axf:text-orientation or text-transform, etc. The removable white space placed before and after the character string targeted for horizontal-in-vertical composition will be removed.

When digits is specified to axf:text-combine-horizontal and axf:text-orientation="upright" is also specified, the following behaviors are applied to the sequence of numbers targeted for horizontal-in-vertical composition that are shorter than <integer>, that has adjacent decimal point.

  • U+002E and U+FF65 are considered decimal points.
  • A sequence of numbers targeted for horizontal-in-vertical composition after the decimal point will not be set to horizontal-in-vertical composition. However, the decimal point will be transferred to U+FF65.
  • When the decimal point comes after a sequence of numbers targeted for horizontal-in-vertical composition, the sequence of numbers will be set to horizontal-in-vertical composition. The decimal point will be transferred to U+FF65.

The figure on the right shows the example of the horizontal-in-vertical composition set to “12.34” automatically.

<fo:block axf:text-combine-horizontal="digits 2"
          axf:text-orientation="upright"
>12.34</fo:block>

Furthermore, with the combination of text-transform, you can set two or more characters in non full-width, change others in full-width in horizontal-in-vertical composition.

<fo:block axf:text-combine-horizontal="digits 2"
          axf:text-orientation="upright"
          text-transform="full-width"
>平成25年4月16日</fo:block>

Automatic horizontal-in-vertical composition is invalid in the following cases. Emphasis marks in horizontal-in-vertical composition will be deleted.

  • In horizontal writing mode (includes the case where the value for axf:text-orientation is sideways in horizontal-in-vertical composition)
  • When languages other than CJK are specified
  • Within ruby
  • Character strings generated dynamically, such as <fo:page-number>

This property is not available with AH Formatter V7.1 Lite.

Emphasis Marks

AH Formatter V7.1 is capable of applying emphasis marks to the character string. However, emphasis marks cannot be applied to an arbitrary script. Only to the following scripts in addition to CJK are available.

  • Latn
  • Cyrl
  • Grek
  • Zyyy

It's not available to apply emphasis marks to the ruby characters, though it is available to apply to ruby's base characters.

As for the glyph of the emphasis mark in the general font, the size of glyph image is various, you will need to adjust the position and size according to the emphasis mark you use.

axf:text-emphasis-style="sesame"
axf:text-emphasis-offset="-0.25"
axf:text-emphasis-font-size="1"
axf:text-emphasis-position="before"
axf:text-emphasis-style="circle"
axf:text-emphasis-offset="0.25"
axf:text-emphasis-font-size="0.25"
axf:text-emphasis-position="before"

A free special font suitable for emphasis marks is available ( Kenten Generic OpenType Font). The font has the same size of emphasis marks, then the same settings for any emphasis marks will be OK.

axf:text-emphasis-style="sesame"
axf:text-emphasis-offset="0"
axf:text-emphasis-font-size="0.5"
axf:text-emphasis-font-family="KentenGeneric"
axf:text-emphasis-position="before"

axf:text-emphasis-style / CSS (-ah-)text-emphasis-style

Specifies the style of emphasis marks. [CSS3-TextDecor] Emphasis Mark Style: the ‘text-emphasis-style’ property

Value:none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>
Initial:none
Applies to:all elements
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

No emphasis marks.

filled

Specifies a character with color-fill.

open

Specifies a character with an outline without color-fill.

dot

Specifies a filled dot. filled dot is U+2022 , open dot is U+25E6 .

circle

Specifies a circle. filled circle is U+25CF , open circle is U+25CB .

double-circle

Specifies a double-circle. filled double-circle is U+25C9 , open double-circle is U+25CE .

triangle

Specifies a triangle. filled triangle is U+25B2 , open triangle is U+25B3 .

sesame

Specifies a sesame dot. filled sesame is U+FE45 , open sesame is U+FE46 .

<string>

Specifies an arbitrary character string. When multiple characters are specified, overlapping of emphasis marks is not considered though everything is displayed.

when filled or open is not specified, it's considered filled. When filled or open is specified, it's considered circle in vertical writing mode.

axf:text-emphasis-position / CSS (-ah-)text-emphasis-position

Specifies on which side of base characters emphasis marks are put. [CSS3-TextDecor] Emphasis Mark Position: the ‘text-emphasis-position’ property

Value:before | after
Initial:before
Applies to:all elements
Inherited:yes
Percentages:N/A

Values have the following meanings:

before

Emphasis marks are put on the before side.

after

Emphasis marks are put on the after side.

axf:text-emphasis-offset / CSS -ah-text-emphasis-offset

Specifies the space between emphasis marks and the base characters.

Value:<number> | <length> | <percentage>
Initial:0pt
Applies to:all elements
Inherited:yes
Percentages:refer to the font size

When specified using <number>, the value is what is obtained by multiplying text-emphasis-font-size by the specified <number>. When ruby and emphasis marks are put on the same side, it is adjusted to the larger one of the specified value and the ruby height.

axf:text-emphasis-skip / CSS -ah-text-emphasis-skip

Specifies the character to which emphasis marks are not applied.

Value:none | [ spaces || punctuation || symbols || narrow ]
Initial:spaces
Applies to:all elements
Inherited:yes
Percentages:N/A

Values have the following meanings:

spaces

White space characters are excluded.

punctuation

Punctuation marks are excluded.

symbols

Symbols are excluded.

narrow

Non full width characters (half width characters, etc.) are excluded.

axf:text-emphasis-font-family / CSS -ah-text-emphasis-font-family

Specifies the font family of emphasis marks.

Value:[ <family-name> | <generic-family> ]#
Initial:empty string
Applies to:emphasis elements
Inherited:yes
Percentages:N/A

If nothing is specified, it's considered the same as font-family.

axf:text-emphasis-font-size / CSS -ah-text-emphasis-font-size

Specifies the font size of emphasis marks.

Value:<number> | <absolute-size> | <relative-size> | <length> | <percentage>
Initial:0.5
Applies to:emphasis elements
Inherited:yes
Percentages:refer to the font size

When specified using <number>, the value is what is obtained by multiplying font-size by the specified <number>.

axf:text-emphasis-font-style / CSS -ah-text-emphasis-font-style

Specifies whether emphasis marks are made Italic.

Value:normal | italic
Initial:empty
Applies to:emphasis elements
Inherited:yes
Percentages:N/A

If nothing is specified, it's considered the same as font-style.

axf:text-emphasis-font-weight / CSS -ah-text-emphasis-font-weight

Specifies the font weight of emphasis marks.

Value:normal | bold | bolder | lighter | 1...1000
Initial:empty
Applies to:emphasis elements
Inherited:yes
Percentages:N/A

If nothing is specified, it's considered the same as font-weight.

axf:text-emphasis-font-stretch / CSS -ah-text-emphasis-font-stretch

Specifies the font stretching of emphasis marks.

Value:normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | <percentage> | <number>
Initial:empty
Applies to:emphasis elements
Inherited:yes
Percentages:refer to the text-emphasis-font-size

If nothing is specified, it's considered the same as font-stretch.

axf:text-emphasis-color / CSS (-ah-)text-emphasis-color

Specifies the color of emphasis marks. [CSS3-TextDecor] Emphasis Mark Color: the ‘text-emphasis-color’ property

Value:<color>
Initial:currentColor
Applies to:emphasis elements
Inherited:yes
Percentages:N/A

If nothing is specified, it's considered the same as color.

Text Shadow

text-shadow / CSS (-ah-)text-shadow no-LT

Specifies the text shadow. [CSS3-TextDecor] Text Shadows: the ‘text-shadow’ property

Value: none | [ <length>{2,3} && <color>? ]#
Initial:none
Applies to:all elements which can have borders
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

No shadow is displayed.

The meanings of <length>s and a <color> are as follows:

  • The first <length> is an offset of a horizontal shadow. It becomes a right-side shadow of a region when a positive value is specified. It becomes a left-side shadow of a region when a negative value is specified.
  • The second <length> is an offset of a vertical shadow. It becomes a bottom-side shadow of a region when a positive value is specified. It becomes a top-side shadow of a region when a negative value is specified.
  • The 3rd <length> has to be the non-negative value and specifies the blur radius. If 0 is specified, there is no shading. When the value greater than 0 is specified, the text shadow is described in raster-image format.
    The resolution of a described image can be set by textshadow-resolution-minimum-dpi, textshadow-resolution-pixel-per-em. In addition, when the blur radius is given by the length in px unit, the blur radius will not be decided by the resolution setting but by pxpi.
  • The color of the shadow can be specified by <color>.

This combination can be specified multiply and shadows can be added several times over. This property is not available with AH Formatter V7.1 Lite.

Note the following when you set the blur:

  • Effective only with GUI and PDF output. The blur setting is ignored with the other outputs.
  • The blur setting is ignored with the device that cannot output in transparent mode like PDF/X.
  • The glyph of the font is processed and transformed into the raster image. Some fonts may not be allowed to transform into images, process and distribute. Be sure the font you are using has no licensing problem.
  • When you set the blur without embedding the font, the font shape may differ between the text shadow and the text area in the environment where the font is not installed. We recommend to embed fonts when setting the blur. Also It's possible to specify whether to blur the font that are not allowed to embed by textshadow-blur-cannot-embed-font.
  • It's not described to the decorated characters, such as decorated lines or emphasis marks.
  • Compression in PDF Output can also be applied to the image created by this feature.
  • The blur setting is ignored when transparency is specified as false.

Drop Capitals

axf:initial-letters / CSS (-ah-)initial-letters no-LT

Creates drop initials. [CSS3-Inline] Initial Letters

Value:normal | [[<number> | <length>] <integer>? | [<number> | <length>] && [drop | raise]] [adjacent | <integer2>]?
Initial:normal
Applies to:fo:block (XSL) / ::first-letter (CSS)
Inherited:no
Percentages:N/A

Values have the following meanings:

normal

Does nothing.

<number>

Specifies the letter size of a dropped initial by number of lines. When the value is less than 1, it is invalid.

<length>

Specifies the letter size of a dropped initial by actual dimensions. The specified dimension is converted to how many lines it corresponds to. When it is less than 1 line, it is invalid.

<integer>

Specifies the number of lines a dropped initial should sink. When the value is omitted, it is considered a value obtained by rounding down the number of lines to an integer. When the value is less than 1, it is invalid.

drop

Equivalent to specifying a value of the number of lines rounded down to an integer to <integer>.

raise

Equivalent to specifying 1 to <integer>.

adjacent

Indents all lines in the block, not just the letter of a dropped initial.

<integer2>

Similar to adjacent, but indents the lines after the part of dropped initial by the specified number of lines. When the value is omitted, it is considered 0. When the value is negative, it is invalid.

This property can only be specified in <fo:block> in XSL-FO and in the ::first-letter pseudo element in CSS. A dropped initial is selected from the first text by tracing the children of the element for which axf:initial-letters is specified. In XSL-FO, axf:initial-letters is ignored if the following elements appear before text. In CSS, it follows the ::first-letter pseudo element (except for ruby).

  • fo:block with axf:initial-letters specified
  • fo:block within inline elements
  • Block elements other than fo:block
  • fo:inline-container
  • fo:bidi-override
  • fo:page-number
  • fo:page-number-citation
  • fo:page-number-citation-last
  • axf:footnote-number
  • axf:footnote-number-citation

When the strings of the block with axf:initial-letters specified are short and less than the number of lines to be sunk, the succeeding block without axf:initial-letters specified is also indented. However, in the following cases, it will not be indented and will be placed on the next line of the dropped initial.

  • Block with clear="start" or "both" specified
  • When a float is included on the end side of a block with clear="end" specified
  • When a space is included between blocks due to margin, etc.

A dropped initial is the first letter except for the following punctuations from the first text and accents that decorate them. At that time, all the following punctuations that are adjacent are also selected according to the ::first-letter specification.

  • Ps : open punctuation
  • Pe : close punctuation
  • Pi : initial punctuation
  • Pf : final punctuation
  • Po : other punctuation

For example, “H will be a dropped initial in case of “Hello.

The font size is automatically calculated from the cap-height etc. of the font, so the font-size specified in ::first-letter is ignored. When the letter following the dropped initial is in lowercase and small-caps is specified, the letter size is calculated taking into account not only cap-height but also x-height. For more details, see also axf:initial-letters-first-line-head-height. Some fonts do not have cap-height or x-height, or may not have appropriate values. In such a case, it can be adjusted by specifying in the Font Configuration File.

If the first letter is ruby, then the first ruby container of that ruby will be a dropped initial. When an image, such as <fo:external-graphic> comes first, the image is a dropped initial. At that time, all the settings related to the scaling of the image are ignored. If ::first-letter without initial-letters specified, ::first-letter does not apply to ruby or image.

::first-letter may be nested.

div::first-letter { ... }
p::first-letter { ... }
<div><p>Hello...

In this example, all ::first-letters are evaluated as follows:

<div><p><div::first-letter><p::first-letter>H</p::first-letter></div::first-letter>ello...

When initial-letters is specified to ::first-letter, the following restrictions apply.

  • For initial-letters, only the first ::first-letter is valid, and anything else specified is ignored.
  • If initial-letters is specified, subsequent ::first-letters are ignored.

A float with axf:float-x="start" within the number of lines of the dropped initial is placed on the start side of the dropped initial when it is included at the beginning. Otherwise, it will be pushed out and placed on the after side of the dropped initial.

This property is not available with AH Formatter V7.1 Lite.

axf:initial-letters-first-line-head-height / CSS -ah-initial-letters-first-line-head-height no-LT

Specifies where the height of a dropped initial should be adjusted.

Value:cap-height | x-height | auto
Initial:auto
Applies to:fo:block (XSL) / ::first-letter (CSS)
Inherited:yes
Percentages:N/A

Values have the following meanings:

cap-height

Adjusts the height to cap-height on the first line. The figure shows an example when the number of lines is 2.

initial-letters-cap-height

x-height

Adjusts the height to x-height on the first line. The figure shows an example when the number of lines is 2 and small-caps is specified for the first line.

initial-letters-x-height

auto

Adjusts the height to x-height under the following conditions: Otherwise, adjusts to cap-height.

  • When the next character of a dropped initial character or image is lowercase small-caps (provided that the character or image to be a dropped initial and the next character belong to the same element)
  • When the number of lines of a dropped initial is equal to the number of lines a dropped initial should sink (provided that the number of lines is specified without units)

This property is not available with AH Formatter V7.1 Lite.

axf:initial-letters-end-indent / CSS -ah-initial-letters-end-indent no-LT

Specifies the space on the end side of a dropped initial.

Value:<length>+
Initial:0pt
Applies to:fo:block (XSL) / ::first-letter (CSS)
Inherited:yes
Percentages:N/A

Multiple values can be specified. The first value applies to the first line and the second value applies to the next line. The last value applies after the corresponding line.

This property is not available with AH Formatter V7.1 Lite.

axf:initial-letters-leading-punctuation / CSS -ah-initial-letters-leading-punctuation no-LT

Specifies the size of the leading punctuation of a dropped initial, etc.

Value:normal | hide | [<length> || <color>]
Initial:normal
Applies to:fo:block (XSL) / ::first-letter (CSS)
Inherited:yes
Percentages:N/A

Values have the following meanings:

normal

Does nothing special.

hide

Does not display the leading punctuation.

<length>

Specifies the font size of the leading punctuation.

<color>

Specifies the color of the leading punctuation.

This property is not available with AH Formatter V7.1 Lite.

axf:initial-letters-leading-punctuation-position / CSS -ah-initial-letters-leading-punctuation-position no-LT

Specifies the position of the leading punctuation of a dropped initial in the inline progression direction.

Value:normal | [[hang | intrude] && <length>?]
Initial:normal
Applies to:fo:block (XSL) / ::first-letter (CSS)
Inherited:yes
Percentages:N/A

Values have the following meanings:

normal

Does nothing special.

hang

Protrudes the leading punctuation to the start side. axf:hanging-punctuation="start" protrudes one-character punctuation, but the hang setting protrudes all punctuations.

intrude

Penetrates and overlaps the leading punctuation with the dropped initial.

<length>

Adjusts the position of the leading punctuation. hang or intrude must be specified. Shifts the punctuation from that position by the specified length in the inline progression direction.

This property is not available with AH Formatter V7.1 Lite.

axf:initial-letters-leading-punctuation-shift / CSS -ah-initial-letters-leading-punctuation-shift no-LT

Specifies the position of the leading punctuation of a dropped initial in the block progression direction.

Value:normal | [[baseline | before | middle | after] || <length>]
Initial:normal
Applies to:fo:block (XSL) / ::first-letter (CSS)
Inherited:yes
Percentages:N/A

Values have the following meanings:

normal

Does nothing special. Aligns the leading punctuation with the baseline for horizontal writing and aligns it with the center for vertical writing.

baseline

Aligns the leading punctuation with the baseline of the last line.

before

Aligns the leading punctuation with the before side of the dropped initial.

middle

Aligns the leading punctuation with the center of the dropped initial.

after

Aligns the leading punctuation with the after side of the dropped initial.

<length>

Specifies the baseline-shift amount of the leading punctuation. If it is specified at the same time as baseline, before, middle, and after, it is the shift amount from that position.

This property is not available with AH Formatter V7.1 Lite.

axf:initial-letters-width no-LT

Specifies the width of a dropped initial.

Value:auto | <length> | <percentage>
Initial:auto
Applies to:fo:block
Inherited:yes
Percentages:refer to the width of containing reference area

Values have the following meanings:

auto

The width of a dropped initial is calculated from the included character string or image.

<length>
<percentage>

Forces the width of a dropped initial to the specified width.

Specify width in ::first-letter in CSS.

This property is not available with AH Formatter V7.1 Lite.

axf:initial-letters-text-align no-LT

Specifies the alignment of a dropped initial.

Value:start | center | end | left | right
Initial:end
Applies to:fo:block
Inherited:yes
Percentages:N/A

When the value of axf:initial-letters-width is auto, it has no effect because there is no room for right alignment.

Specify text-align in ::first-letter in CSS.

This property is not available with AH Formatter V7.1 Lite.

axf:initial-letters-color no-LT

Specifies the text color of a dropped initial.

Value:<color>
Initial:the value of the ‘color’ property
Applies to:fo:block
Inherited:yes
Percentages:N/A

Specify color in ::first-letter in CSS.

This property is not available with AH Formatter V7.1 Lite.


Text Transformation

axf:normalize / CSS -ah-normalize no-LT

Specifies the normalization of text.

Value: auto | none | nfc | nfkc | nfd | nfkd
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

auto
Depends on the value of normalize specified to the Option Setting File.
none
Does not normalize text.
nfc
Performs NFC.
nfkc
Performs NFKC.
nfd
Performs NFD.
nfkd
Performs NFKD.

Specifies whether the normalization defined in UAX#15: Unicode Normalization Forms is performed. The normalization is performed to the character strings described in the text area. If you use only the normalized code from the start, it is not necessary to specify the normalization. If not, the normalization by NFC will be a good choice for practical use.

In these conversions, all the Composition Exclusions are excluded from the normalization processing when axf:normalize-exclude="full-composition-exclusion" is specified.

This feature is not available with AH Formatter V7.1 Lite.

axf:normalize-exclude / CSS -ah-normalize-exclude no-LT

Specifies whether Composition Exclusions are excluded or not when the normalization (axf:normalize) is specified.

Value: full-composition-exclusion | none
Initial:full-composition-exclusion
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

full-composition-exclusion
Excludes all the characters specified in Composition Exclusions.
none
Does not exclude.

This feature is not available with AH Formatter V7.1 Lite.

axf:text-replace / CSS (-ah-)text-replace

Replaces the character strings. [CSS3-GCPM] Character substitution (“text-replace” has been removed from GCPM on and after June 8, 2010)

Value:none | [ <string> <string> ]+
Initial:none
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

Does nothing.

<string> <string>

The first pair of character strings is replaced by the latter character strings. You have to specify a character string by a pair. It is not replaced when character strings are odd pieces or the first character string is empty. White space characters will be replaced after being processed by white-space-treatment, etc.

When it is simultaneously specified with text-transform or axf:number-transform, axf:text-replace will be evaluated last.

axf:number-transform / CSS -ah-number-transform no-LT

Converts the number sequence in the character string.

Value:none | kansuji | kansuji-if-vertical | <list-style-type> | <string>
Initial:none
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

Does nothing.

kansuji

Converts the contained number sequence into Japanese numerals. The details of the Japanese numeral format can be specified by axf:kansuji-style, axf:kansuji-letter and axf:kansuji-grouping-letter.

kansuji-if-vertical

Only with the vertical writing, such as writing-mode="tb-rl", axf:number-transform="kansuji" is applied. Does no conversion when it's not the vertical writing.

<list-style-type>

The same value as list-style-type can be specified. The range of the value that can be converted varies depending on the style.

<string>

When a character string is specified, the behavior is same as when the character string is specified by format.

A number sequence (number) here indicates character strings of the following forms.

number ::= '-'? digits
digits ::= [0-9]+

When it is simultaneously specified with text-transform or axf:text-replace, axf:number-transform is evaluated first. When a counter style which was specified with axf:counter-style or symbols() is used, prefix/suffix will not be added.

CSS (-ah-)list-style-type

Specifies the list style. [CSS3-Lists] 3 Default Marker Contents

Value: none | <name> | <string>
Initial:disc
Applies to:all elements with 'display:list-item'
Inherited:yes
Percentages:N/A

The following <list-style-type> are supported.  axf:number-transform, format, axf:counter-style, counter()

If no counter style is found, the style is considered decimal.

Japanese Numerals

AH Formatter V7.1 can convert numbers into Japanese numerals using axf:number-transform. This function is not available with AH Formatter V7.1 Lite.

axf:kansuji-style / CSS -ah-kansuji-style no-LT

Specifies the style used for Japanese numerals.

Value:simple | grouping | readable
Initial:simple
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

simple

Converts a number sequence into Japanese numerals by one to one correspondence.

12340   ⇒ 一二三四〇
6700000 ⇒ 六七〇〇〇〇〇

grouping

In adds to the conversion of one to one correspondence, grouping for “万億兆京垓𥝱穣溝澗正載極” is inserted.

  • When all the parts below a certain grouping are zero, they are disregarded.

12340   ⇒ 一万二三四〇
6700000 ⇒ 六七〇万

readable

Inserts grouping of “万億兆...” and uses “十百千” additionally so that the character strings becomes readable.

  • Preceding zero is disregarded.
  • In the huge numerical value which needs the next grouping of “”, the digits more than “” are converted by one to one correspondence.

12340   ⇒ 一万二千三百四十
6700000 ⇒ 六百七十万
1000000 ⇒ 百万
000015  ⇒ 十五
0       ⇒ 〇

axf:kansuji-letter / CSS -ah-kansuji-letter no-LT

Specifies the character used for Japanese numerals.

Value:kanji | latin | <string>
Initial:kanji
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

kanji

Use Japanese numerals for numbers. Equivalent to specify axf:kansuji-letter="〇一二三四五六七八九".

: U+3007
: U+4E00
: U+4E8C
: U+4E09
: U+56DB
: U+4E94
: U+516D
: U+4E03
: U+516B
: U+4E5D

latin

Use full width western numerals for numbers. Equivalent to specify axf:kansuji-letter="0123456789".

: U+FF10
: U+FF11
: U+FF12
: U+FF13
: U+FF14
: U+FF15
: U+FF16
: U+FF17
: U+FF18
: U+FF19

<string>

Specifies arbitrary characters as numbers you use. For example, if you want to use traditional Japanese numerals, specify axf:kansuji-letter="零壱弐参肆伍陸柒捌玖". If you want to specify traditional Japanese numerals only to “一二三”, specify axf:kansuji-letter="〇壱弐参四五六七八九". If you specify only the head part like axf:kansuji-letter="〇壱弐参", it is compensated as axf:kansuji-letter="〇壱弐参四五六七八九".

: U+96F6
: U+58F1
: U+5F10
: U+53C2
: U+8086
: U+4F0D
: U+9678
: U+67D2
: U+634C
: U+7396

axf:kansuji-grouping-letter / CSS -ah-kansuji-grouping-letter no-LT

Specifies the grouping character used for Japanese numerals.

Value:<string>
Initial:empty string
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

The null character sequence is considered “十百千万億兆京垓𥝱穣溝澗正載極”. Change and specify only a corresponding character if you want to change “” to “”, for example. When you specify only the head part like “拾佰阡萬”, it is compensated as “拾佰阡萬億兆京垓𥝱穣溝澗正載極”.

: U+5341 : 10
: U+767E : 100
: U+5343 : 1000
: U+4E07 : 104
: U+5104 : 108
: U+5146 : 1012
: U+4EAC : 1016
: U+5793 : 1020
𥝱 : U+25771 : 1024
: U+7A63 : 1028
: U+6E9D : 1032
: U+6F97 : 1036
: U+6B63 : 1040
: U+8F09 : 1044
: U+6975 : 1048

: U+62FE : 10
: U+4F70 : 100
: U+9621 : 1000
: U+842C : 104

<axf:counter-style> / CSS @counter-style no-LT

With AH Formatter V7.1, unique counter style can be defined. For details about the CSS specification, see CSS Counter Styles Level 3. This function is not available with AH Formatter V7.1 Lite.

Common Usage:

Defining custom counter styles. This element does not generate area.

Areas:

None.

Constraints:
<!ELEMENT axf:counter-style EMPTY>
<!ATTLIST axf:counter-style name             CDATA #REQUIRED>
<!ATTLIST axf:counter-style system           CDATA "symbolic">
<!ATTLIST axf:counter-style negative         CDATA "-">
<!ATTLIST axf:counter-style prefix           CDATA "">
<!ATTLIST axf:counter-style suffix           CDATA ", ">
<!ATTLIST axf:counter-style range            CDATA "auto">
<!ATTLIST axf:counter-style pad              CDATA "0 ''">
<!ATTLIST axf:counter-style fallback         CDATA "decimal">
<!ATTLIST axf:counter-style symbols          CDATA #IMPLIED>
<!ATTLIST axf:counter-style additive-symbols CDATA #IMPLIED>

The <axf:counter-style> element can be placed directly under <fo:declarations>.

Contents:

EMPTY

Examples:
<fo:declarations>
  <axf:counter-style name="trinary"
                     system="numeric"
                     symbols="'0' '1' '2'"
                     suffix="') '"/>
</fo:declarations>

The following properties can be specified to <axf:counter-style> / @counter-style.

name

Specifies the name of the counter style.

Value:<name>
Initial:N/A
Inherited:no
Percentages:N/A

This name can be used with list-style-type and axf:number-transform etc. Note that default, decimal and none cannot be specified. The following counter styles are predefined. For more details, see Ready-made Counter Styles and 7. Complex Predefined Counter Styles.

A string generated with system="cyclic" is the one that is set with <list-style-type> in the Option Setting File. Items denoted with “*” mean that they were added for compatibility. kansuji denoted with “**” is converted in accordance with axf:kansuji-style. The counter style that is classified as complex cannot be defined with <axf:counter-style> / @counter-style. On the other hand, it can be extended with extends.

These predefined counter style names are case insensitive, while the counter style names that are defined with <axf:counter-style> / @counter-style are case sensitive.

CSS does not have this property. In case of CSS, specify the name with @counter-style directly.

system

Specifies the type of the counter system.

Value:cyclic | numeric | alphabetic | symbolic | additive | [fixed <integer>?] | [ extends <counter-style-name> ]
Initial:symbolic
Inherited:no
Percentages:N/A

negative

Specifies the prefix and the suffix for the negative value.

Value:<symbol> <symbol>?
Initial:"-"
Inherited:no
Percentages:N/A

prefix

Specifies the prefix.

Value:<symbol>
Initial:""
Inherited:no
Percentages:N/A

suffix

Specifies the suffix.

Value:<symbol>
Initial:", "
Inherited:no
Percentages:N/A

range

Specifies the range to which the style is applied.

Value:[ [ <integer> | infinite ]{2} ]# | auto
Initial:auto
Inherited:no
Percentages:N/A

pad

Specifies the padding for a small digit.

Value:<integer> && <symbol>
Initial:0 ""
Inherited:no
Percentages:N/A

fallback

Specifies the fallback style in case where the style could not be applied due to the style out of the range.

Value:<counter-style-name>
Initial:decimal
Inherited:no
Percentages:N/A

symbols

Specifies the counter symbol.

Value:<symbol>+
Initial:N/A
Inherited:no
Percentages:N/A

additive-symbols

Specifies the weighted counter symbol.

Value:[ <integer> && <symbol> ]#
Initial:N/A
Inherited:no
Percentages:N/A


Font Control

axf:ligature-mode / CSS -ah-ligature-mode

Specifies whether to perform the ligature processing.

Value:none | [latin || kana || jamo] | all | auto
Initial:auto
Applies to:all block-level and inline-level formatting objects
Inherited:yes
Percentages:N/A

Values have the following meanings:

none

The ligature processing is not performed.

latin

Processes the ligature in Western languages. It is processed when the scripts are the following.

  • Latn
  • Grek
  • Cyrl

kana

Processes the ligature of Kana + semivoiced sound symbol in JIS X 0213:2004 as follows:

  • U+304B + U+309A
  • U+304D + U+309A
  • U+304F + U+309A
  • U+3051 + U+309A
  • U+3053 + U+309A
  • U+30AB + U+309A
  • U+30AD + U+309A
  • U+30AF + U+309A
  • U+30B1 + U+309A
  • U+30B3 + U+309A
  • U+30BB + U+309A
  • U+30C4 + U+309A
  • U+30C8 + U+309A
  • U+31F7 + U+309A

Although the ligature of Western languages and the ligature of symbols are included in JIS X 0213:2004, these are processed by axf:ligature-mode="latin".

jamo no-LT

Processes the ligature of Hangul Jamo U+1100 to U+11FF.

all

latin kana jamo is considered to be specified.

auto

The ligature of kana is performed. latin-ligature in the Option Setting File will decide whether to perform the ligature of Western words. This setting can also be done with the Format Option Setting dialog in GUI. Whether to process the ligature of Hangul Jamo depends on jamo-ligature in the Option Setting File.

The ligature processed here is the ligature defined in the font itself. The ligature defined in Unicode are not processed. (It is called Canonical Composition.) In order to normalize ligatures defined in Unicode Standard, specify axf:normalize="nfc". Note that axf:normalize will not be effective with AH Formatter V7.1 Lite.

axf:font-feature-settings / CSS (-ah-)font-feature-settings no-LT

Controls the feature of OpenType fonts. [CSS3-Fonts] Low-level font feature settings control: the font-feature-settings property

Value:normal | <feature-tag-value>#
Initial:normal
Applies to:all elements
Inherited:yes
Percentages:N/A

Values have the following meanings:

normal

Does nothing.

<feature-tag-value>

Specifies the tag of OpenType GSUB/GPOS with the following format:

<feature-tag-value> = <string> [ <integer> | on | off ]?

<string> is the tag name of OpenType and is case sensitive. This string must be a 4-character ASCII string from U+0020 to U+007E. U+0020 is supplemented when it is less than 4 characters.

<integer> is an integer greater than or equal to 0 that indicates the validity and invalidity of the selection index or features of the glyph. on is 1 and off is the same as 0. 0 means to invalidate this tag. If omitted, it is assumed to be 1. If exceeds the selectable number, the behavior depends on the font (usually assumed to be 0 or 1).

The following tags are always valid regardless of the setting.

  • 'ccmp'
  • 'locl'
  • 'rlig'
  • 'mark'
  • 'mkmk'

The setting of axf:font-feature-settings overrides font-variant and axf:ligature-mode.

When axf:font-feature-settings="kern" or "vkrn" is specified, the setting of axf:kerning-mode is ignored.

This property is not available with AH Formatter V7.1 Lite.

<axf:font-face> / CSS @font-face no-LT

In AH Formatter V7.1, it is possible to add fonts you want to use in the document. See also @font-face in the CSS specifications.

Common Usage:

Specifies an additional font. This element does not generate area. These functions are not available with AH Formatter V7.1 Lite.

Areas:

None.

Constraints:
<!ELEMENT axf:font-face EMPTY>
<!ATTLIST axf:font-face src         CDATA #REQUIRED>
<!ATTLIST axf:font-face font-family CDATA #REQUIRED>
<!ATTLIST axf:font-face font-style  (%font-style;)  "normal">
<!ATTLIST axf:font-face font-weight (%font-weight;) "normal">

The <axf:font-face> element can be placed directly under <fo:declarations>.

Contents:

EMPTY

Examples:
<fo:declarations>
  <axf:font-face src="url('https://www.hixie.ch/resources/fonts/AHEM____.TTF')"
                 font-family="AHEM"/>
</fo:declarations>

A font specified by <axf:font-face> / @font-face is always embedded. A font with embedding prohibition information cannot be specified.

The following properties can be specified to <axf:font-face> / @font-face.

src

Specifies the font resource.

Value:[ <uri-specification> [format(<font-type>)]? | <font-face-name> ]#
Initial:N/A
Inherited:no
Percentages:N/A

URI can be specified to <uri-specification> with the file name of the font, or the url() function. Also data scheme can be specified to url(). The type of fonts <font-type> can be specified by the format() function. When omitted, it will be recognized by the extension of the font resource or the media type (content-type) in the data scheme. Available types are as follows:

woff

WOFF File Format 1.0 font. content-type is “application/font-woff”.

woff2

WOFF File Format 2.0 font. content-type is “application/font-woff2”.

truetype

TrueType font. content-type is “application/x-font-ttf”.

opentype

OpenType font. content-type is “application/x-font-otf”.

<axf:font-face> can be used as follows:

<fo:declarations>
<axf:font-face
  src="url('woff/MyPrivate.woff') format(woff)"
  font-family="MyWOFF"
/>
</fo:declarations>
...
<fo:block font-family="MyWOFF">
...

When using the already installed font, specify the installed font name with the local() function.

<fo:declarations>
<axf:font-face
  src="local(Arial)"
  ...

font-family

Specifies the font family.

Value:<string>
Initial:N/A
Inherited:no
Percentages:N/A

font-style

Specifies the font style.

Value:normal | italic
Initial:normal
Inherited:no
Percentages:N/A

font-weight

Specifies the font weight.

Value:normal | bold | 1...1000
Initial:normal
Inherited:no
Percentages:N/A


URI and Link

axf:base-uri / CSS -ah-base-uri

Specifies the location which becomes the base of relative URI.

Value:<uri-specification>
Initial:empty string
Applies to:all formatting objects
Inherited:yes
Percentages:N/A

The axf:base-uri is applied to all relative URI in a document. When making links using <fo:basic-link> and specify relative URI, the location that is specified using axf:base-uri is interpreted to be base URI. If this property is omitted or this has empty string, the base location is interpreted as current XML file.

 xml:base

In the case of the following example, it links to: “https://www.antenna.co.jp/AHF/ahf_samples/CSS-Print.pdf”.

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
         xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
         axf:base-uri="https://www.antenna.co.jp/AHF/">
                  :
                  :
<fo:basic-link external-destination="ahf_samples/CSS-Print.pdf">
    ...
</fo:basic-link>

Generates a hyper-link.

Value:<uri-specification> | none
Initial:N/A
Applies to:all inline elements
Inherited:no
Percentages:N/A

 [XSL 1.1] 7.23.6 external-destination, 7.23.8 internal-destination, xlink:href


Page Number

AH Formatter V7.1 provides extension properties to control the page number.

axf:suppress-duplicate-page-number / CSS -ah-suppress-duplicate-page-number

Specifies to delete the duplicated page numbers.

Value:true | false
Initial:false
Applies to:all formatting objects
Inherited:yes
Percentages:N/A

When formatting an index, generally several <fo:page-number-citation> line up for one index item. In such case, when <fo:page-number-citation> refers to the same page number of the index, duplicate page numbers will be output using the standard property. If true is specified, when the same page number of the previous <fo:page-number-citation> is referred, that page number will be hidden along with the intervening elements (such as commas).

For example:

When axf:suppress-duplicate-page-number is not specified.

<fo:block text-align-last="justify">
 <fo:block>bcd
  <fo:leader leader-pattern="dots"/>
  <fo:basic-link internal-destination="ID1">
   <fo:page-number-citation ref-id="ID1"/>
  </fo:basic-link>
 </fo:block>
 <fo:block>index
  <fo:leader leader-pattern="dots"/>
  <fo:basic-link internal-destination="ID2">
   <fo:page-number-citation ref-id="ID2"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID3">
   <fo:page-number-citation ref-id="ID3"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID4">
   <fo:page-number-citation ref-id="ID4"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID5">
   <fo:page-number-citation ref-id="ID5"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID6">
   <fo:page-number-citation ref-id="ID6"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID7">
   <fo:page-number-citation ref-id="ID7"/>,
  </fo:basic-link>
 </fo:block>
</fo:block>

Format example of the above text is as follows:

Formatted result

When axf:suppress-duplicate-page-number is specified.

<fo:block text-align-last="justify" axf:suppress-duplicate-page-number="true">
 <fo:block>bcd
  <fo:leader leader-pattern="dots"/>
  <fo:basic-link internal-destination="ID1">
   <fo:page-number-citation ref-id="ID1"/>
  </fo:basic-link>
 </fo:block>
 <fo:block>index
  <fo:leader leader-pattern="dots"/>
  <fo:basic-link internal-destination="ID2">
   <fo:page-number-citation ref-id="ID2"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID3">
   <fo:page-number-citation ref-id="ID3"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID4">
   <fo:page-number-citation ref-id="ID4"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID5">
   <fo:page-number-citation ref-id="ID5"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID6">
   <fo:page-number-citation ref-id="ID6"/>,
  </fo:basic-link>
  <fo:basic-link internal-destination="ID7">
   <fo:page-number-citation ref-id="ID7"/>,
  </fo:basic-link>
 </fo:block>
</fo:block>

Format example of the above text is as follows.

Formatted result

axf:suppress-duplicate-page-number deletes the duplicated page numbers within the same line, but does not delete them when the line break occurs.

axf:page-number-prefix

Sets the prefix of page number.

Value:<string>
Initial:empty string
Applies to:fo:page-sequence
Inherited:no
Percentages:N/A

Specifies the prefix for page numbers. Specified string will be outputted before the page number by <fo:page-number> and <fo:page-number-citation>. Also this string will be used as the page label in the PDF.

<fo:page-sequence axf:page-number-prefix="A-" format="i" initial-page-number="10">
  <fo:static-content ...>
   ...<fo:page-number/>...
  </fo:static-content>
  ...
</fo:page-sequence>

Arabic and Hebrew cannot be specified for the value of axf:page-number-prefix.

axf:physical-page-number

Gets physical page number.

Value:true | false
Initial:false
Applies to:fo:page-number, fo:page-number-citation, fo:page-number-citation-last
Inherited:no
Percentages:N/A

The value of initial-page-number property is disregarded and the physical page number that is not affected by the page-sequence is obtained. In order to obtain the total number of pages, ID is given to the last page per the following example:

<fo:page-number-citation ref-id="lastpage" axf:physical-page-number="true"/>

In order to use this function with CSS, see counter(). However, this does not apply to AH Formatter V7.1 Lite.

See also fo:page-number-citation-last in XSL 1.1.

axf:reverse-page-number no-LT

Places page numbers in reverse order.

Value:true | false
Initial:false
Applies to:fo:page-number, fo:page-number-citation, fo:page-number-citation-last
Inherited:no
Percentages:N/A

Values have the following meanings:

true

Places page numbers in reverse order.

false

Places page numbers in order.

By specifying axf:reverse-page-number="true", the page number reference in <fo:page-sequence> is counted from the last page of <fo:page-sequence> in descending order. When pages with different formatting directions are mixed, together with axf:reverse-page="true", it is available to align the page numbers in one order when outputting PDF. In order to use this function with CSS, see counter().

This property is not available with AH Formatter V7.1 Lite.

axf:origin-id

Specifies the origin of the page number.

Value:<idref>
Initial:none
Applies to:fo:page-number, fo:page-number-citation, fo:page-number-citation-last
Inherited:no
Percentages:N/A

ID for the origin of the page number can be specified in <fo:page-number> or <fo:page-number-citation>. The output page number is as follows:

[ref-id page] - [origin-id page] + 1

If the specified Page is after the ref-id page, the value becomes 0. In <fo:page-number>, ref-id is considered the position of <fo:page-number> itself.

axf:assumed-page-number / CSS -ah-assumed-page-number

Specifies the assumed page number.

Value:<number>
Initial:N/A
Applies to:all formatting objects
Inherited:yes
Percentages:N/A

When <fo:page-number-citation> appears, the reference area is sometimes undecided. In evaluation of <fo:page-number-citation>, the temporary area is secured first, and when a page number is decided, it is adjusted to the right contents. Since the size of an area may change at this time, the formatted result is sometimes not desirable. For example, when an area becomes narrow, it seems that there is an unnecessary line break, and condition that a character will overflow if an area becomes large appears. axf:assumed-page-number gives the assumed page number at that time.

AH Formatter V7.1 expects the area of at least three-digit page number and formats temporarily. What is necessary will be just to specify axf:assumed-page-number="99" etc., when the page number is clearly less than that.

axf:number-type

Specifies whether to output the page number or to output the column number.

Value:page | column | page-and-column
Initial:page
Applies to:fo:page-number, fo:page-number-citation, fo:page-number-citation-last
Inherited:no
Percentages:N/A

Values have the following meanings:

page

Outputs the page number.

column

Outputs the column number.

page-and-column

Outputs both of the page number and the column number.

It can be specified to <fo:page-number>, etc. and the column number can be outputted instead of the page number. While format property is applied to the format of the page number, axf:column-number-format property is applied to the format of the column number. The column number is not outputted if multiple column is not specified by specifying of column-count="1" or span="all".

axf:column-number-format

Specifies the format of column number.

Value:<string>
Initial:"A"
Applies to:fo:page-sequence
Inherited:no
Percentages:N/A

It applies to the format of column number specified by axf:number-type property. It can be specified with the same way as format property.

axf:suppress-folio-prefix

Invalidates the prefix of page numbers.

Value:true | false
Initial:false
Applies to:fo:page-number, fo:page-number-citation, fo:page-number-citation-last
Inherited:no
Percentages:N/A

Specifies whether to invalidate the prefix set by <fo:folio-prefix>.

Values have the following meanings:

true

Invalidates the prefix.

false

Validates the prefix.

axf:suppress-folio-suffix

Invalidates the suffix of page numbers.

Value:true | false
Initial:false
Applies to:fo:page-number, fo:page-number-citation, fo:page-number-citation-last
Inherited:no
Percentages:N/A

Specifies whether to invalidate the suffix set by <fo:folio-suffix>.

Values have the following meanings:

true

Invalidates the suffix.

false

Validates the suffix.

merge-sequential-page-numbers / CSS -ah-merge-sequential-page-numbers no-LT

Specifies the page number reference to be merged. In XSL-FO, the following bolded values are extended.

Value:merge | merge-f | merge-ff | leave-separate
Initial: merge (XSL) / leave-separate (CSS)
Applies to: fo:index-page-citation-list (XSL) / block level elements (CSS)
Inherited:yes
Percentages:N/A

Values have the following meanings:

merge

Merges page numbers when the consecutive page numbers are greater than or equal to 3. At this time, it is considered axf:suppress-duplicate-page-number="true". The separator can be changed by <fo:index-page-citation-range-separator> or -ah-index-page-citation-range-separator.

merge-f

Merges 2 consecutive page numbers and appends the suffix specified by <axf:index-page-citation-range-f-suffix> or -ah-index-page-citation-range-f-suffix. Applies merge to greater than or equal to 3 consecutive page numbers.

merge-ff

In addition to merge-f, merges 3 consecutive page numbers and appends the suffix specified by <axf:index-page-citation-range-ff-suffix> or -ah-index-page-citation-range-ff-suffix. Applies merge to greater than or equal to 4 consecutive page numbers.

leave-separate

Does nothing.

Suppose the following CSS is specified.

p.index-page-citation-list {
  -ah-merge-sequential-page-numbers: merge;
}
span.index-item {
  content: target-counter(attr(href), page);
}

Then, suppose the following HTML exists.

<p class="index-page-citation-list">
  <span class="index-item" href="#id1"/>,
  <span class="index-item" href="#id2"/>,
  <span class="index-item" href="#id3"/>,
  <span class="index-item" href="#id4"/>,
  <span class="index-item" href="#id5"/>,
  <span class="index-item" href="#id6"/>,
  <span class="index-item" href="#id7"/>,
  <span class="index-item" href="#id8"/>,
  <span class="index-item" href="#id9"/>
</p>

Suppose page numbers line up as follows:

1, 3, 4, 4, 5, 6, 8, 8, 9

The result will be as follows:

1, 3–6, 8, 9

If merge-f is specified, the result will be as follows:

1, 3–6, 8f.

This property is not available with AH Formatter V7.1 Lite.

CSS -ah-index-page-citation-range-separator no-LT

Specifies the separator string when merging consecutive page numbers.

-ah-index-page-citation-range-separator corresponds to <fo:index-page-citation-range-separator> in XSL, but simple strings can only be specified in CSS.

Values that can be specified in CSS are as follows:

Value:<string>
Initial:"&#x2013;"
Applies to:block level elements
Inherited:yes
Percentages:N/A

The separator string is used when -ah-merge-sequential-page-numbers:merge is specified.

This property is not available with AH Formatter V7.1 Lite.

<axf:index-page-citation-range-f-suffix> / CSS -ah-index-page-citation-range-f-suffix no-LT

Specifies the suffix when merging 2 consecutive page numbers.

In XSL, it is used in the same way as <fo:index-page-citation-range-separator>. The content is (#PCDATA|%inline;)*. If omitted, it is considered "f.".

Values that can be specified in CSS are as follows:

Value:<string>
Initial:"f."
Applies to:block level elements
Inherited:yes
Percentages:N/A

This suffix is used when axf:merge-sequential-page-numbers="merge-f" is specified.

This property is not available with AH Formatter V7.1 Lite.

<axf:index-page-citation-range-ff-suffix> / CSS -ah-index-page-citation-range-ff-suffix no-LT

Specifies the suffix when merging 3 consecutive page numbers.

In XSL, it is used in the same way as <fo:index-page-citation-range-separator>. The content is (#PCDATA|%inline;)*. If omitted, it is considered "ff.".

Values that can be specified in CSS are as follows:

Value:<string>
Initial:"ff."
Applies to:block level elements
Inherited:yes
Percentages:N/A

This suffix is used when axf:merge-sequential-page-numbers="merge-ff" is specified.

This property is not available with AH Formatter V7.1 Lite.


Line Numbering

Place line numbers as part of the text. Line numbers can be placed against the line area. Even though the place looks empty, if there is a line area, line numbers can be placed. These are not placed in the space or in the margin. The axf:line-number is not effective inside <fo:float> or <fo:footnote>.

This function is not available with AH Formatter V7.1 Lite.

axf:line-number / CSS -ah-line-number no-LT

Specifies whether to show line numbers.

Value:none | show | hide
Initial:none
Applies to:all block-level formatting objects that are descendants of fo:flow, fo:table-column
Inherited:yes (except for fo:table-column)
Percentages:N/A

Values have the following meanings:

none

Line numbers are not generated.

show

Line numbers are shown.

hide

Line numbers are not shown but the numbers of the line are counted.

Line numbers are counted against the lines inside the block where axf:line-number="show" or axf:line-number="hide" is specified.

If axf:line-number is specified to <fo:table-column>, independent line numbers are given to the column of the table. At this time, the same setting available for <fo:page-sequence> can be specified. The ID reference can be specified to <fo:table-column> as axf:line-number-initial="#xxx". The ID must be the same as the one specified to the existing <fo:table-column>. The value specified to that column is adopted as the default value of the line number information. A reference to a following column is invalid.
The following shows the example:

...
<fo:page-sequence ... axf:line-number="show"/>
...
<fo:table>
 <fo:table-column/>
 <fo:table-column axf:line-number="show" id="c2"/>
 <fo:table-body>
  ...
 </fo:table-body>
</fo:table>

In this table, line numbers specified to <fo:page-sequence> are given to the left column and line numbers specified to <fo:table-column id="c2"> are given to the right column independently. In the following table, if you specify as follows:

<fo:table>
 <fo:table-column/>
 <fo:table-column axf:line-number="show" axf:line-number-initial="#c2"/>
 <fo:table-body>
  ...
 </fo:table-body>
</fo:table>

then, line numbers of the right column will continue in sequence from the previous table.

This property is not available with AH Formatter V7.1 Lite.

axf:line-number-background-color / CSS -ah-line-number-background-color no-LT

Specifies the background color of line numbers.

Value:<color>
Initial:transparent
Applies to:all block-level formatting objects that are descendants of fo:flow, fo:table-column
Inherited:yes
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:line-number-color / CSS -ah-line-number-color no-LT

Specifies the color of line numbers.

Value:<color>
Initial:the value of the ‘color’ property
Applies to:all block-level formatting objects that are descendants of fo:flow, fo:table-column
Inherited:yes
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:line-number-display-align / CSS -ah-line-number-display-align no-LT

Specifies the alignment, in the block-progression-direction, of line numbers in the line area.

Value:auto | before | center | after
Initial:auto
Applies to:all block-level formatting objects that are descendants of fo:flow, fo:table-column
Inherited:yes
Percentages:N/A

Values have the following meanings:

before

Align the line numbers in the upper end of the line area.

center

Align the line numbers in the middle of the line area.

after

Align the line numbers in the lower end of the line area.

auto

It is considered after in horizontal writing, and center in vertical writing.

This property is not available with AH Formatter V7.1 Lite.

axf:line-number-font-family / CSS -ah-line-number-font-family no-LT

Specifies the font family of line numbers.

Value:[ <family-name> | <generic-family> ]#
Initial:depends on UA
Applies to:all block-level formatting objects that are descendants of fo:flow, fo:table-column
Inherited:yes
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:line-number-font-size / CSS -ah-line-number-font-size no-LT

Specifies the font size of line numbers.

Value:<absolute-size> | <relative-size> | <length> | <percentage>
Initial:medium
Applies to:all block-level formatting objects that are descendants of fo:flow, fo:table-column
Inherited:yes
Percentages:refer to the font size

This property is not available with AH Formatter V7.1 Lite.

axf:line-number-font-style / CSS -ah-line-number-font-style no-LT

Specifies whether to make the font style italic.

Value:normal | italic
Initial:normal
Applies to:all block-level formatting objects that are descendants of fo:flow, fo:table-column
Inherited:yes
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:line-number-font-weight / CSS -ah-line-number-font-weight no-LT

Specifies the font weight of line numbers.

Value:normal | bold | bolder | lighter | 1...1000
Initial:normal
Applies to:all block-level formatting objects that are descendants of fo:flow, fo:table-column
Inherited:yes
Percentages:N/A

This property is not available with AH Formatter V7.1 Lite.

axf:line-number-format / CSS -ah-line-number-format no-LT