You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1006 lines
80 KiB
1006 lines
80 KiB
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html lang="EN"><head><META http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Extensible Stylesheet Language (XSL) Requirements Version 2.0</title><style type="text/css">
|
|
code { font-family: monospace; }
|
|
|
|
div.constraint,
|
|
div.issue,
|
|
div.note,
|
|
div.notice { margin-left: 2em; }
|
|
|
|
*.internal { background-color: #EEEEEE;
|
|
color: #999999}
|
|
|
|
ol.enumar { list-style-type: decimal; }
|
|
ol.enumla { list-style-type: lower-alpha; }
|
|
ol.enumlr { list-style-type: lower-roman; }
|
|
ol.enumua { list-style-type: upper-alpha; }
|
|
ol.enumur { list-style-type: upper-roman; }
|
|
|
|
|
|
div.exampleInner pre { margin-left: 1em;
|
|
margin-top: 0em; margin-bottom: 0em}
|
|
div.exampleOuter {border: 4px double gray;
|
|
margin: 0em; padding: 0em}
|
|
div.exampleInner { background-color: #d5dee3;
|
|
border-top-width: 4px;
|
|
border-top-style: double;
|
|
border-top-color: #d3d3d3;
|
|
border-bottom-width: 4px;
|
|
border-bottom-style: double;
|
|
border-bottom-color: #d3d3d3;
|
|
padding: 4px; margin: 0em }
|
|
div.exampleWrapper { margin: 4px }
|
|
div.exampleHeader { font-weight: bold;
|
|
margin: 4px}
|
|
</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-WD.css"></head><body><div class="head"><p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72"></a></p>
|
|
<h1><a name="title" id="title"></a>Extensible Stylesheet Language (XSL) Requirements Version 2.0</h1>
|
|
<h2><a name="w3c-doctype" id="w3c-doctype"></a>W3C Working Draft 26 March 2008</h2><dl><dt>This version:</dt><dd>
|
|
<a href="http://www.w3.org/TR/2008/WD-xslfo20-req-20080326/">http://www.w3.org/TR/2008/WD-xslfo20-req-20080326/</a>
|
|
</dd><dt>Latest version:</dt><dd>
|
|
<a href="http://www.w3.org/TR/xslfo20-req/">http://www.w3.org/TR/xslfo20-req/</a>
|
|
</dd><dt>Editor:</dt><dd>
|
|
<span>
|
|
<a href="http://www.bals.be">Klaas Bals</a>
|
|
</span>
|
|
,
|
|
<span>
|
|
<a href="http://www.inventivedesigners.com">Inventive Designers</a>
|
|
</span>
|
|
</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2008 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p></div><hr><div>
|
|
<h2><a name="abstract" id="abstract"></a>Abstract</h2><p>
|
|
The
|
|
<a href="http://www.w3.org/TR/2004/WD-xsl11-20041216/">XSL 1.1</a>
|
|
specification defines the features and syntax for the Extensible Stylesheet Language (XSL), a language for
|
|
expressing stylesheets. This document enumerates the collected requirements for a 2.0 version of XSL. There are
|
|
two parts to XSL: XSL Transformations (XSLT) for transformation of documents and XSL Formatting Objects (XSL-FO)
|
|
for formatting of documents. This is the requirements document for XSL-FO and not for XSLT.
|
|
</p></div><div>
|
|
<h2><a name="status" id="status"></a>Status of this Document</h2><p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.</em></p><p>This is a First Public Working Draft of "Extensible Stylesheet Language (XSL) Requirements Version 2.0" which is expected to become a Working Group Note.</p><p>
|
|
The XSL WG has provided a unique opportunity to provide feedback to the working group through a W3C Requirements
|
|
Survey found at
|
|
<a href="http://www.w3.org/2002/09/wbs/1/xslfo20requirements/">
|
|
http://www.w3.org/2002/09/wbs/1/xslfo20requirements/
|
|
</a>
|
|
. Please take the time to fill out the survey and help us understand your priorities for the next release of XSL
|
|
formatting objects. Additional comments and feedback on individual requirements should be provided using the
|
|
<a href="http://www.w3.org/XML/2008/01/xsl-fo-bugzilla.html">W3C public Bugzilla system</a>
|
|
. If access to the bugzilla system is not feasible, you may send your comments to
|
|
<a href="mailto:xsl-editors@w3.org">xsl-editors@w3.org</a>
|
|
. Each bugzilla entry and email message should contain only one error report. It will be very helpful if you
|
|
include the string [FO2.0Req] in the subject line of your report, whether made in Bugzilla or in email. Archives
|
|
of the comments and responses are available at
|
|
<a href="http://lists.w3.org/Archives/Public/xsl-editors/">
|
|
http://lists.w3.org/Archives/Public/xsl-editors/
|
|
</a>
|
|
.
|
|
</p><p>
|
|
This document was developed by the
|
|
<a href="http://www.w3.org/Style/XSL/">XSL Working Group</a>
|
|
as part of the
|
|
<a href="http://www.w3.org/XML/Activity">W3C XML activity</a>
|
|
.
|
|
</p><p>This requirements document introduces planned new work for XSL-FO 2.0.</p><p>
|
|
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may
|
|
be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as
|
|
other than work in progress.
|
|
</p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>. The group does not expect this document to become a W3C Recommendation. W3C maintains a <a href="http://www.w3.org/2004/01/pp-impl/19552/status#disclosures" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure"> section 6 of the W3C Patent Policy</a>.</p></div><div class="toc">
|
|
<h2><a name="contents" id="contents"></a>Table of Contents</h2><p class="toc">1 <a href="#N65732">Introduction</a><br>
|
|
1.1 <a href="#feedback">Feedback</a><br>
|
|
1.2 <a href="#N65779">Writing modes</a><br>
|
|
2 <a href="#N65784">Pagination and Layout</a><br>
|
|
2.1 <a href="#N65787">General Region</a><br>
|
|
2.1.1 <a href="#N65790">Non-rectangular areas</a><br>
|
|
2.1.2 <a href="#N65805">Add text to path</a><br>
|
|
2.1.3 <a href="#N65820">Runarounds</a><br>
|
|
2.1.4 <a href="#copyfitting">Copyfitting</a><br>
|
|
2.1.5 <a href="#properties-at-non-tag-boundaries">Properties at non-tag boundaries</a><br>
|
|
2.1.6 <a href="#N65945">First line indent on first line of page, region or column</a><br>
|
|
2.1.7 <a href="#N65966">Initial Caps</a><br>
|
|
2.2 <a href="#N65980">Pages</a><br>
|
|
2.2.1 <a href="#N65983">Footnotes</a><br>
|
|
2.2.1.1 <a href="#N65986">Column wide</a><br>
|
|
2.2.1.2 <a href="#N65991">Multiple columns</a><br>
|
|
2.2.1.3 <a href="#N65996">Table footnotes</a><br>
|
|
2.2.1.4 <a href="#N66005">Coalescing footnotes</a><br>
|
|
2.2.1.5 <a href="#N66010">Restart numbering</a><br>
|
|
2.2.1.6 <a href="#N66015">Maximum size</a><br>
|
|
2.2.1.7 <a href="#N66020">Other properties</a><br>
|
|
2.2.1.8 <a href="#N66025">Properties from area tree</a><br>
|
|
2.2.2 <a href="#N66033">Floats</a><br>
|
|
2.2.2.1 <a href="#N66038">Page wide and column wide floats</a><br>
|
|
2.2.2.2 <a href="#N66046">Floats alignment</a><br>
|
|
2.2.2.3 <a href="#N66051">Stack floats</a><br>
|
|
2.2.2.4 <a href="#N66056">Distance of floats</a><br>
|
|
2.2.3 <a href="#N66061">Marginalia</a><br>
|
|
2.2.3.1 <a href="#N66066">Keep marginalia together with other objects</a><br>
|
|
2.2.3.2 <a href="#N66122">Large marginalia</a><br>
|
|
2.2.4 <a href="#N66163">Vertical Positioning</a><br>
|
|
2.2.4.1 <a href="#feathering">Feathering</a><br>
|
|
2.2.4.2 <a href="#vertical-alignment-of-lines-of-text">Correlating vertical position</a><br>
|
|
2.2.4.3 <a href="#N66188">Vertical alignment within a page or column</a><br>
|
|
2.2.4.4 <a href="#N66203">Vertical alignment specific for the last column</a><br>
|
|
2.2.4.5 <a href="#N66208">Vertical justification across pages and columns</a><br>
|
|
2.2.5 <a href="#N66215">Tables and lists</a><br>
|
|
2.2.5.1 <a href="#N66218">Decimal alignment</a><br>
|
|
2.2.5.2 <a href="#N66223">Table header/footer on boundaries</a><br>
|
|
2.2.5.3 <a href="#N66228">Split tables</a><br>
|
|
2.2.5.4 <a href="#N66269">Repeat contents of split spanned cell</a><br>
|
|
2.2.5.5 <a href="#N66284">Cell borders extending beyond the table</a><br>
|
|
2.2.5.6 <a href="#N66299">Adjacent borders</a><br>
|
|
2.2.5.7 <a href="#N66304">Borders on break</a><br>
|
|
2.2.5.8 <a href="#N66309">Spanning cell over all row and columns</a><br>
|
|
2.2.6 <a href="#N66314">Side-by-side</a><br>
|
|
2.2.7 <a href="#N66359">Numbering</a><br>
|
|
2.2.7.1 <a href="#additional-numbering">Additional numbering</a><br>
|
|
2.2.7.2 <a href="#N66404">Cross-references to other numbers</a><br>
|
|
2.2.7.3 <a href="#N66412">Calculations with page numbers</a><br>
|
|
2.2.7.4 <a href="#N66417">Multiple sets of page numbers</a><br>
|
|
2.2.7.5 <a href="#N66426">Control increments of page numbers</a><br>
|
|
2.2.8 <a href="#N66437">Cross-references</a><br>
|
|
2.2.8.1 <a href="#N66440">Textual cross-references</a><br>
|
|
2.2.8.2 <a href="#N66445">Cross-reference to a specific region on a page</a><br>
|
|
2.2.8.3 <a href="#N66450">Cross-reference ranges and coalescing</a><br>
|
|
2.2.9 <a href="#N66455">Markers</a><br>
|
|
2.2.9.1 <a href="#N66458">List all markers</a><br>
|
|
2.2.9.2 <a href="#N66463">Organize all markers</a><br>
|
|
2.2.9.3 <a href="#N66468">Coalescing markers</a><br>
|
|
2.2.9.4 <a href="#generalized-markers">Generalized markers</a><br>
|
|
2.2.10 <a href="#N66479">Text before or after a break</a><br>
|
|
2.2.11 <a href="#N66484">Columns</a><br>
|
|
2.2.11.1 <a href="#N66487">Column balancing</a><br>
|
|
2.2.11.2 <a href="#N66496">Column spanning</a><br>
|
|
2.2.11.3 <a href="#N66525">Spanning columns in nested formatting objects</a><br>
|
|
2.2.11.4 <a href="#N66530">Strong vs. weak spanning</a><br>
|
|
2.2.11.5 <a href="#N66545">Multiple columns of different widths</a><br>
|
|
2.2.11.6 <a href="#N66550">Multi-column layout in all regions and block-containers</a><br>
|
|
2.2.12 <a href="#N66555">Layout master set</a><br>
|
|
2.2.12.1 <a href="#N66558">Interleaving layout-master-set</a><br>
|
|
2.2.12.2 <a href="#repeatable-sub-sequence-specifier">Repeatable sub-sequence-specifier</a><br>
|
|
2.2.12.3 <a href="#N66575">
|
|
Change master every
|
|
n
|
|
pages
|
|
</a><br>
|
|
2.2.12.4 <a href="#N66589">Background content</a><br>
|
|
2.2.13 <a href="#N66598">Variable-sized regions</a><br>
|
|
2.2.14 <a href="#adjustable-region-sizes">Adjustable Region Sizes</a><br>
|
|
2.2.15 <a href="#N66625">Binding edge</a><br>
|
|
2.2.16 <a href="#N66633">Multi-directional page collation order</a><br>
|
|
2.2.17 <a href="#N66638">Spreads</a><br>
|
|
2.2.18 <a href="#bleeds">Bleeds</a><br>
|
|
2.2.19 <a href="#N66652">Synchronize text of flows</a><br>
|
|
2.2.20 <a href="#N66662">Total block-progression-dimension</a><br>
|
|
2.2.21 <a href="#N66667">Different page geometry based on flows' content</a><br>
|
|
2.2.22 <a href="#relationship-of-two-objects">Relationship of two objects</a><br>
|
|
2.3 <a href="#N66678">Feedback from pagination stage</a><br>
|
|
2.4 <a href="#N66691">Document collection</a><br>
|
|
2.4.1 <a href="#N66698">Master index</a><br>
|
|
2.4.2 <a href="#N66703">Hyperlink management</a><br>
|
|
3 <a href="#N66708">Expressions</a><br>
|
|
3.1 <a href="#N66711">Including information from formatting time</a><br>
|
|
3.2 <a href="#N66718">Pagination information</a><br>
|
|
3.3 <a href="#output-result-of-expression">Output result of expression</a><br>
|
|
3.4 <a href="#N66732">User defined units of measurement</a><br>
|
|
3.5 <a href="#N66737">Getting values of properties</a><br>
|
|
4 <a href="#inheritance">Inheritance</a><br>
|
|
4.1 <a href="#N66748">Inheritance down area tree</a><br>
|
|
4.2 <a href="#N66757">Inheritance at reference area boundaries</a><br>
|
|
5 <a href="#composition">Composition</a><br>
|
|
5.1 <a href="#N66770">Fonts</a><br>
|
|
5.1.1 <a href="#N66773">Improved font support</a><br>
|
|
5.1.2 <a href="#N66786">Unicode ranges</a><br>
|
|
5.1.3 <a href="#N66791">Font dependent on script or language</a><br>
|
|
5.1.4 <a href="#N66796">Font specific features</a><br>
|
|
5.1.5 <a href="#N66801">Kerning</a><br>
|
|
5.1.6 <a href="#N66806">Ligatures</a><br>
|
|
5.1.7 <a href="#N66811">XSL-FO inside other languages</a><br>
|
|
5.2 <a href="#N66816">Force line justification</a><br>
|
|
5.3 <a href="#alignment-around-breaks">Alignment around breaks</a><br>
|
|
5.4 <a href="#N66835">Hanging punctuation</a><br>
|
|
5.5 <a href="#N66850">Tabs and tab stops</a><br>
|
|
5.6 <a href="#N66859">Word and letter spacing</a><br>
|
|
5.6.1 <a href="#N66862">Word and letter spacing exclusions</a><br>
|
|
5.6.2 <a href="#N66879">Punctuation spacing</a><br>
|
|
5.6.3 <a href="#N66884">Specify priority between word and letter spacing</a><br>
|
|
5.7 <a href="#N66889">Hyphenation and line breaking</a><br>
|
|
5.7.1 <a href="#number-of-syllables">Number of syllables</a><br>
|
|
5.7.2 <a href="#N66903">Syllable widows</a><br>
|
|
5.7.3 <a href="#N66911">Hyphenation exceptions</a><br>
|
|
5.7.4 <a href="#N66916">Line breaks without hyphen character</a><br>
|
|
5.7.5 <a href="#N66921">Word widows</a><br>
|
|
5.7.6 <a href="#N66929">Minimum length of last line</a><br>
|
|
6 <a href="#N66934">Further improved non-Western language support</a><br>
|
|
7 <a href="#images">Images</a><br>
|
|
7.1 <a href="#N66967">Cropping images</a><br>
|
|
7.2 <a href="#N66978">Rotate images in 90 degree increments</a><br>
|
|
7.3 <a href="#N66983">Rotate images over arbitrary angles</a><br>
|
|
7.4 <a href="#N66988">Callouts</a><br>
|
|
7.5 <a href="#N66993">Multi-page images</a><br>
|
|
8 <a href="#N66998">Improvements for specific output formats or devices</a><br>
|
|
8.1 <a href="#N67001">Annotations that appear in output</a><br>
|
|
8.2 <a href="#N67006">Base URL</a><br>
|
|
8.3 <a href="#print-specific-properties">Print specific properties</a><br>
|
|
8.4 <a href="#N67047">Marks for paper folding machines</a><br>
|
|
9 <a href="#rendering">Rendering</a><br>
|
|
9.1 <a href="#N67056">Animations with graphics</a><br>
|
|
9.2 <a href="#N67067">Other types of animations</a><br>
|
|
9.3 <a href="#N67078">Z-index</a><br>
|
|
9.4 <a href="#N67083">Border styles</a><br>
|
|
9.5 <a href="#N67092">Rounded corners</a><br>
|
|
9.6 <a href="#N67097">Color support</a><br>
|
|
9.6.1 <a href="#N67102">Transparency</a><br>
|
|
10 <a href="#svg">Collaboration with SVG</a><br>
|
|
10.1 <a href="#masks">Masks</a><br>
|
|
10.2 <a href="#N67162">Rotations</a><br>
|
|
10.3 <a href="#N67167">Transformations</a><br>
|
|
11 <a href="#N67172">Other</a><br>
|
|
11.1 <a href="#N67175">Foreign objects</a><br>
|
|
11.2 <a href="#N67180">Metadata on objects</a><br>
|
|
11.3 <a href="#N67185">Generalized metadata</a><br>
|
|
11.4 <a href="#N67190">xml:base</a><br>
|
|
11.5 <a href="#N67198">Schema for XSL-FO</a><br>
|
|
11.6 <a href="#N67203">Compatibility</a><br>
|
|
14 <a href="#N67288">References</a><br>
|
|
</p></div><hr><div class="body"><div class="div1">
|
|
<h2><a name="N65732" id="N65732"></a>1 Introduction</h2><p>
|
|
The W3C is in the process of developing the second major version of XSL-FO, the formatting specification component
|
|
of XSL. XSL-FO is widely deployed in industry and academia where multiple output forms (typically print and
|
|
online) are needed from single source XML. It is used in many diverse applications and countries on a large number
|
|
of implementations to create technical documentation, reports and contracts, terms and conditions, invoices and
|
|
other forms processing, such as driver’s licenses, postal forms, etc. XSL-FO is also widely used for heavy
|
|
multilingual work because of the internationalization aspects provided in 1.0 to accommodate multiple and mixed
|
|
writing modes (writing directions such as left-to-right, top-to-bottom, right-to-left, etc.) of the world's
|
|
languages.
|
|
</p><p>
|
|
The primary goals of the W3C XSL Working Group in developing XSL 2.0 are to provide more sophisticated formatting
|
|
and layout, enhanced internationalization to provide special formatting objects for Japanese and other Asian and
|
|
non-Western languages and scripts and to improve integration with other technologies such as SVG and MathML.
|
|
</p><p>
|
|
A number of XSL 1.0 implementations already support dynamic inclusion of vector graphics using W3C SVG. The XSL
|
|
and SVG WGs want to define a tighter interface between XSL-FO and SVG to provide enhanced functionality.
|
|
Experiments with the use of SVG paths to create non-rectangular text regions, or "run-arounds", have helped to
|
|
motivate further work on deeper integration of SVG graphics inside XSL-FO documents, and to work with the SVG WG
|
|
on specifying the meaning of XSL-FO markup inside SVG graphics. A similar level of integration with MathML is
|
|
contemplated.
|
|
</p><div class="div2">
|
|
<h3><a name="feedback" id="feedback"></a>1.1 Feedback</h3><p>
|
|
The XSL WG has provided a unique opportunity to provide feedback to the working group through a W3C
|
|
Requirements Survey found at
|
|
<a href="http://www.w3.org/2002/09/wbs/1/xslfo20requirements/">
|
|
http://www.w3.org/2002/09/wbs/1/xslfo20requirements/
|
|
</a>
|
|
. Please take the time to fill out the survey and help us understand your priorities for the next release of
|
|
XSL formatting objects. Additional comments and feedback on individual requirements should be provided using
|
|
the
|
|
<a href="http://www.w3.org/XML/2008/01/xsl-fo-bugzilla.html">W3C public Bugzilla system</a>
|
|
. If access to the bugzilla system is not feasible, you may send your comments to
|
|
<a href="mailto://xsl-editors@w3.org">xsl-editors@w3.org</a>
|
|
. Each bugzilla entry and email message should contain only one error report. It will be very helpful if you
|
|
include the string [FO2.0Req] in the subject line of your report, whether made in Bugzilla or in email.
|
|
Archives of the comments and responses are available at
|
|
<a href="http://lists.w3.org/Archives/Public/xsl-editors/">
|
|
http://lists.w3.org/Archives/Public/xsl-editors/
|
|
</a>
|
|
.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N65779" id="N65779"></a>1.2 Writing modes</h3><p>
|
|
We use terms like top, bottom, vertical and horizontal in this document to be easy to understand. We know that
|
|
when we write the specification, we have to talk in terms of before, after, start, end,
|
|
block-progression-direction, inline-progression-direction etc, the same as XSL 1.0 and 1.1 did.
|
|
</p></div></div><div class="div1">
|
|
<h2><a name="N65784" id="N65784"></a>2 Pagination and Layout</h2><div class="div2">
|
|
<h3><a name="N65787" id="N65787"></a>2.1 General Region</h3><div class="div3">
|
|
<h4><a name="N65790" id="N65790"></a>2.1.1 Non-rectangular areas</h4><p>
|
|
Add support for non-rectangular areas wherever appropriate. This is for areas where the content needs to
|
|
be flowed inside an non-rectangular shape.
|
|
</p><p>
|
|
<img src="images/non-rectangular-shape-triangle.png" alt="non rectangular shape triangle">
|
|
</p></div><div class="div3">
|
|
<h4><a name="N65805" id="N65805"></a>2.1.2 Add text to path</h4><p>
|
|
Run text on a path including flowing from one path to another. This goes further than simply including
|
|
SVG, as we're also supporting the line breaking rules that XSL-FO provides. Text should be able to flow
|
|
from one line to the next line of the multiline paths but it needs to be explicitly specified what each
|
|
line of the path is, as we do not intend to stack paths automatically. The intent is to apply the normal
|
|
line building properties to text on a path.
|
|
</p><p>
|
|
<img src="images/text-on-path.png" alt="text on path">
|
|
</p></div><div class="div3">
|
|
<h4><a name="N65820" id="N65820"></a>2.1.3 Runarounds</h4><p>
|
|
Add support for runarounds or intrusions (text flowing around illustrations, regions and other objects).
|
|
This is related to effects obtained by overlapping areas of either rectangular or non-rectangular shape in
|
|
any suitable combination, but it doesn't really require non-rectangular areas.
|
|
</p><p>Allow one object to intrude into another:</p><ol class="enumar"><li><p>Support multiple intrusions</p><p>
|
|
<img src="images/runarounds-multiple-intrusions.png" alt="runarounds multiple intrusions">
|
|
</p></li><li><p>Support intrusions into all 4 sides</p></li><li><p>
|
|
Support specifying pull-quotes without the need to repeat the content of the pull-quote. This is
|
|
related to
|
|
<a href="#generalized-markers"><b>2.2.9.4 Generalized markers</b></a>
|
|
</p><p>
|
|
<img src="images/runarounds-pull-quote.png" alt="runarounds pull quote">
|
|
</p></li><li><p>Support cut-outs</p><p>
|
|
<img src="images/runarounds-cut-out.png" alt="runarounds cut out">
|
|
</p></li><li><p>The objects (both the intruder as well as the object intruded upon) may be of arbitrary shape.</p><p>
|
|
<img src="images/runarounds-arbitrary-shape.png" alt="runarounds arbitrary shape">
|
|
</p></li></ol><p>Allow users to specify the relations between the objects that are impacted by the intrusion:</p><ol class="enumar"><li><p>
|
|
Specify where the objects should be positioned. The objects may be relatively or absolutely
|
|
specified.
|
|
</p></li><li><p>Specify separation/gap between intruders & other regions.</p></li><li><p>
|
|
The intruder's size may be pre-defined or specified dynamically. It may be a region or a flowing
|
|
object. An example of a dynamically sized object is a pullquote where the size of the pullquote
|
|
depends on the amount of text, or a graphic where the size of is dependent on the external
|
|
graphic.
|
|
</p></li><li><p>Specify a priority between objects</p><p>
|
|
<img src="images/runarounds-priority.png" alt="runarounds priority">
|
|
</p></li><li><p>
|
|
Specify a keep/anchor between the text and the intruder. This is related to
|
|
<a href="#relationship-of-two-objects"><b>2.2.22 Relationship of two objects</b></a>
|
|
</p></li></ol></div><div class="div3">
|
|
<h4><a name="copyfitting" id="copyfitting"></a>2.1.4 Copyfitting</h4><p>
|
|
Add support for copyfitting, for example to shrink or grow content (change properties of text,
|
|
line-spacing, ...) to make it constrain to a certain area. This is going to be managed by a defined set of
|
|
properties, and in the stylesheet it will be possible to define the preference and priority for which
|
|
properties should be changed. That list of properties that can be used for copyfitting is going to be
|
|
defined.
|
|
</p><p>Additionally, multiple instances of alternative content can be provided to determine best fit.</p><p>
|
|
This includes copyfitting across a given number of pages, regions, columns etc, for example to constrain
|
|
the number of pages to 5 pages.
|
|
</p><p>
|
|
Add the ability to keep consistency in the document, e.g. when a specific area is copyfitted with 10 pt
|
|
fonts, all other similar text should be the same.
|
|
</p></div><div class="div3">
|
|
<h4><a name="properties-at-non-tag-boundaries" id="properties-at-non-tag-boundaries"></a>2.1.5 Properties at non-tag boundaries</h4><p>
|
|
Add support for specifying the properties on the specified number of lines or certain parts in areas, e.g.
|
|
the first 5 cm of the area should be in bold.
|
|
</p><p>
|
|
<img src="images/non-tag-boundaries.png" alt="non-tag boundaries">
|
|
</p></div><div class="div3">
|
|
<h4><a name="N65945" id="N65945"></a>2.1.6 First line indent on first line of page, region or column</h4><p>
|
|
Allow users to specify that first line indent should be different on the first line of a page, region or
|
|
column. This is a specific case of
|
|
<a href="#properties-at-non-tag-boundaries"><b>2.1.5 Properties at non-tag boundaries</b></a>
|
|
and is also related to
|
|
<a href="#alignment-around-breaks"><b>5.3 Alignment around breaks</b></a>
|
|
.
|
|
</p><p>
|
|
<img src="images/first-line-indent.png" alt="first line indent">
|
|
</p></div><div class="div3">
|
|
<h4><a name="N65966" id="N65966"></a>2.1.7 Initial Caps</h4><p>
|
|
Add support for raised initial capitals and
|
|
<em>n</em>
|
|
-line dropped capitals. This includes support for the first
|
|
<em>n</em>
|
|
characters. See also
|
|
<a href="#properties-at-non-tag-boundaries"><b>2.1.5 Properties at non-tag boundaries</b></a>
|
|
.
|
|
</p></div></div><div class="div2">
|
|
<h3><a name="N65980" id="N65980"></a>2.2 Pages</h3><div class="div3">
|
|
<h4><a name="N65983" id="N65983"></a>2.2.1 Footnotes</h4><div class="div4">
|
|
<h5><a name="N65986" id="N65986"></a>2.2.1.1 Column wide</h5><p>Allow users to specify whether footnotes are column wide or page wide.</p></div><div class="div4">
|
|
<h5><a name="N65991" id="N65991"></a>2.2.1.2 Multiple columns</h5><p>
|
|
Add support for multiple columns in the footnote region, where the number of columns may be different
|
|
from the number of columns in the page.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N65996" id="N65996"></a>2.2.1.3 Table footnotes</h5><p>
|
|
Add support for table footnotes. These are footnote bodies that get rendered within the table (as
|
|
opposed to at the bottom of the page) when the footnote reference appears on the table fragment on
|
|
that page.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66005" id="N66005"></a>2.2.1.4 Coalescing footnotes</h5><p>
|
|
Add support for coalescing footnotes. This means that the same footnote should only be shown once when
|
|
it appears multiple times on the same page.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66010" id="N66010"></a>2.2.1.5 Restart numbering</h5><p>Add support for restarting numbering footnotes for each page</p></div><div class="div4">
|
|
<h5><a name="N66015" id="N66015"></a>2.2.1.6 Maximum size</h5><p>
|
|
Allow users to specify the maximum size of the footnote area in relation to the body and for footnotes
|
|
to continue on the next page.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66020" id="N66020"></a>2.2.1.7 Other properties</h5><p>Allow users to specify other properties of the footnotes, such as margins, spacing etc.</p></div><div class="div4">
|
|
<h5><a name="N66025" id="N66025"></a>2.2.1.8 Properties from area tree</h5><p>
|
|
Add support for specifying properties such as the fontsize of footnotes to be taken from the area
|
|
tree, instead of from the formatting object tree. This is related to
|
|
<a href="#inheritance"><b>4 Inheritance</b></a>
|
|
.
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66033" id="N66033"></a>2.2.2 Floats</h4><p>Improve support for floats. Currently we can only float to the top.</p><div class="div4">
|
|
<h5><a name="N66038" id="N66038"></a>2.2.2.1 Page wide and column wide floats</h5><p>
|
|
We should differentiate page wide, column wide or
|
|
<em>n</em>
|
|
-column wide floats.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66046" id="N66046"></a>2.2.2.2 Floats alignment</h5><p>We have to be able to align floats to the top and bottom.</p></div><div class="div4">
|
|
<h5><a name="N66051" id="N66051"></a>2.2.2.3 Stack floats</h5><p>
|
|
Be able to stack floats as well as to specify whether the order needs to be preserved, or whether the
|
|
page wide floats come first, followed by the ones that span two columns, followed by the ones that
|
|
span one column.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66056" id="N66056"></a>2.2.2.4 Distance of floats</h5><p>
|
|
We need be able to add floats from the previous page, specify how far they can float, whether they can
|
|
float towards the front of the document, they may flow only within the same spread, etc...
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66061" id="N66061"></a>2.2.3 Marginalia</h4><p>Add support for marginalia.</p><div class="div4">
|
|
<h5><a name="N66066" id="N66066"></a>2.2.3.1 Keep marginalia together with other objects</h5><p>
|
|
Keep marginalia together with other objects, such as blocks or inlines. We should specify the
|
|
alignment of the marginalia, as this is typically a smaller font size. For example align the
|
|
baselines, align the top of the two lines, etc. Support a variety of positions of marginalia, e.g.
|
|
position them at the left on a left-hand page and at the right on a right-hand page.
|
|
</p><div class="note"><p class="prefix"><b>Note:</b></p><p>
|
|
In some cases, marginalia are seen as an alternative to footnotes, so some footnote properties
|
|
should also apply to marginalia, for example numbering and restarting numbering.
|
|
</p></div><p>The following graphic show an examples of marginalia:</p><p>
|
|
<img src="images/marginalia-marginalia1.png" alt="marginalia marginalia1">
|
|
</p><p>The following picture shows collision of 2 marginalia:</p><p>
|
|
<img src="images/marginalia-marginalia2.png" alt="marginalia marginalia2">
|
|
</p><p>This graphic shows marginalia on the two sides of the flow:</p><p>
|
|
<img src="images/marginalia-positioning.png" alt="marginalia positioning">
|
|
</p><p>
|
|
This graphic shows an example of the relative alignment of the marginalia and the text. At the top of
|
|
the page, the first lines of the marginalia and the text are aligned at the before-edge. When in the
|
|
middle of the page, the first line of the marginalia and the corresponding line of the text are
|
|
visually aligned on a particular baseline (in the case of mixed text).
|
|
</p><p>
|
|
<img src="images/marginalia-relativealignment.png" alt="marginalia relativealignment">
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66122" id="N66122"></a>2.2.3.2 Large marginalia</h5><p>
|
|
If marginalia become larger than the space on the page, they should force the text and/or the related
|
|
marginalia to move to the following page. Also permit breaking of marginalia.
|
|
</p><p>This graphic is showing the situation where some breaking is preferable:</p><p>
|
|
<img src="images/marginalia-breaking.png" alt="marginalia breaking">
|
|
</p><p>
|
|
This graphic shows one solution, by breaking the flow so that the entire marginalia is brought to the
|
|
next page, together with the text it belongs to:
|
|
</p><p>
|
|
<img src="images/marginalia-breakingA.png" alt="marginalia breakingA">
|
|
</p><p>This graphic shows another solution, by breaking the marginalia:</p><p>
|
|
<img src="images/marginalia-breakingB.png" alt="marginalia breakingB">
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66163" id="N66163"></a>2.2.4 Vertical Positioning</h4><div class="div4">
|
|
<h5><a name="feathering" id="feathering"></a>2.2.4.1 Feathering</h5><p>
|
|
Add support for feathering, to vertically adjust lines. Feathering is vertical justification with very
|
|
small amounts.
|
|
</p></div><div class="div4">
|
|
<h5><a name="vertical-alignment-of-lines-of-text" id="vertical-alignment-of-lines-of-text"></a>2.2.4.2 Correlating vertical position</h5><p>
|
|
Add support for correlating vertical position so that lines of text on two adjacent pages, columns or
|
|
regions are visually next to each other. Also support alignment of the two sides of the same sheet, so
|
|
that the lines of text on the back side and front side of the sheet are aligned (this is a common
|
|
requirement when the sheets of paper are very thin).
|
|
</p><p>
|
|
<img src="images/constant-baseline-spacing.png" alt="constant baseline spacing">
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66188" id="N66188"></a>2.2.4.3 Vertical alignment within a page or column</h5><p>
|
|
Add support for vertical alignment, such as centering the content of the columns or aligning to the
|
|
bottom within pages, regions or columns.
|
|
</p><p>
|
|
<img src="images/vertical-alignment-within-page.png" alt="vertical algnment within page">
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66203" id="N66203"></a>2.2.4.4 Vertical alignment specific for the last column</h5><p>Allow users to do alignment for all columns, and alignment specific to the last column.</p></div><div class="div4">
|
|
<h5><a name="N66208" id="N66208"></a>2.2.4.5 Vertical justification across pages and columns</h5><p>
|
|
Add support for adjusting properties to do vertical justification within a page, a region or a column,
|
|
as well as across regions.
|
|
|
|
</p><p>Allow users to specify a priority where you want the spaces to end up.</p></div></div><div class="div3">
|
|
<h4><a name="N66215" id="N66215"></a>2.2.5 Tables and lists</h4><div class="div4">
|
|
<h5><a name="N66218" id="N66218"></a>2.2.5.1 Decimal alignment</h5><p>
|
|
To improve decimal alignment, extend the character alignment in table cells to permit a specification
|
|
of the horizontal position of the alignment point within the column.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66223" id="N66223"></a>2.2.5.2 Table header/footer on boundaries</h5><p>
|
|
Be able to specify different instances of what the table header or footer should be depending on the
|
|
different boundaries (page, column and region). This also would allow specifying that certain headers
|
|
must be omitted at certain boundaries.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66228" id="N66228"></a>2.2.5.3 Split tables</h5><p>
|
|
Allow users to specify that tables can be split horizontally. It should be possible to have a column
|
|
repeated when the table is split horizontally, by specifying a row header. There should be a way to
|
|
keep the split parts visually next to each other depending on binding edge.
|
|
</p><p>
|
|
In case a table is split over multiple pages and both the rows and columns don’t fit a page, allow
|
|
users to specify which table part comes out in which order (rows first or columns first).
|
|
</p><p>
|
|
This graphic shows a table before it is split. Neither all of the rows, nor all of the columns fit on
|
|
one page, so the table needs to be split.
|
|
</p><p>
|
|
<img src="images/split-tables-entire-table.png" alt="split tables entire table">
|
|
</p><p>
|
|
The following graphics show 4 pages that contain the split table. The order in which the pages will
|
|
come out depends on the users preference, and the two alternatives are marked with green (columns
|
|
first) and blue (rows first) numbers.
|
|
</p><p>
|
|
<img src="images/split-tables-paginated-rows-first.png" alt="split tables paginated rows first">
|
|
</p><p>
|
|
<img src="images/split-tables-paginated-columns-first.png" alt="split tables paginated columns first">
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66269" id="N66269"></a>2.2.5.4 Repeat contents of split spanned cell</h5><p>
|
|
Allow users to specify that when a spanned cell in a table is split, the entire cell contents should
|
|
be repeated on each table instance. This applies to splitting as well as spanning in the
|
|
block-progression-direction as well as the inline-progression-direction.
|
|
</p><p>
|
|
<img src="images/repeat-spanned-cell-on-split.png" alt="repeat spanned cell on split">
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66284" id="N66284"></a>2.2.5.5 Cell borders extending beyond the table</h5><p>
|
|
Allow the column lines to extend down or right the table to visually indicate that the table
|
|
continues. When this happens, any vertical border should be extended beyond the bottom border for the
|
|
last row or right column.
|
|
</p><p>
|
|
<img src="images/borders-extending-beyond-table.png" alt="borders extending beyond table">
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66299" id="N66299"></a>2.2.5.6 Adjacent borders</h5><p>
|
|
When one formatting object is immediately preceding another in block-progression-dimension, be able to
|
|
specify what to do with their adjacent borders.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66304" id="N66304"></a>2.2.5.7 Borders on break</h5><p>
|
|
Allow having different borders when a break occurs so that a formatting object is split, e.g. a cell
|
|
that splits, have a thinner border for the split.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66309" id="N66309"></a>2.2.5.8 Spanning cell over all row and columns</h5><p>
|
|
The current specification of XSL says that number-rows-spanned and number-columns-spanned should be a
|
|
positive integer. Other specifications, such as HTML 4.01, allow 0 as a value, which means that all
|
|
rows or columns of the current table section are spanned over. This behavior may be added to XSL 2.0,
|
|
either by allowing 0 as a value, or some other solution.
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66314" id="N66314"></a>2.2.6 Side-by-side</h4><p>
|
|
Introduce a way to position objects next to each other. Side-by-side includes complex positioning and
|
|
breaking rules (in some cases similar to the constraints necessary for marginalia).
|
|
</p><p>
|
|
<img src="images/side-by-side2.png" alt="side by side2">
|
|
</p><p>
|
|
<img src="images/side-by-side2b.png" alt="side by side2b">
|
|
</p><p>
|
|
<img src="images/side-by-side3.png" alt="side by side3">
|
|
</p><p>
|
|
<img src="images/side-by-side4.png" alt="side by side4">
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66359" id="N66359"></a>2.2.7 Numbering</h4><div class="div4">
|
|
<h5><a name="additional-numbering" id="additional-numbering"></a>2.2.7.1 Additional numbering</h5><p>
|
|
Add support for line number, column number and region number. For example number only every fifth
|
|
line, etc.
|
|
</p><p>
|
|
The following are requirements for line numbers, but they apply to columns numbers and region numbers
|
|
as well:
|
|
</p><ul><li><p>Line numbering side (start/end/...)</p></li><li><p>Line numbering separation -- distance of number from the text</p></li><li><p>Line numbering format (1, 2, 3...; 001, 002, 003...; A, B, C...)</p></li><li><p>Line numbering text properties (font-family, font-size, ...)</p></li><li><p>Starting line number -- 1 by default, but can be changed by user</p></li><li><p>Continuation -- should numbering continue from previous object, or should be restarted</p></li><li><p>
|
|
Line numbering restart -- where numbering restarts (document, page-sequence, object, page,
|
|
column)
|
|
</p></li><li><p>
|
|
Line number only each
|
|
<em>n</em>
|
|
-th number
|
|
</p></li><li><p>Line number separator</p></li><li><p>Line number alignment</p></li></ul></div><div class="div4">
|
|
<h5><a name="N66404" id="N66404"></a>2.2.7.2 Cross-references to other numbers</h5><p>
|
|
Allow users to make cross-references to anything that can be numbered, such as the numbers introduced
|
|
in
|
|
<a href="#additional-numbering"><b>2.2.7.1 Additional numbering</b></a>
|
|
.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66412" id="N66412"></a>2.2.7.3 Calculations with page numbers</h5><p>
|
|
It should be possible to do calculations with page numbers. For example to determine the number of
|
|
pages in a section.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66417" id="N66417"></a>2.2.7.4 Multiple sets of page numbers</h5><p>
|
|
Have multiple series of page numbers in the whole document that can be output on selected pages (even
|
|
outputting multiple page numbers on the same page). As an example, take the case where a document
|
|
contains both a letter and a contract. In that case, you want to be able to have a page number
|
|
starting from 1 for the entire document, that is also output on all pages, as well as a page number
|
|
starting from 1 for just the contract that is only output on the pages of the contract.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66426" id="N66426"></a>2.2.7.5 Control increments of page numbers</h5><p>Specify that page numbers should not increment on certain pages.</p><p>
|
|
For example, the case where back side containing the 'conditions of sale' shouldn't be numbered and
|
|
thus the page number shouldn't be incremented. A document containing 4 pages, page 1 with page number
|
|
'1', page 2 being the back side of page 1 containing conditions of sale and not numbered, page 3 with
|
|
page number '2', page 4 being the back side of page 3 containing conditions of sale and not numbered
|
|
again. What is actually being accomplished is simulating printing a 2 page document (with page numbers
|
|
1 and 2) on 2 sheets of preprinted paper, each containing the conditions of sale on the back side.
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66437" id="N66437"></a>2.2.8 Cross-references</h4><div class="div4">
|
|
<h5><a name="N66440" id="N66440"></a>2.2.8.1 Textual cross-references</h5><p>
|
|
We want the formatter to detect where the cross-referenced object is located (e.g. where on the page,
|
|
or on which page such as the previous page). We want to allow the insertion of variable text for
|
|
cross-references depending on both the page number on which the cross-reference appears and the target
|
|
page, for example 'see previous page' or 'see opposite page'.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66445" id="N66445"></a>2.2.8.2 Cross-reference to a specific region on a page</h5><p>
|
|
Support cross-refernces that refer to a specific region on a page (e.g. near the top, bottom, above on
|
|
this page etc.).
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66450" id="N66450"></a>2.2.8.3 Cross-reference ranges and coalescing</h5><p>
|
|
Allow in cross-referencing page number (and line number, column number etc) ranges that include
|
|
coalescing, joining etc.
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66455" id="N66455"></a>2.2.9 Markers</h4><div class="div4">
|
|
<h5><a name="N66458" id="N66458"></a>2.2.9.1 List all markers</h5><p>
|
|
Extend retrieve-marker and retrieve-table-marker to enable listing all markers on the page (e.g. to
|
|
list all index terms on the page or show a list of destinations in a list of hotels). Provide in a way
|
|
to ‘carry-over’ the markers from previous (not following) pages. This should be done in all cases, not
|
|
just in the case the current page contains no markers.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66463" id="N66463"></a>2.2.9.2 Organize all markers</h5><p>
|
|
When retrieving all markers of a page, add the ability to organize them. This includes removing
|
|
duplicates, sorting markers and indicating how to format them (e.g. each marker on a separate line or
|
|
separated with commas).
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66468" id="N66468"></a>2.2.9.3 Coalescing markers</h5><p>
|
|
Add support for coalescing markers, for example if you have at the top of the page ‘A - B’. Where A
|
|
and B are retrieved markers. If A and B are the same, the text should just be ‘A’.
|
|
</p></div><div class="div4">
|
|
<h5><a name="generalized-markers" id="generalized-markers"></a>2.2.9.4 Generalized markers</h5><p>
|
|
Add the ability to retrieve markers from any region into any region (and not just from the flow to the
|
|
static regions).
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66479" id="N66479"></a>2.2.10 Text before or after a break</h4><p>
|
|
Markings at particular page, column, table (horizontal and vertical) or region breaks. For example add
|
|
text ‘continued on next page’ or ‘continued from previous page’. The text may be just fixed text, or
|
|
retrieved from the page or a cross-reference.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66484" id="N66484"></a>2.2.11 Columns</h4><div class="div4">
|
|
<h5><a name="N66487" id="N66487"></a>2.2.11.1 Column balancing</h5><p>Add support for column balancing.</p></div><div class="div4">
|
|
<h5><a name="N66496" id="N66496"></a>2.2.11.2 Column spanning</h5><p>Add support for spanning over less than the total number of columns.</p><p>
|
|
<img src="images/column-spanning-normal.png" alt="column spanning normal">
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66525" id="N66525"></a>2.2.11.3 Spanning columns in nested formatting objects</h5><p>
|
|
Allow the span property to have effect when specified on formatting objects that are not direct
|
|
children of an fo:flow.
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66530" id="N66530"></a>2.2.11.4 Strong vs. weak spanning</h5><p>
|
|
Give control over how the text flows when spanning columns over the entire page. In the following
|
|
images, the numbers note the reading order of the specific location within the page.
|
|
</p><p>
|
|
<img src="images/strong-vs-weak-spanning.png" alt="strong vs weak spanning">
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66545" id="N66545"></a>2.2.11.5 Multiple columns of different widths</h5><p>Allow specifying multiple columns of different widths.</p></div><div class="div4">
|
|
<h5><a name="N66550" id="N66550"></a>2.2.11.6 Multi-column layout in all regions and block-containers</h5><p>
|
|
Allow specifying multiple columns in all regions and also in block-containers, not just the
|
|
region-body.
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66555" id="N66555"></a>2.2.12 Layout master set</h4><div class="div4">
|
|
<h5><a name="N66558" id="N66558"></a>2.2.12.1 Interleaving layout-master-set</h5><p>
|
|
Be able to define layout-master-sets not only at the top of the FO tree, but also interleaving
|
|
page-sequences, to allow users to define and change masters, such as simple-page-master and
|
|
page-sequence master, on the fly instead of having to specify all the masters in the beginning of the
|
|
FO tree. When traversing the FO tree in pre-order traversal, the master must be defined before it may
|
|
be referenced by a master-reference property.
|
|
</p></div><div class="div4">
|
|
<h5><a name="repeatable-sub-sequence-specifier" id="repeatable-sub-sequence-specifier"></a>2.2.12.2 Repeatable sub-sequence-specifier</h5><p>Have sets of pages repeatable within the same page-sequence.</p></div><div class="div4">
|
|
<h5><a name="N66575" id="N66575"></a>2.2.12.3
|
|
Change master every
|
|
<em>n</em>
|
|
pages
|
|
</h5><p>
|
|
Allow specifying that every
|
|
<em>n</em>
|
|
-th page, a different master should be used. This is a specific case of
|
|
<a href="#repeatable-sub-sequence-specifier"><b>2.2.12.2 Repeatable sub-sequence-specifier</b></a>
|
|
. For example, use master A for page 1, 2, 3, 4, then master B for page 5, then master A again for 6,
|
|
7, 8, 9 then master B for page 10, etc...
|
|
</p></div><div class="div4">
|
|
<h5><a name="N66589" id="N66589"></a>2.2.12.4 Background content</h5><p>
|
|
Add background content, such as images but also any other content, to a page master or region master.
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66598" id="N66598"></a>2.2.13 Variable-sized regions</h4><p>
|
|
Dynamically size the region-start, -end, -before and -after so that it sizes according to the content of
|
|
the region. This may well be not applied to the current simple-page-master. This is a simple case of
|
|
<a href="#adjustable-region-sizes"><b>2.2.14 Adjustable Region Sizes</b></a>
|
|
for the case where the page has a typical 'border layout'.
|
|
</p></div><div class="div3">
|
|
<h4><a name="adjustable-region-sizes" id="adjustable-region-sizes"></a>2.2.14 Adjustable Region Sizes</h4><p>
|
|
Support specifying which edge remains in its original position and which edge moves when the region grows
|
|
(or multiple edges may move). This applies to all of the dimensions. Related to this is the notion of an
|
|
anchored edge that can be anchored with respect to the page or with respect to another area. Some
|
|
overlapping may occur with other regions that aren’t part of the specified constraints. The anchors are
|
|
related to
|
|
<a href="#relationship-of-two-objects"><b>2.2.22 Relationship of two objects</b></a>
|
|
</p><p>
|
|
<img src="images/adjustable-region-sizes.png" alt="adjustable region sizes">
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66625" id="N66625"></a>2.2.15 Binding edge</h4><p>
|
|
Add support for specifying the binding edge. This is related to duplex/simplex of
|
|
<a href="#print-specific-properties"><b>8.3 Print specific properties</b></a>
|
|
.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66633" id="N66633"></a>2.2.16 Multi-directional page collation order</h4><p>
|
|
Add support for multi directional page collation order in a single document. For example a single book
|
|
where the front part starts in one language and the backside starts from another language. Another example
|
|
is that of Japanese magazines that combine vertical layout from the back and horizontal layout from the
|
|
front.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66638" id="N66638"></a>2.2.17 Spreads</h4><p>
|
|
Be able to treat two facing pages (a two page spread) as a single unit. For example to allow images to
|
|
cross the page boundaries.
|
|
</p></div><div class="div3">
|
|
<h4><a name="bleeds" id="bleeds"></a>2.2.18 Bleeds</h4><p>
|
|
Add support for bleeds. For example, bleeds allow an image to go beyond the page boundaries so that when
|
|
you print, bind and cut the paper you don’t have any white space showing. It has got to be in the context
|
|
of the output media, so this is related strongly to
|
|
<a href="#print-specific-properties"><b>8.3 Print specific properties</b></a>
|
|
.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66652" id="N66652"></a>2.2.19 Synchronize text of flows</h4><p>
|
|
Synchronize the text of flows that have a relationship to each other, and specify how near or how far they
|
|
can go from each other. The relationship between the text of the two flows may also be expressed using
|
|
some form of anchors. This is related to
|
|
<a href="#relationship-of-two-objects"><b>2.2.22 Relationship of two objects</b></a>
|
|
.
|
|
</p><p>
|
|
For example, this is needed to keep two translated paragraphs next to each other in a two column document
|
|
where one column is in one language and another column in another language.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66662" id="N66662"></a>2.2.20 Total block-progression-dimension</h4><p>
|
|
Allow users to specify the sum of the block-progression-dimensions of the generated areas instead or in
|
|
addition to specifying the block-progression-dimension of each generated instance.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66667" id="N66667"></a>2.2.21 Different page geometry based on flows' content</h4><p>
|
|
Support different page geometries based on the flows that have been exhausted and those that have still
|
|
content to be placed. For example, when having two regions A and B, both laid out next to each other on a
|
|
single page, once flow A is exhausted, make B use the entire available space on the page.
|
|
</p></div><div class="div3">
|
|
<h4><a name="relationship-of-two-objects" id="relationship-of-two-objects"></a>2.2.22 Relationship of two objects</h4><p>
|
|
Add support for expressing the relationship of two objects, and the distance that they can go apart. This
|
|
is a requirement that is necessary for other requirements that use the concept of anchors.
|
|
</p></div></div><div class="div2">
|
|
<h3><a name="N66678" id="N66678"></a>2.3 Feedback from pagination stage</h3><p>
|
|
Give the ability to use information from the pagination step of one formatting episode in determining layout
|
|
of the following formatting episode. This ability also allows making changes to the pages, reordering pages,
|
|
merging multiple flows and do many other post processing tasks. One example of using XSL-FO for this is by
|
|
representing the result of the first formatting episode each formatted page in a separate page-sequence, so
|
|
that when this XSL-FO instance is fed into an XSL-FO formatter again, the same amount of pages would be
|
|
generated as there are page sequences in the XSL-FO instance.
|
|
</p><p>
|
|
As a specific example, take the process that involves sending out a letter followed by a contract for a large
|
|
number of customers. This involves an envelope machine that will take the individual sheets of paper and put
|
|
them in an envelope. This process has the additional constraint that an envelope can only hold
|
|
<em>n</em>
|
|
pages, so when the letter + contract contain more than
|
|
<em>n</em>
|
|
pages, and extra sheet of paper must be produced that contains the address again, so that this contract can be
|
|
sent in multiple envelopes. This envelope machine is typically driven by OMR marks, which are lines or
|
|
markings on the paper that indicate which is the first/last page of the envelope. These markings typically
|
|
also include a checksum that contains the sheetnumber so that the envelope machine can detect when it took two
|
|
sheets at the same time. Adding these markings to the output involves logic that needs to know how many pages
|
|
are generated.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N66691" id="N66691"></a>2.4 Document collection</h3><p>
|
|
The working group will investigate relationships between multiple input documents and multiple output
|
|
documents.
|
|
</p><p>
|
|
The term 'document collection' refers to a document that is actually composed of multiple documents. Once this
|
|
concept of ‘document collection’ is defined, we can add features that need the relationships between multiple
|
|
documents such as a master index or hyperlink management.
|
|
|
|
</p><div class="div3">
|
|
<h4><a name="N66698" id="N66698"></a>2.4.1 Master index</h4><p>
|
|
Give users the ability to create a master index across multiple documents that contains all of the index
|
|
terms for the multiple sub-documents with references to the individual locations inside the sub-documents.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66703" id="N66703"></a>2.4.2 Hyperlink management</h4><p>Allow managing hyperlinks across multiple documents of a document collection.</p></div></div></div><div class="div1">
|
|
<h2><a name="N66708" id="N66708"></a>3 Expressions</h2><div class="div2">
|
|
<h3><a name="N66711" id="N66711"></a>3.1 Including information from formatting time</h3><p>
|
|
Modify the expression language to allow expressions that include information that’s only available at
|
|
formatting time.
|
|
</p><p>Some examples of this are the size of a block, the height of a line, etc.</p></div><div class="div2">
|
|
<h3><a name="N66718" id="N66718"></a>3.2 Pagination information</h3><p>
|
|
Be able to compute expressions that are based on information that is only available after the pagination
|
|
stage. For example, this allows to calculate the subtotal of the current page (as opposed to a running total
|
|
that is already supported in XSL 1.1 with table markers). Once this expression can be calculated, you can use
|
|
<a href="#output-result-of-expression"><b>3.3 Output result of expression</b></a>
|
|
to output its result .
|
|
</p></div><div class="div2">
|
|
<h3><a name="output-result-of-expression" id="output-result-of-expression"></a>3.3 Output result of expression</h3><p>
|
|
Allow users to output the result of expressions on area tree, traits, markers or text content. For example to
|
|
calculate the subtotal of a certain page (as opposed to a running total that is already supported in XSL 1.1
|
|
with table markers).
|
|
</p></div><div class="div2">
|
|
<h3><a name="N66732" id="N66732"></a>3.4 User defined units of measurement</h3><p>
|
|
Allow defining units of measurement in XSL-FO in terms of a known unit. This can currently already be done in
|
|
XSLT or by using XML entities, but we want to add new syntax to express this in XSL-FO functionality.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N66737" id="N66737"></a>3.5 Getting values of properties</h3><p>Add support for getting the formatting properties associated to the area as opposed to the content.</p><p>
|
|
For example, specify that the (formatted) width of a formatting object is equal to the (formatted) width of
|
|
another formatting object.
|
|
</p></div></div><div class="div1">
|
|
<h2><a name="inheritance" id="inheritance"></a>4 Inheritance</h2><div class="div2">
|
|
<h3><a name="N66748" id="N66748"></a>4.1 Inheritance down area tree</h3><p>
|
|
Inheritance of properties down the area tree (as opposed to the formatting object tree in previous versions of
|
|
XSL).
|
|
</p><p>
|
|
One example of this is inheritance with footnotes that should inherit the properties of the footnote are as
|
|
opposed to the properties of the area in the body that contains the referenced text.
|
|
</p><p>
|
|
Another example is the case where there are two regions on a page that contain the flowed text (text is flowed
|
|
for to Region A, then to region B). Region A has a black background and region B has a white background. The
|
|
text color should be white in region A and black in region B.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N66757" id="N66757"></a>4.2 Inheritance at reference area boundaries</h3><p>
|
|
Add the ability to specify whether inheritance is in effect at reference area boundaries, or you take the
|
|
initial value instead. For example you don’t want an indent on a table to be propagated by usual inheritance
|
|
into the content of the table-cells.
|
|
</p></div></div><div class="div1">
|
|
<h2><a name="composition" id="composition"></a>5 Composition</h2><div class="div2">
|
|
<h3><a name="N66770" id="N66770"></a>5.1 Fonts</h3><div class="div3">
|
|
<h4><a name="N66773" id="N66773"></a>5.1.1 Improved font support</h4><p>
|
|
This may include SVG font capabilities, such as referring to an external font pointed to with a URI, or
|
|
being able to define fonts like SVG fonts. For more information on SVG fonts, see
|
|
<a href="http://www.w3.org/TR/SVG11/fonts.html">Chapter 20 of SVG 1.1</a>
|
|
.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66786" id="N66786"></a>5.1.2 Unicode ranges</h4><p>
|
|
Use a different font-family (already supported by SVG) and different font-size (not yet supported by SVG)
|
|
for characters depending on the Unicode range.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66791" id="N66791"></a>5.1.3 Font dependent on script or language</h4><p>Make font-size and font-family dependent on the script or language.</p></div><div class="div3">
|
|
<h4><a name="N66796" id="N66796"></a>5.1.4 Font specific features</h4><p>
|
|
Add additional properties to give access to font specific features, e.g. in initial swash caps, oldstyle
|
|
figures, and/or other features such as those available in OpenType.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66801" id="N66801"></a>5.1.5 Kerning</h4><p>Allow users to specify constraints to control kerning.</p></div><div class="div3">
|
|
<h4><a name="N66806" id="N66806"></a>5.1.6 Ligatures</h4><p>
|
|
Allow users to specify constraints to control ligatures, like forcing the use of ligatures, or avoiding
|
|
the use of ligatures even though they are available. This requirement includes the large number of
|
|
parameters that may be necessary to control ligatures for those languages where the ligatures are font
|
|
dependent, such as Arabic.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66811" id="N66811"></a>5.1.7 XSL-FO inside other languages</h4><p>
|
|
Allow using fragments of XSL-FO inside other languages. One example is using inline or block level objects
|
|
into an SVG object.
|
|
</p></div></div><div class="div2">
|
|
<h3><a name="N66816" id="N66816"></a>5.2 Force line justification</h3><p>
|
|
Allow users to force line justification when the line length is within a certain range. For example, normally
|
|
the last line of a paragraph would not be justified, but if the last line is longer than a certain threshold,
|
|
justify it anyway.
|
|
</p></div><div class="div2">
|
|
<h3><a name="alignment-around-breaks" id="alignment-around-breaks"></a>5.3 Alignment around breaks</h3><p>
|
|
Currently XSL has justification parameters for 'all text but the last line' and the 'last line'. Add
|
|
properties to specify what the alignment should be for the 'last line before a break' and the 'first line
|
|
after a break'.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N66835" id="N66835"></a>5.4 Hanging punctuation</h3><p>Add support for hanging punctuation, both for western as non-western languages.</p><p>
|
|
<img src="images/hanging-punctuation.png" alt="hanging punctuation">
|
|
</p></div><div class="div2">
|
|
<h3><a name="N66850" id="N66850"></a>5.5 Tabs and tab stops</h3><p>
|
|
Add support for tabs and tab stops that people are used to from word processors. The main requirement for this
|
|
seems to be compatibility with other formats, mainly word processor formats.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N66859" id="N66859"></a>5.6 Word and letter spacing</h3><div class="div3">
|
|
<h4><a name="N66862" id="N66862"></a>5.6.1 Word and letter spacing exclusions</h4><p>
|
|
Allow excluding specific characters or Unicode classes (for example numerals) from word and letter
|
|
spacing.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66879" id="N66879"></a>5.6.2 Punctuation spacing</h4><p>
|
|
Add support to control spacing before (XSL-FO start direction) and after (XSL-FO end direction)
|
|
punctuation. For example in French inserting a quarter space before a colon.
|
|
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66884" id="N66884"></a>5.6.3 Specify priority between word and letter spacing</h4><p>Allow users to specify the priority between word and letter spacing.</p></div></div><div class="div2">
|
|
<h3><a name="N66889" id="N66889"></a>5.7 Hyphenation and line breaking</h3><p>
|
|
The following set of requirements is related to hyphenation. All hyphenation settings need to be
|
|
language-dependent so that you can set different values for the various languages you use in a given document.
|
|
</p><div class="div3">
|
|
<h4><a name="number-of-syllables" id="number-of-syllables"></a>5.7.1 Number of syllables</h4><p>
|
|
Allow specifying the number of syllables in addition to the number of characters to control hyphenation.
|
|
</p><div class="note"><p class="prefix"><b>Note:</b></p><p>
|
|
We are concerned how to divide things reliably in syllables. (This requirement comes from the Print
|
|
Workshop in Heidelberg.)
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66903" id="N66903"></a>5.7.2 Syllable widows</h4><p>
|
|
Add syllable level widow and orphan controls. We can only do this if we implement
|
|
<a href="#number-of-syllables"><b>5.7.1 Number of syllables</b></a>
|
|
.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66911" id="N66911"></a>5.7.3 Hyphenation exceptions</h4><p>
|
|
Allow specifying language-specific hyphenation exceptions. This could for example be done by providing a
|
|
pointer (e.g., <uri-specification>) to a list of language-specific hyphenation exceptions.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66916" id="N66916"></a>5.7.4 Line breaks without hyphen character</h4><p>
|
|
Allow the specification of a set of characters after which the composition process may introduce a line
|
|
break without inserting a hyphen character. For example for '/' characters in URLs.
|
|
</p></div><div class="div3">
|
|
<h4><a name="N66921" id="N66921"></a>5.7.5 Word widows</h4><p>
|
|
Add word level widow and orphan control. For example, don't allow single word, 3 words, etc. on a single
|
|
line or at the start of page.
|
|
</p><div class="note"><p class="prefix"><b>Note:</b></p><p>
|
|
We are concerned how to divide things reliably in words, for example in Chinese/Japanese/Korean or
|
|
Thai.
|
|
</p></div></div><div class="div3">
|
|
<h4><a name="N66929" id="N66929"></a>5.7.6 Minimum length of last line</h4><p>Be able to specify the minimum length of the last line.</p></div></div></div><div class="div1">
|
|
<h2><a name="N66934" id="N66934"></a>6 Further improved non-Western language support</h2><p>
|
|
Improve support for non-Western languages, such as Mongolian, Indic languages, Thai, Japanese, Chinese, etc. The
|
|
working group invites language experts to identify language specific features that are currently not yet supported
|
|
by XSL.
|
|
</p><p>
|
|
Specifically, the
|
|
<a href="http://www.w3.org/2007/02/japanese-layout/">Japanese Layout Taskforce</a>
|
|
is creating a document about requirements for general Japanese layout realized with technologies like CSS, SVG and
|
|
XSL-FO. The document is currently in draft stage and is being developed further by the Japanese participants in
|
|
the task force. This document will be an input to the XSL working group as a source of requirements.
|
|
</p><p>This document will be an input to the XSL working group as a source of requirements.</p></div><div class="div1">
|
|
<h2><a name="images" id="images"></a>7 Images</h2><div class="div2">
|
|
<h3><a name="N66967" id="N66967"></a>7.1 Cropping images</h3><p>
|
|
Cropping images, including bleed and non-rectangular cropping. See
|
|
<a href="#bleeds"><b>2.2.18 Bleeds</b></a>
|
|
and
|
|
<a href="#masks"><b>10.1 Masks</b></a>
|
|
.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N66978" id="N66978"></a>7.2 Rotate images in 90 degree increments</h3><p>Allow rotating images in 90 degree increments.</p></div><div class="div2">
|
|
<h3><a name="N66983" id="N66983"></a>7.3 Rotate images over arbitrary angles</h3><p>Allow rotating images over arbitrary angles.</p></div><div class="div2">
|
|
<h3><a name="N66988" id="N66988"></a>7.4 Callouts</h3><p>
|
|
Add support for callouts. Callouts are labels in a picture, overlaying text on top of a graphic (which
|
|
typically needs to be translatable). Allow users to make live links from the image or map to the text and vice
|
|
versa.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N66993" id="N66993"></a>7.5 Multi-page images</h3><p>Add support for access to individual images in multi-page image formats such as TIFF, PDF or SVG 1.2.</p></div></div><div class="div1">
|
|
<h2><a name="N66998" id="N66998"></a>8 Improvements for specific output formats or devices</h2><div class="div2">
|
|
<h3><a name="N67001" id="N67001"></a>8.1 Annotations that appear in output</h3><p>Add support for adding annotations that appear in the output, e.g. comments or text highlighting in PDF.</p></div><div class="div2">
|
|
<h3><a name="N67006" id="N67006"></a>8.2 Base URL</h3><p>Add support for setting the base URL for output formats that support this, such as PDF or HTML.</p></div><div class="div2">
|
|
<h3><a name="print-specific-properties" id="print-specific-properties"></a>8.3 Print specific properties</h3><p>Specifying print specific properties such as the following.</p><ul><li><p>Input/output trays</p></li><li><p>Duplex/simplex</p></li><li><p>Dpi depending on output format</p></li><li><p>Grayscaling or patterns or colors</p></li><li><p>Glossy paper (has influence on formatting as well)</p></li><li><p>Crop marks</p></li><li><p>Registration marks</p></li><li><p>
|
|
Bleeds (also described at
|
|
<a href="#bleeds"><b>2.2.18 Bleeds</b></a>
|
|
)
|
|
</p></li></ul><p>This will probably be done with a Job Control specification such as JDF.</p></div><div class="div2">
|
|
<h3><a name="N67047" id="N67047"></a>8.4 Marks for paper folding machines</h3><p>Allow adding marks for paper folding machines.</p></div></div><div class="div1">
|
|
<h2><a name="rendering" id="rendering"></a>9 Rendering</h2><div class="div2">
|
|
<h3><a name="N67056" id="N67056"></a>9.1 Animations with graphics</h3><p>Add support for animations contained within the graphics.</p><div class="note"><p class="prefix"><b>Note:</b></p><p>
|
|
This could be related to
|
|
<a href="#svg"><b>10 Collaboration with SVG</b></a>
|
|
.
|
|
</p></div></div><div class="div2">
|
|
<h3><a name="N67067" id="N67067"></a>9.2 Other types of animations</h3><p>
|
|
Add support for other types of animation. For example an ant crawling around the borders of a table, a
|
|
business chart with drilldown/zoom functionality, go to next page every 3 seconds.
|
|
</p><div class="note"><p class="prefix"><b>Note:</b></p><p>
|
|
This could be related to
|
|
<a href="#svg"><b>10 Collaboration with SVG</b></a>
|
|
.
|
|
</p></div></div><div class="div2">
|
|
<h3><a name="N67078" id="N67078"></a>9.3 Z-index</h3><p>
|
|
Improve absolute position, layering and positioning by extending the Z-index property so that it can cross
|
|
formatting object boundaries. Also support z-index on regions (also required for more complex page layout).
|
|
</p></div><div class="div2">
|
|
<h3><a name="N67083" id="N67083"></a>9.4 Border styles</h3><p>
|
|
You should be able to specify these border styles for individual borders or individual corners. Patterns may
|
|
be segmented, so that we have different borders for the corners etc.
|
|
</p><p>Add support for extensible border patterns, e.g. with numbers and thicknesses of lines, dashes.</p><p>Tiled graphics and images as borders, for example, for borders typically surrounding a stock certiticate.</p></div><div class="div2">
|
|
<h3><a name="N67092" id="N67092"></a>9.5 Rounded corners</h3><p>
|
|
Add support for rounded corners, e.g. for places where borders join, but also for the background with rounded
|
|
corners instead of 90 degree angles.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N67097" id="N67097"></a>9.6 Color support</h3><p>
|
|
Improved color support including things that SVG Print does. For example add device-specific CMYK color. Add
|
|
support for the color names that are supported in SVG. Fills/Shading/Vignettes
|
|
</p><div class="div3">
|
|
<h4><a name="N67102" id="N67102"></a>9.6.1 Transparency</h4><p>Allow specifying transparency and opacity/alpha values.</p></div></div></div><div class="div1">
|
|
<h2><a name="svg" id="svg"></a>10 Collaboration with SVG</h2><p>
|
|
For XSL-FO 2.0 we want to have a close collaboration between the XSL and SVG working groups. Wherever possible we
|
|
will try to use SVG functionality rather than reinventing our own. Working with SVG is part of the solution to
|
|
other requirements outlined in this document.
|
|
</p><p>
|
|
By implementing XSL-FO and SVG, some of the extra conformance criteria that apply are inheritance at language
|
|
boundaries, SVG transformations of XSL-FO result renditions, nesting languages.
|
|
</p><p>
|
|
One example of how SVG and XSL-FO can be used is shown in this picture, coming from the
|
|
<a href="http://www.w3.org/TR/2007/WD-SVGPrintPrimer12-20071221/">
|
|
SVG Print 1.2 Primer dated 21 December 2007
|
|
</a>
|
|
.
|
|
</p><img src="http://www.w3.org/TR/2007/WD-SVGPrintPrimer12-20071221/images/svg-xslfo-workflow.png" alt="SVG Print and XSL-FO workflow"><div class="div2">
|
|
<h3><a name="masks" id="masks"></a>10.1 Masks</h3><p>Add support for applying a mask (or clip shape) to an object.</p><p>The first picture explains the concept of a mask, where a certain piece of text is masked.</p><p>
|
|
<img src="images/mask-concept.png" alt="masks concept">
|
|
</p><p>The following picture explains the result of the mask.</p><p>
|
|
<img src="images/mask-result.png" alt="masks result">
|
|
</p></div><div class="div2">
|
|
<h3><a name="N67162" id="N67162"></a>10.2 Rotations</h3><p>Support rotations on any type of object (not just images) over arbitrary angles.</p></div><div class="div2">
|
|
<h3><a name="N67167" id="N67167"></a>10.3 Transformations</h3><p>Allow applying SVG type transformations to XSL areas.</p></div></div><div class="div1">
|
|
<h2><a name="N67172" id="N67172"></a>11 Other</h2><div class="div2">
|
|
<h3><a name="N67175" id="N67175"></a>11.1 Foreign objects</h3><p>
|
|
Improve the embedding of foreign objects inside XSL-FO to allow a tighter coupling. Examples of these are SVG,
|
|
MathML, XForms, etc.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N67180" id="N67180"></a>11.2 Metadata on objects</h3><p>Specify how metadata can be attached to individual objects.</p></div><div class="div2">
|
|
<h3><a name="N67185" id="N67185"></a>11.3 Generalized metadata</h3><p>
|
|
Specify metadata that may influence the output, like PDF keywords, producer, etc., or be used for other
|
|
purposes.
|
|
</p></div><div class="div2">
|
|
<h3><a name="N67190" id="N67190"></a>11.4 xml:base</h3><p>
|
|
Add support for xml:base. We need to understand where we want to use xml:base in the various steps of the XSL
|
|
Formatting Process.
|
|
|
|
</p><div class="note"><p class="prefix"><b>Note:</b></p><p>xml:base helps when you actually don’t have a serialized file on disk.</p></div></div><div class="div2">
|
|
<h3><a name="N67198" id="N67198"></a>11.5 Schema for XSL-FO</h3><p>Provide a schema for XSL-FO.</p></div><div class="div2">
|
|
<h3><a name="N67203" id="N67203"></a>11.6 Compatibility</h3><p>Existing XSL-FO documents should still be supported unchanged by XSL 2.0 processors.</p></div></div><div class="div1">
|
|
<h2><a name="N67288" id="N67288"></a>14 References</h2><dl><dt class="label"></dt><dd>XSL 1.0</dd><dt class="label"></dt><dd>XSL 1.1</dd></dl></div></div></body></html>
|