Proposed Extensions to XSL

Apr 24, 2003
Rev May 14, 2004
Rev Dec 14, 2004
Rev Dec 13, 2005

The namespace of the Extensions to XSL has a URI 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">

CAUTION: [-] sign means not implemented yet. Other extensions are already implemented on XSL Formatter V4.0.


Extended Elements

1. Document Information

axf:outline-group-position [-]

Common Usage:

Controls the order of the BookMark output. This element does not generate areas.

Areas:

None.

Constraints:

The axf:outline-group-position element is a child of fo:root. If it becomes before fo:page-sequence appears, it is possible to put it on an arbitrary position under a child of fo:root. The group name is specified by "outline-group". An empty string indicates the bookmark which is not grouped. "outline-title" specifies the strings of the actual display. If the content is specified to "outline-title", it is adapted. If neither of them are specified, the group name is displayed. "outline-expand" specifies whether to display the lower hierarchy of bookmark in default. True specifies to display the lower hierarchy in the expanded state. False specifies to display in the collapsed state.
The bookmark is generated in the appearing order of the elements. When an unspecified group name appears, it is outputted after these elements.

<!ELEMENT axf:outline-group-position #PCDATA>
<!ATTLIST axf:outline-group-position
  outline-expand (true|false) "true"
  outline-title  CDATA        ""
  outline-group  CDATA        #REQUIRED
>
Contents:

#PCDATA

axf:output-volume-info

Common Usage:

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

Areas:

None.

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

The axf:output-volume-info is placed as a child of fo:root. If it comes before fo:page-sequence appears, it is possible to put it in an arbitrary position under a child of fo:root.

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. 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.24.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.

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

2. Extension for European Rule

<axf:space-after-punctuation>

Specifies the amount of space after the punctuation.

<axf:space-before-punctuation>

Specifies the amount of space before 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 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 0 or less.

Value: <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.

3. Ruby

The Ruby is based on CSS3 Ruby Module.

axf:ruby [-]

axf:ruby-base [-]

axf:ruby-text [-]

axf:ruby-base-container [-]

axf:ruby-text-container [-]

CAUTION: Not documented yet.


Extended Properties

1. Bookmark

This is additional information, and it has the meaning in an electronic environment. It is not output to printed matter usually.

Sample Bookmark

axf:outline-color

The axf:outline-color specifies the color which appears as a title of bookmarks.

Value: <color>
Initial: the value of the 'color' property
Applies to: block-level formatting objects
Inherited: no
Percentages: N/A

axf:outline-expand

The axf: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.

axf:outline-font-style

The axf:outline-font-style 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.

axf:outline-font-weight

The axf:outline-font-weight 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.

axf:outline-group

The axf: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

The axf: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 zero 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.

axf:outline-title

The axf: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>

2. Link

This aims at the application to PDF. PDF links can be created easily by using fo:basic-link .

PDF links are classified either as an internal link to a specified position in the PDF document, or as a 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.

  • Internal Link
    <fo:block>
    Answer may be found in <fo:basic-link internal-destination="appendix-a">Appendix-A</fo:basic-link>.
    </fo:block>
    ...
    <fo:block id="appendix-a">
    Appendix-A
    </fo:block>
  • External Link
    <fo:block>
    Here is <fo:basic-link external-destination="http://www.w3.org/">W3C Home Page</fo:basic-link>.
    </fo:block>

The external link specified by the relative address is transformed into either 'Open the file' or 'World Wide Web link'. The external link specified by the absolute address is always transformed into 'World Wide Web link'.

Furthermore, it's possible to specify professional links as follows. For further understanding see also "PDF Reference Manual" by Adobe Systems Incorporated.

  • 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 for the external link in PDF as well as the internal link.
  • Possible to specify the page number for the expternal 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 external link in the bookmark.
  • Possible to specify the internal link in the bookmark.

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. 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. 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.

axf:action-type

Specifies the action of external link.

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

Values have the following meanings.

gotor

Opens the link destination by the "GoToR" action as PDF. The URI of the destination is regarded as 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).

auto

Dependent on the system setting.

When the link destination is not a local file, such as http:, the action type is "URI" at any time.

axf:destination-type

Specifies the type of destination for the external link. These are the types of destination for PDF as the external link.

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.

Destination Type of PDF How to specify axf:destination-type
[page /XYZ left top zoom] The value of left/top is calculated automatically. 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 t 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] The value of top is calculated automatically. Effective only to specify in the internal link.
axf:destination-type="fith"
[page /FitV left] The value of left is calculated automatically.
axf:destination-type="fitv"
[page /FitR left bottom right top] The value of left/bottom/right/top is calculated automatically. Effective only to specify in the internal link.
axf:destination-type="fitr"
[page /FitB]
axf:destination-type="fitb"
[page /FitBH top] The value of top is calculated automatically. Effective only to specify in the internal link.
axf:destination-type="fitbh"
[page /FitBV left] The value of left is calculated automatically.
axf:destination-type="fitbv"

axf:outline-external-destination

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.

axf:outline-internal-destination

Sets the internal link in the PDF bookmark.

Value: empty string | <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 simpe numeric characters or the following string that combines numeric characters and fragment with #.

123#string

3. Multi Separate Volume

This aims at the application to PDF.

axf:bookmark-include

Specifies how to include bookmarks in multi separate volume.

Value: first | all | separate
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.

axf:initial-volume-number

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 file name to output.

axf:output-volume-break

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 regarded as always being specified to the first fo:page-sequence. If axf:output-volume-break="false" is specified explicitly, it is ignored.

axf:output-volume-filename

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.

4. Annotation

Annotations can be added to PDF. See also "PDF Reference Manual" for more details. Annotations which can be specified here are a part of those defined in PDF reference manual.

axf:annotation-type

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.

Charcter strings are case insensitive.

axf:annotation-title

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

axf:annotation-contents

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 strings to be displayed when any of the following types of the annotations (axf:annotation-type) is specified.

  • "Text"
  • "FreeText"
  • "Stamp"
  • "FileAttachment"

axf:annotation-color

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

axf:annotation-flags

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 enumlating using the white space. They are case insensitive.

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

See also "PDF Reference Manual" to learn more.

axf:annotation-open

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.

axf:annotation-icon-name

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) snows the standard name which can be specified.

  • "Text"

    Standard names are as follows:

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

    Empty string is regarded as "None".

  • "Stamp"

    Standard names are as follows:

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

    Empty string is regarded as "Draft".

  • "FileAttachment"

    Standard names are as follows:

    • "Graph"
    • "Paperclip"
    • "PushPin"
    • "Tag"

    Empty string is regarded as "PushPin".

axf:annotation-position-horizontal

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.

axf:annotation-position-vertical

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.

axf:annotation-width

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.

axf:annotation-height

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.

axf:annotation-font-family

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

axf:annotation-font-size

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

axf:annotation-font-weight

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

axf:annotation-font-style

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

axf:annotation-text-color

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

axf:annotation-text-align

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

axf:annotation-file-attachment

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

5. Printer Marks

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.

Printer Marks

axf:crop-offset
axf:crop-offset-top
axf:crop-offset-bottom
axf:crop-offset-left
axf:crop-offset-right

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
Inherited: no
Percentages: N/A

The trim size is specified by the page-width and page-height properties. 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 an individual value, 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, axf:crop-offset takes priority.

axf:bleed
axf:bleed-top
axf:bleed-bottom
axf:bleed-left
axf:bleed-right

Specifies the width of the bleed region for cutting off.

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

The region 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 an individual value, axf:bleed-top, axf:bleed-bottom, axf:bleed-left, and axf:bleed-right can be used. When axf:bleed and others are specified simultaneously, axf:bleed takes priority.

axf:printer-marks

Specifies the Printing marks, such as a crop mark. Specifies the action of external link.

Value: [ crop || cross || <uri-specification> [<uri-specification>]* ] | none
Initial: none
Applies to: fo:simple-page-master
Inherited: no
Percentages: N/A

Values have the following meanings.

crop

Outputs crop marks.

cross

Outputs cross marks, 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.

Crop marks becomes what unites the inner printer marks (crop marks) and the outside printer marks (bleed marks) when there is specification of axf:bleed. Also the printer marks are always output with the registration color. Please use SVG etc. when you want to use other colors.

axf:printer-marks-line-length

Specifies the line length of printer marks.

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

When the value is auto, the length depends on the system setting.

axf:printer-marks-line-width

Specifies the line width of printer marks.

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

When the value is auto, the width depends on the system setting.

6. Footnote

Footnotes can be arranged per each column or footnotes duplicated in the same page can be deleted. Also, sidenotes can be generated.

axf:footnote-align

Specifies the alignment of the footnotes.

Value: auto | before | after
Initial: auto
Applies to: fo:region-body, fo:footnote
Inherited: no
Percentages: N/A

Values have the following meanings.

auto

Footnotes are placed automatically. Footnotes are the usual arrangement. When the text is one column, sidenotes are arranged with an anchor position, and in the case of two or more columns, sidenotes are arranged near by the before side.

before

Sidenotes are arranged near by the before side. In the case of usual footnotes which are not sidenotes, footnotes are arranged immediately after the text in a page.

after

Sidenotes are arranged near by the after side. In the case of usual footnotes which are not sidenotes, footnotes are arranged at the last of a page.

Specifies the method of arrangement of footnotes or sidenotes. When it is sidenotes (footnote arrangement into region-start or region-end is specified by axf:footnote-position), it's possible to specify whether it is arranged automatically, or it is arranged near by the before side, or it is arranged near by the after side.

axf:footnote-stacking

The axf:footnote-stacking specifies the method to layout the footnote.

Value: block | inline
Initial: block
Applies to: fo:region-body, fo:footnote
Inherited: no
Percentages: N/A

Values have the following meanings.

block

Arranges the footnotes in the block progression direction.

inline

Arranges the footnotes in the inline progression direction.

axf:footnote-position

The axf:footnote-position specifies the location to layout the footnote.

Value: page | odd-page | start | end | inside | outside | column | inside-column | outside-column | page-sequence | document
Initial: page
Applies to: fo:region-body, fo:footnote
Inherited: no
Percentages: N/A

Values have the following meanings.

page

Footnotes are placed at the bottom of each page in region-body. This is the standard layout of XSL 1.0 specification.

odd-page [-]

Footnotes are placed at the bottom of each odd-page in region-body.

start

Footnotes are placed at each page in region-start.

end

Footnotes are placed at each page in region-end.

inside

Footnotes are placed at each even-page in region-end and each odd-page in region-start.

outside

Footnotes are placed at each even-page in region-start and each odd-page in region-end.

column

Footnotes are placed at the bottom of each column.

inside-column [-]

Footnotes are placed at the bottom of the last column of even-page or the first column of odd-page.

outside-column [-]

Footnotes are placed at the bottom of the first column of even-page or the last column of odd-page.

page-sequence [-]

Footnotes are placed at the end of page-sequence.

document [-]

Footnotes are placed at the end of the document.

It is possible to arrange footnotes inside the region-start or the region-end (these notes are called sidenotes). Besides specifying them to fo:region-body, it is also effective to specify to individual fo:footnote. It is possible to make several types of notes intermingled by this extension.

There are following restrictions for sidenotes.

  • The sidenotes which run over from the specified area will overflow.
  • The xsl-footnote-separator is not effective.

axf:suppress-duplicate-footnote

Specifies wether to delete footnotes duplicated in the same page.

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

Deters the display of duplicaited footnotes on the same footnote region when the same footnote is assigned to two or more places in the same page.

7. 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.

axf:line-number

The axf:line-number specifies whether to show line numbers.

Value: none | show | hide
Initial: none
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
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.

axf:line-number-background-color

The axf:line-number-background-color specifies the background color of line numbers.

Value: <color> | transparent
Initial: transparent
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: N/A

axf:line-number-display-align

The axf:line-number-display-align specifies the alignment of line numbers in the line area.

Value: before | center | after | auto | inherit
Initial: auto
Applies to: all block-level formatting objects which are descendants of fo:flow
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.

axf:line-number-color

The axf:line-number-color specifies the color of line numbers.

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: N/A

axf:line-number-font-family

The axf:line-number-font-family specifies the font family of line numbers.

Value: [[<family-name> | <generic-family>],]* [<family-name> | <generic-family>] | inherit
Initial: depends on UA
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: N/A

axf:line-number-font-size

The axf:line-number-font-size specifies the font size of line numbers.

Value: <absolute-size> | <relative-size> | <length> | <percentage> | inherit
Initial: medium
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: refer to the font size

axf:line-number-font-style

The axf:line-number-font-style specifies whether to make the font style italic.

Value: normal | italic | inherit
Initial: normal
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: N/A

axf:line-number-font-weight

The axf:line-number-font-weight specifies the font weight of line numbers.

Value: normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
Initial: normal
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: N/A

axf:line-number-format

The axf:line-number-format specifies the format of line numbers.

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

Line numbers are shown as the specified format. The way to specify is the same as that for the format property.

axf:line-number-initial

The axf:line-number-initial specifies the line number of the first line.

Value: <number> | auto
Initial: auto
Applies to: fo:page-sequence
Inherited: no
Percentages: N/A

Values have the following meanings.

auto

Line numbers are not initialized, and it is succeeded from previous fo:page-sequence. When previous fo:page-sequence does not exist, it becomes 1.

<number>

Initializes the line numbers.

axf:line-number-interval

The axf:line-number-interval specifies the interval of line numbers.

Value: <number> | auto
Initial: auto
Applies to: fo:page-sequence
Inherited: no
Percentages: N/A

Values have the following meanings.

auto

The specification of previous fo:page-sequence is succeeded. When previous fo:page-sequence does not exist, it becomes 1.

<number>

Sets the interval of the line numbers to the value specified.

Specifies to show the line numbers like 5, 10, 15. In this case, axf:line-number-initial="1" axf:line-number-start="5" axf:line-number-interval="5" can be applied.

axf:line-number-offset

The axf:line-number-offset specifies the offset of line numbers.

Value: <length> | inherit
Initial: 0pt
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: N/A

axf:line-number-position

The axf:line-number-position specifies the position of line numbers.

Value: start | end | inside | outside | alternate | inherit
Initial: start
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: N/A

Values have the following meanings.

start

Places line number at start-edge.

end

Places line number at end-edge.

inside

Places line number at start-edge on odd pages, at end-edge on even pages.

outside

Places line number at end-edge on odd pages, at start-edge on even pages.

alternate

Places line number at end-edge in the last column of multi-column layout, except for the last column, places it at start-edge.

axf:line-number-reset

The axf:line-number-reset reset line numbering.

Value: auto | none | page | column
Initial: auto
Applies to: fo:page-sequence
Inherited: no
Percentages: N/A

Values have the following meanings.

auto

The specification of previous fo:page-sequence is succeeded. When previous fo:page-sequence does not exist, it becomes none.

none

Line numbers are not reset.

page

Line numbers are reset when pages break.

column

Line numbers are reset when column break.

Line numbers are reset to the value specified to axf:line-number-initial.

axf:line-number-start

The axf:line-number-start specifies the starting line number.

Value: <number> | auto
Initial: auto
Applies to: fo:page-sequence
Inherited: no
Percentages: N/A

Values have the following meanings.

auto

The specification of previous fo:page-sequence is succeeded. When previous fo:page-sequence does not exist, it becomes 1.

<number>

Sets the line number that begins outputting to the value specified.

Line numbers are shown when the value is equal to or more than the value specified here. When axf:line-number-initial="1" axf:line-number-start="5" are specified, the first 4 lines are not shown but the 5th line starts being outputted. When axf:line-number-initial="5" axf:line-number-start="6" are specified, the first line is not shown but the next line is outputted as 6.

axf:line-number-text-decoration

The axf:line-number-text-decoration specifies the test decoration of line numbers.

Value: same as text-decoration
Initial: none
Applies to: all block-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: N/A

Values have the same meaning as text-decoration.

8. Block Column

Columns can be set inside of a block. Each extended property can be specified to fo:block-container.

axf:column-count

The axf:column-count specifies the number of columns of fo:block-container.

Value: <number> | inherit
Initial: 1
Applies to: fo:block-container
Inherited: no
Percentages: N/A

axf:column-gap

The axf:column-count specifies the width of the separation between adjacent columns of fo:block-container.

Value: <length> | <percentage> | inherit
Initial: 12.0pt
Applies to: fo:block-container
Inherited: refer to width of the fo:block-container
Percentages: N/A

9. Column Rule

This property is based on CSS3 Multi-column layout. The column rule is shown upper than the border, lower than the revision bar.

Column Model

axf:column-rule-align

The axf:column-rule-align specifies the alignment of the column rule.

Value: before | center | after | inherit
Initial: center
Applies to: fo:region-body, fo:block-container
Inherited: no
Percentages: N/A

These are not present in CSS3 Multi-column layout.

axf:column-rule-color

The axf:column-rule-color specifies the color of the column rule.

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: fo:region-body, fo:block-container
Inherited: no
Percentages: N/A

See CSS3 Multi-column layout.

axf:column-rule-length

The axf:column-rule-length specifies the length of the column rule.

Value: <length> | <percentage>| inherit
Initial: 100%
Applies to: fo:region-body, fo:block-container
Inherited: no
Percentages: refer to the size of the column

These are not in CSS3 Multi-column layout.

axf:column-rule-style

The axf:column-rule-style specifies the style of the column rule.

Value: <border-style> | inherit
Initial: none
Applies to: fo:region-body, fo:block-container
Inherited: no
Percentages: N/A

See CSS3 Multi-column layout.

axf:column-rule-width

The axf:column-rule-width specifies the width of the column rule.

Value: <border-width> | inherit
Initial: medium
Applies to: fo:region-body, fo:block-container
Inherited: no
Percentages: N/A

See CSS3 Multi-column layout.

10. Diagonal Border

These properties draw the diagonal border in the area such as the table cell where the border can be specified. The diagonal border by axf:diagonal-border-* is drawn from the edge of before-start to the edge of after-end. The diagonal border by axf:reverse-diagonal-border-* is drawn from the edge of before-end to the edge of after-start. When the writing-mode="lr-tb" is specified, the diagonal border is drawn as follows. When the writing-mode="rl-tb" or "tb-rl" is specified, it is drawn in a reverse way.

Diagonal Border

axf:diagonal-border-color

The axf:diagonal-border-color specifies the color of the diagonal border.

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: all FOs which can have borders
Inherited: yes
Percentages: N/A

axf:diagonal-border-style

The axf:diagonal-border-style specifies the style of the diagonal border.

Value: <border-style> | inherit
Initial: none
Applies to: all FOs which can have borders
Inherited: no
Percentages: N/A

axf:diagonal-border-width

The axf:diagonal-border-width specifies the width of the diagonal border.

Value: <border-width> | inherit
Initial: medium
Applies to: all FOs which can have borders
Inherited: yes
Percentages: N/A

axf:reverse-diagonal-border-color

The axf:reverse-diagonal-border-color specifies the color of the reverse diagonal border.

Value: <color> | inherit
Initial: the value of the 'color' property
Applies to: all FOs which can have borders
Inherited: yes
Percentages: N/A

axf:reverse-diagonal-border-style

The axf:reverse-diagonal-border-style specifies the style of the reverse diagonal border.

Value: <border-style> | inherit
Initial: none
Applies to: all FOs which can have borders
Inherited: no
Percentages: N/A

axf:reverse-diagonal-border-width

The axf:reverse-diagonal-border-width specifies the width of the reverse diagonal border.

Value: <border-width> | inherit
Initial: medium
Applies to: all FOs which can have borders
Inherited: yes
Percentages: N/A

11. Border

axf:border-radius
axf:border-top-left-radius
axf:border-top-right-radius
axf:border-bottom-left-radius
axf:border-bottom-right-radius

The radii of quater ellipse (rounding border) are specified. This property is based on CSS3 Border : 3.3 The 'border-radius' properties.

Border Radius

Value: <length> <length>?
Initial: 0
Applies to: all FOs which can have borders
Inherited: no
Percentages: N/A

The first value is the horizontal radius (or vertical if the 'writing-mode' is vertical). If the second length is omitted it is equal to the first. If either length is less or equal zero, the corner is square, not rounded.

See CSS3 Border.

axf:box-shadow

The box shadow is specified. This property is based on CSS3 Border : 3.6 The 'box-shadow' property.

Value: none | [ <length> <length> <length>? || <color> ]
Initial: none
Applies to: all FOs which can have borders
Inherited: no
Percentages: N/A

The meanings of the three <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> must be a non-negative value and specifies the quantity of gradation. If the value is 0, there is no gradation.
  • Gradation of color can be specified by <color>.

See CSS3 Border.

12. Page Background

axf:background-color

The axf:background-color specifies the background color of fo:simple-page-master.

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

axf:background-image

The axf:background-image specifies the background image of fo:simple-page-master.

Value: <uri-specification> | none
Initial: none
Applies to: fo:simple-page-master
Inherited: no
Percentages: N/A

13. Page Number

axf:suppress-duplicate-page-number

The axf: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 a 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, page numbers are output repeatedly using the standard property.

axf: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.

axf:origin-id

Specifies the origin of the page number.

Value: <idref>
Initial: none
Applies to: fo:page-number-citation
Inherited: no
Percentages: N/A

ID for the origin of the page number can be specified in 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.

axf:physical-page-number

The axf:physical-page-number gets physical page number.

Value: true | false | inherit
Initial: false
Applies to: fo:page-number, fo:page-number-citation
Inherited: no
Percentages: N/A

The value of initial-page-number property is disregarded and the physical page number that is not affected by page-sequence is obtained. In order to obtain the total number of pages, ID is given to the last page, and it is performed as follows.

<fo:page-number-citation ref-id="lastpage" axf:physical-page-number="true"/>

axf:number-type

The 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
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

The 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.

14. Text Processing

axf:append-non-starter-characters

Specifies the append-non-starter-characters in CJK.

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

When axf:line-break="strict" is specified, 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, closing parenthesis and punctuations, that are originally non-starter, are disregarded even though they are specified.

axf:append-non-end-of-line-characters

Specifies the append-non-end-of-characters in CJK.

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

When axf:line-break="strict" is specified, 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, opening parenthesis and punctuations, that are originally non-end-of-line, are disregarded even though they are specified.

axf:avoid-widow-words

The axf:avoid-widow-words specifies so that the last line of the paragraph does not become only one word (one character for CJK).

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

Values have the following meanings.

true

Copes with it, if it is possible, by running on the line (by trimming the interval between Japanese characters or Western words), so that the last line of the paragraph does not become only one word (one character for CJK).

false

The coping to run on the line is not taken.

If the width of columns (length of the line) is short, it is not so effective because it does not have enough space to run on.

axf:except-non-starter-characters

Specifies the except-non-starter-characters in CJK.

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

When axf:line-break="strict" is specified, the characters included in <string> can be eliminated from the non-starter-characters. If the specified chararters are also specified to axf:append-non-starter-characters in the same tag as well, the effect is not guaranteed. White space, closing parenthesis and punctuations, that are originally non-starter, are disregarded even though they are specified.

axf:except-non-end-of-line-characters

Specifies the except-non-end-of-characters in CJK.

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

When axf:line-break="strict" is specified, the characters included in <string> can be eliminated from the non-end-of-line-characters. If the specified chararters are also specified to axf:append-non-end-of-line-characters in the same tag as well, the effect is not guaranteed. White space, opening parenthesis and punctuations, that are originally non-end-of-line, are disregarded even though they are specified.

axf:font-emphasize-position [-]

Specifies the position of font emphasizing. This property is based on CSS3 Font emphasis.

Value: before | after
Initial: before
Applies to: fo:character, fo:inline
Inherited: yes
Percentages: N/A

axf:font-emphasize-style [-]

Specifies the style of font emphasis. This property is based on CSS3 Font emphasis.

Value: none | accent | dot | circle | disc
Initial: none
Applies to: fo:character, fo:inline
Inherited: yes
Percentages: N/A

axf:hanging-punctuation

The axf:hanging-punctuation specifies whether to hang Japanese punctuation characters or not. This property is based on CSS3 Text Module: 11.2. Hanging punctuation.

Value: none | end | inherit
Initial: none
Applies to: fo:block
Inherited: yes
Percentages: N/A

Values have the following meanings.

none

Punctuation characters are not subject to hang.

end

Punctuation characters at end of line can hang.

Punctuation characters to be hanged are four Japanese punctuations (U+3001, U+3002, U+FF0C, U+FF0E).

axf:kerning-mode

The axf:kerning-mode specifies whether to process the kerning for punctuation. This property is based on CSS3 Text Module: 8.5. Text kerning.

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

Values have the following meanings.

none

Adjacent full width punctuation characters are not trimmed.

pair [-]

The pair kerning is processed.

contextual

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 non punctuation characters.
  • Between full width open parenthesis and full width open parenthesis.
  • Between full width middle dots and full width open parenthesis.
  • Between non punctuation character and full width open parenthesis.

Full width punctuation characters are treated the same as full width close parenthesis. By specifying axf:kerning-mode="contextual" the space between full width close parenthesis and non punctuation characters is not condensed. The space can be condensed by setting the value of axf:punctuation-spacing less than the default.

auto

Dependent on the system setting.

Full width punctuation open parenthesis processed by axf:kerning-mode="contextual" are:

2018;QU # LEFT SINGLE QUOTATION MARK                        ‘
201C;QU # LEFT DOUBLE QUOTATION MARK                        “
3008;OP # LEFT ANGLE BRACKET                                〈
300A;OP # LEFT DOUBLE ANGLE BRACKET                         《
300C;OP # LEFT CORNER BRACKET                               「
300E;OP # LEFT WHITE CORNER BRACKET                         『
3010;OP # LEFT BLACK LENTICULAR BRACKET                     【
3014;OP # LEFT TORTOISE SHELL BRACKET                       〔
3016;OP # LEFT WHITE LENTICULAR BRACKET                     〖
3018;OP # LEFT WHITE TORTOISE SHELL BRACKET                 〘
301A;OP # LEFT WHITE SQUARE BRACKET                         〚
301D;OP # REVERSED DOUBLE PRIME QUOTATION MARK              〝
FF08;OP # FULLWIDTH LEFT PARENTHESIS                        (
FF3B;OP # FULLWIDTH LEFT SQUARE BRACKET                     [
FF5B;OP # FULLWIDTH LEFT CURLY BRACKET                      {
FF5F;OP # FULLWIDTH LEFT WHITE PARENTHESIS                  ⦅

Full width punctuation close parenthesis processed by axf:kerning-mode="contextual" are:

2019;QU # RIGHT SINGLE QUOTATION MARK                       ’
201D;QU # RIGHT DOUBLE QUOTATION MARK                       ”
3009;CL # RIGHT ANGLE BRACKET                               〉
300B;CL # RIGHT DOUBLE ANGLE BRACKET                        》
300D;CL # RIGHT CORNER BRACKET                              」
300F;CL # RIGHT WHITE CORNER BRACKET                        』
3011;CL # RIGHT BLACK LENTICULAR BRACKET                    】
3015;CL # RIGHT TORTOISE SHELL BRACKET                      〕
3017;CL # RIGHT WHITE LENTICULAR BRACKET                    〗
3019;CL # RIGHT WHITE TORTOISE SHELL BRACKET                〙
301B;CL # RIGHT WHITE SQUARE BRACKET                        〛
FF09;CL # FULLWIDTH RIGHT PARENTHESIS                       )
FF3D;CL # FULLWIDTH RIGHT SQUARE BRACKET                    ]
FF5D;CL # FULLWIDTH RIGHT CURLY BRACKET                     }
FF60;CL # FULLWIDTH RIGHT WHITE PARENTHESIS                 ⦆

Full width punctuations processed by axf:kerning-mode="contextual" are:

3001;CL # IDEOGRAPHIC COMMA                                 、
3002;CL # IDEOGRAPHIC FULL STOP                             。
FF0C;CL # FULLWIDTH COMMA                                   ,
FF0E;CL # FULLWIDTH FULL STOP                               .

Full width middle dots processed by axf:kerning-mode="contextual" are:

30FB;NS # KATAKANA MIDDLE DOT                               ・
FF1A;NS # FULLWIDTH COLON                                   :
FF1B;NS # FULLWIDTH SEMICOLON                               ;

axf:kerning-pair-threshold [-]

The font size of the pair kerning is specified. This property is based on CSS3 Text Module: 8.5. Text kerning.

Value: auto | <length> | inherit
Initial: auto
Applies to: all block-level and inline-level formatting objects which are descendants of fo:flow
Inherited: yes
Percentages: refer to the font size

When auto is specified, it is pair kerning (axf:kerning-mode="pair") regardless of the size. When "length" is specified, the pair kerning is done if it is larger than the size.

axf:line-break

The axf:line-break specifies the method of line breaking. This property is based on CSS3 Text Module: 6.2. Line breaking.

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

Values have the following meanings.

normal

Nonstarter characters in JIS X 4051 and other small Kana letters in Japanese (U+3095, U+3096, U+31F0 to U+31FF) are not treated as Nonstarter characters. Also, the properties of axf:append-non-starter-characters, axf:except-non-starter-characters, axf:append-non-end-of-line-characters, axf:except-non-end-of-line-characters are disregarded.

strict

Nonstarter character is treated for Japanese. Also, the characters specified to the properties of axf:append-non-starter-characters, axf:except-non-starter-characters, axf:append-non-end-of-line-characters, axf:except-non-end-of-line-characters are included.

The Nonstarter character in LineBreak-4.0.0.txt is as follows. [JIS] is classified into the Nonstarter character in JIS X 4051.

0E5A;NS # THAI CHARACTER ANGKHANKHU                         ๚
0E5B;NS # THAI CHARACTER KHOMUT                             ๛
17D4;NS # KHMER SIGN KHAN                                   ។
17D6;NS # KHMER SIGN CAMNUC PII KUUH                        ៖
17D7;NS # KHMER SIGN LEK TOO                                ៗ
17D8;NS # KHMER SIGN BEYYAL                                 ៘
17D9;NS # KHMER SIGN PHNAEK MUAN                            ៙
17DA;NS # KHMER SIGN KOOMUUT                                ៚
203C;NS # DOUBLE EXCLAMATION MARK                           ‼
3005;NS # IDEOGRAPHIC ITERATION MARK                        々    [JIS]
301C;NS # WAVE DASH                                         〜
303B;NS # VERTICAL IDEOGRAPHIC ITERATION MARK               〻
303C;NS # MASU MARK                                         〼
3041;NS # HIRAGANA LETTER SMALL A                           ぁ    [JIS]
3043;NS # HIRAGANA LETTER SMALL I                           ぃ    [JIS]
3045;NS # HIRAGANA LETTER SMALL U                           ぅ    [JIS]
3047;NS # HIRAGANA LETTER SMALL E                           ぇ    [JIS]
3049;NS # HIRAGANA LETTER SMALL O                           ぉ    [JIS]
3063;NS # HIRAGANA LETTER SMALL TU                          っ    [JIS]
3083;NS # HIRAGANA LETTER SMALL YA                          ゃ    [JIS]
3085;NS # HIRAGANA LETTER SMALL YU                          ゅ    [JIS]
3087;NS # HIRAGANA LETTER SMALL YO                          ょ    [JIS]
308E;NS # HIRAGANA LETTER SMALL WA                          ゎ    [JIS]
3095;NS # HIRAGANA LETTER SMALL KA                          ゕ
3096;NS # HIRAGANA LETTER SMALL KE                          ゖ
309B;NS # KATAKANA-HIRAGANA VOICED SOUND MARK               ゛
309C;NS # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK          ゜
309D;NS # HIRAGANA ITERATION MARK                           ゝ    [JIS]
309E;NS # HIRAGANA VOICED ITERATION MARK                    ゞ    [JIS]
30A0;NS # KATAKANA-HIRAGANA DOUBLE HYPHEN                   ゠
30A1;NS # KATAKANA LETTER SMALL A                           ァ    [JIS]
30A3;NS # KATAKANA LETTER SMALL I                           ィ    [JIS]
30A5;NS # KATAKANA LETTER SMALL U                           ゥ    [JIS]
30A7;NS # KATAKANA LETTER SMALL E                           ェ    [JIS]
30A9;NS # KATAKANA LETTER SMALL O                           ォ    [JIS]
30C3;NS # KATAKANA LETTER SMALL TU                          ッ    [JIS]
30E3;NS # KATAKANA LETTER SMALL YA                          ャ    [JIS]
30E5;NS # KATAKANA LETTER SMALL YU                          ュ    [JIS]
30E7;NS # KATAKANA LETTER SMALL YO                          ョ    [JIS]
30EE;NS # KATAKANA LETTER SMALL WA                          ヮ    [JIS]
30F5;NS # KATAKANA LETTER SMALL KA                          ヵ    [JIS]
30F6;NS # KATAKANA LETTER SMALL KE                          ヶ    [JIS]
30FB;NS # KATAKANA MIDDLE DOT                               ・
30FC;NS # KATAKANA-HIRAGANA PROLONGED SOUND MARK            ー    [JIS]
30FD;NS # KATAKANA ITERATION MARK                           ヽ    [JIS]
30FE;NS # KATAKANA VOICED ITERATION MARK                    ヾ    [JIS]
31F0;NS # KATAKANA LETTER SMALL KU                          ㇰ
31F1;NS # KATAKANA LETTER SMALL SI                          ㇱ
31F2;NS # KATAKANA LETTER SMALL SU                          ㇲ
31F3;NS # KATAKANA LETTER SMALL TO                          ㇳ
31F4;NS # KATAKANA LETTER SMALL NU                          ㇴ
31F5;NS # KATAKANA LETTER SMALL HA                          ㇵ
31F6;NS # KATAKANA LETTER SMALL HI                          ㇶ
31F7;NS # KATAKANA LETTER SMALL HU                          ㇷ
31F8;NS # KATAKANA LETTER SMALL HE                          ㇸ
31F9;NS # KATAKANA LETTER SMALL HO                          ㇹ
31FA;NS # KATAKANA LETTER SMALL MU                          ㇺ
31FB;NS # KATAKANA LETTER SMALL RA                          ㇻ
31FC;NS # KATAKANA LETTER SMALL RI                          ㇼ
31FD;NS # KATAKANA LETTER SMALL RU                          ㇽ
31FE;NS # KATAKANA LETTER SMALL RE                          ㇾ
31FF;NS # KATAKANA LETTER SMALL RO                          ㇿ
FE54;NS # SMALL SEMICOLON                                   ﹔
FE55;NS # SMALL COLON                                       ﹕
FF1A;NS # FULLWIDTH COLON                                   :
FF1B;NS # FULLWIDTH SEMICOLON                               ;
FF65;NS # HALFWIDTH KATAKANA MIDDLE DOT                     ・
FF67;NS # HALFWIDTH KATAKANA LETTER SMALL A                 ァ    [JIS]
FF68;NS # HALFWIDTH KATAKANA LETTER SMALL I                 ィ    [JIS]
FF69;NS # HALFWIDTH KATAKANA LETTER SMALL U                 ゥ    [JIS]
FF6A;NS # HALFWIDTH KATAKANA LETTER SMALL E                 ェ    [JIS]
FF6B;NS # HALFWIDTH KATAKANA LETTER SMALL O                 ォ    [JIS]
FF6C;NS # HALFWIDTH KATAKANA LETTER SMALL YA                ャ    [JIS]
FF6D;NS # HALFWIDTH KATAKANA LETTER SMALL YU                ュ    [JIS]
FF6E;NS # HALFWIDTH KATAKANA LETTER SMALL YO                ョ    [JIS]
FF6F;NS # HALFWIDTH KATAKANA LETTER SMALL TU                ッ    [JIS]
FF70;NS # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK  ー    [JIS]
FF9E;NS # HALFWIDTH KATAKANA VOICED SOUND MARK              ゙
FF9F;NS # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK         ゚

axf:overflow-condense

The axf:overflow-condense specifies how to condense the overflowed text within the region.

Value: [ letter-spacing || word-spacing || font-stretch || font-size || line-height ] | auto | inherit
Initial: auto
Applies to: all block-level formatting objects
Inherited: yes
Percentages: N/A

Values have the following meanings.

letter-spacing

Condenses the text by adjusting the letter spacing.

word-spacing [-]

Condenses the text by adjusting the word spacing.

font-stretch

Condenses the text by adjusting the font width.

font-size

Condenses the text by adjusting the font size.

line-height

Condenses the text by adjusting the line height.

auto

Dependent on the system setting.

Condensing the text within the region can be specified with the properties of overflow="condense". The adjustment for condensing the text includes both the inline progression direction and the block progression direction. The system will process the specified method by combining the methods considered as suitable.

axf:overflow-replace

An alternative character string for the specified overflow text.

Value: <string>
Initial: depends on system
Applies to: all block-level formatting objects
Inherited: yes
Percentages: N/A

When overflow="replace" is specified, the overflow text is replaced by repeating the specified string.

axf:punctuation-spacing

The axf:punctuation-spacing specifies the spacing between a full width punctuation and a full width character in Japanese.

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

This space is used in axf:kerning-mode="contextual".

axf:punctuation-trim

The axf:punctuation-trim specifies whether to treat full width punctuations as half width. This property is based on CSS3 Text Module: 8.3. Punctuation trimming.

Value: none | start | end | both | auto | inherit
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.

end

Punctuation characters (close parenthesis etc.) at end of line are trimmed.

both

Punctuation characters at start and end of line are trimmed.

auto

Dependent on the system setting.

axf:text-autospace

The axf:text-autospace specifies whether to add space surrounding ideographic glyphs or not. This property is based on CSS3 Text Module: 8.4. Adding space.

Value: none | [ ideograph-numeric || ideograph-alpha ] | auto | inherit
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.

ideograph-alpha

Space is added between ideograph character and non-ideographic alphabet character.

auto

Dependent on the system setting.

axf:text-autospace-width

The axf:text-autospace-width specifies the width for axf:text-autospace.

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

This space is used in axf:text-autospace.

axf:text-kashida-space

The axf:text-kashida-space specifies the ratio of the kashida expansion size to the white space expansion size. This property is based on CSS3 Text Module: 4.6. Kashida effect.

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.

axf:vertical-underline-side

The axf:vertical-underline-side specifies on which side of the text to put underline in vertical writing-mode.

Value: left | right | auto | inherit
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.

auto

Dependent on the system setting.

axf:vertical-underline-side="auto" で、システムの既定値も自動のときは、languageプロパティでの言語が日本語(ja)または韓国語(ko)のときは右側に、その他の言語では左側に配置されます。

axf:word-break

The axf:word-break specifies whether to enable line breaking even between word.

Value: normal | break-all
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.

break-all

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

  • Latn
  • Cyrl
  • Grek
  • Zyyy

15. Ruby / Text Combine

CAUTION: Not documented yet.

axf:ruby-align [-]

axf:ruby-overhang [-]

axf:ruby-position [-]

axf:ruby-span [-]

axf:text-combine [-]

16. List

axf:list-style-position [-]

The position of the marker of the list is specified. This property is based on CSS3 Lists Module: 7. Marker Position.

Value: inside | outside | inherit
Initial: outside
Applies to: all formatting objects
Inherited: yes
Percentages: N/A

Values have the following meanings.

inside

The position of the marker is an inside in the block.

outside

The position of the marker is an outside in the block.

17. Miscellaneous

axf:base-uri

The axf: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.

axf:soft-hyphen-treatment

The axf:soft-hyphen-treatment specifies to output SOFT HYPEN.

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

Generally SOFT HYPHEN (U+00AD) is displayed only when the line breaks and 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 printed when the fonts such as pictographic characters are used. Possible to eliminate this problem by using the axf:soft-hyphen-treatment property.

Values have the following meanings.

auto

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

preserve

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

axf:justify-nbsp

The axf;justify-nbsp specifies whether to justify NON-BREAKING SPACE or not.

Value: true | false | inherit
Initial: true
Applies to: all formatting objects
Inherited: yes
Percentages: N/A

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 form justification.

Values have the following meanings.

true

NON-BREAKING SPACE is included for justification.

false

NON-BREAKING SPACE is not included for justification.


Extended Values

border-style
border-*-style

Extended the dot-dash, dot-dot-dash, and wave properties defined in CSS3.

clear

Following bold values are extended.

Value: start | end | left | right | inside | outside | both | none | inherit

Values have the following meanings.

inside

Interpreted as "start" on odd pages, as "end" on even pages.

outside

Interpreted as "end" on odd pages, as "start" on even pages.

float

Following bold values are extended.

Value: before | start | end | left | right | inside | outside | after | in-column | mid-column | none | inherit

Values have the following meanings.

inside

Places float area at start-edge on odd pages, at end-edge on even pages.

outside

Places float area at end-edge on odd pages, at start-edge on even pages.

after [-]

Places float area at after side of the area.

in-column [-]

The place of float area is put on a full column. This value is based on CSS3 Multi-column layout: 10. Floating in and between columns.

mid-column [-]

The place of float area is put between columns. This value is based on CSS3 Multi-column layout: 10. Floating in and between columns.

Float Model

font-stretch

Following bold values are extended.

Value: normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | <percentage> | <number> | inherit

Values have the following meanings.

<percentage>

Specifies the percentage against the font width.

<number>

Equivalent to <percentage> / 100.

force-page-count

Following bold values are extended.

Value: auto | even | doubly-even | odd | end-on-even | end-on-doubly-even | end-on-odd | doubly-even-document | no-force | inherit

Values have the following meanings.

doubly-even

Force an doubly-even number of pages in this page-sequence.

end-on-doubly-even

Force the last page in this page-sequence to be an doubly-even-page.

doubly-even-document

Force the number of pages counted from the document head to be an doubly-even number.

internal-destination

Following bold value is extended.

Value: empty string | <idref> | <number-with-fragment>

Values have the following meanings.

<number-with-fragment>

Effective for the internal link in PDF. indicates the page number of the link destination. This string is simpe numeric characters or the following string that combines numeric characters and fragment with #.

123#string

Refer to Making Link for fragment.

overflow

Following bold values are extended.

Value: visible | hidden | scroll | replace | condense | error-if-overflow | auto | inherit

Values have the following meanings.

replace

The string specified by axf:overflow-replace is repeated in a full area. When the specified string is empty, the string of the area is replaced with an empty string. The original string is discarded.

condense

Condenses the overflowed text within the region. How to condense the text can be specified by axf:overflow-condense.