1<?xml version='1.0'?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                xmlns:fo="http://www.w3.org/1999/XSL/Format"
4                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
5                exclude-result-prefixes="doc"
6                version='1.0'>
7
8<!-- ********************************************************************
9     $Id$
10     ********************************************************************
11
12     This file is part of the XSL DocBook Stylesheet distribution.
13     See /README or http://nwalsh.com/docbook/xsl/ for copyright
14     and other information.
15
16     ******************************************************************** -->
17
18<doc:reference xmlns="">
19<referenceinfo>
20<releaseinfo role="meta">
21$Id$
22</releaseinfo>
23<author><surname>Walsh</surname>
24<firstname>Norman</firstname></author>
25<copyright><year>1999</year><year>2000</year>
26<holder>Norman Walsh</holder>
27</copyright>
28</referenceinfo>
29<title>Formatting Object Parameter Reference</title>
30
31<partintro>
32<section><title>Introduction</title>
33
34<para>This is technical reference documentation for the DocBook XSL
35Stylesheets; it documents (some of) the parameters, templates, and
36other elements of the stylesheets.</para>
37
38<para>This reference describes each of the Formatting Object
39Stylesheet parameters.  These are the <quote>easily
40customizable</quote> parts of the stylesheet.  If you want to specify
41an alternate value for one or more of these parameters, you can do so
42in a <quote>driver</quote> stylesheet.</para>
43
44<para>For example, if you want to turn on automatic section numbering,
45you might create a driver stylesheet like this:</para>
46
47<programlisting><![CDATA[<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
48                version='1.0'>
49
50  <xsl:import href="/path/to/fo/docbook.xsl"/>
51
52  <xsl:param name="section.autolabel" select="1"/>
53
54</xsl:stylesheet>]]></programlisting>
55
56<para>Naturally, you have to change the
57<sgmltag class='attribute'>href</sgmltag> attribute on
58<literal>&lt;xsl:import&gt;</literal>
59to point to <filename>docbook.xsl</filename>
60on your system.</para>
61
62<para>This is not intended to be <quote>user</quote> documentation.
63It is provided for developers writing customization layers for the
64stylesheets, and for anyone who's interested in <quote>how it
65works</quote>.</para>
66
67<para>Although I am trying to be thorough, this documentation is known
68to be incomplete. Don't forget to read the source, too :-)</para>
69</section>
70</partintro>
71</doc:reference>
72
73<xsl:param name="author.othername.in.middle" select="1"/>
74<xsl:param name="html.stylesheet">docbook.css</xsl:param>
75<xsl:param name="html.stylesheet.type">text/css</xsl:param>
76<xsl:param name="refentry.xref.manvolnum" select="1"/>
77<xsl:param name="show.comments" select="1"/>
78<xsl:param name="funcsynopsis.style">kr</xsl:param>
79<xsl:param name="funcsynopsis.decoration" select="1"/>
80<xsl:param name="refentry.generate.name" select="1"/>
81
82<xsl:param name="admon.graphics" select="0"/>
83<xsl:param name="admon.graphics.path">/images/</xsl:param>
84
85<!-- ==================================================================== -->
86<xsl:param name="admon.graphics.extension" select="'.png'" doc:type='string'/>
87
88<doc:param name="admon.graphics.extension" xmlns="">
89<refpurpose>Extension for admonition graphics</refpurpose>
90<refdescription>
91<para>Sets the extension to use on admonition graphics.</para>
92</refdescription>
93</doc:param>
94
95<xsl:param name="section.autolabel" select="0"/>
96<xsl:param name="section.label.includes.component.label" select="0"/>
97<xsl:param name="chapter.autolabel" select="1"/>
98<xsl:param name="appendix.autolabel" select="1"/>
99<xsl:param name="part.autolabel" select="1"/>
100<xsl:param name="preface.autolabel" select="0"/>
101
102<xsl:param name="biblioentry.item.separator">. </xsl:param>
103
104<!-- ==================================================================== -->
105<xsl:param name="qandadiv.autolabel" select="1"/>
106
107<doc:variable name="qandadiv.autolabel" xmlns="">
108<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
109<refdescription>
110<para>If true (non-zero), unlabeled qandadivs will be enumerated.
111</para>
112</refdescription>
113</doc:variable>
114
115<!-- ==================================================================== -->
116<xsl:param name="qanda.inherit.numeration" select="0"/>
117
118<doc:variable name="qanda.inherit.numeration" xmlns="">
119<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
120<refdescription>
121<para>If true (non-zero), numbered QandADiv elements and Questions and Answers inherit
122the numeration of the ancestors of the QandASet.
123</para>
124</refdescription>
125</doc:variable>
126
127<!-- ==================================================================== -->
128
129<xsl:param name="graphic.default.extension"></xsl:param>
130
131<doc:variable name="graphic.default.extension" xmlns="">
132<refpurpose>Default extension for graphic filenames</refpurpose>
133<refdescription>
134<para>If a <sgmltag>graphic</sgmltag> or <sgmltag>mediaobject</sgmltag>
135includes a reference to a filename that does not include an extension,
136and the <sgmltag class="attribute">format</sgmltag> attribute is
137<emphasis>unspecified</emphasis>, the default extension will be used.
138</para>
139</refdescription>
140</doc:variable>
141
142<!-- ==================================================================== -->
143<xsl:attribute-set name="formal.title.properties"
144                   use-attribute-sets="normal.para.spacing">
145  <xsl:attribute name="font-weight">bold</xsl:attribute>
146  <xsl:attribute name="font-size">12pt</xsl:attribute>
147  <xsl:attribute name="hyphenate">false</xsl:attribute>
148  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
149</xsl:attribute-set>
150
151<doc:attribute-set name="formal.title.properties" xmlns="">
152<refpurpose>Properties of formal object titles</refpurpose>
153<refdescription>
154<para>This attribute set is used to specify the properties of formal
155object titles.
156</para>
157</refdescription>
158</doc:attribute-set>
159
160<!-- ==================================================================== -->
161<xsl:attribute-set name="component.title.properties">
162  <xsl:attribute name="space-before.optimum">2em</xsl:attribute>
163  <xsl:attribute name="space-before.minimum">1.8em</xsl:attribute>
164  <xsl:attribute name="space-before.maximum">2.2em</xsl:attribute>
165  <xsl:attribute name="font-weight">bold</xsl:attribute>
166  <xsl:attribute name="font-size">18pt</xsl:attribute>
167  <xsl:attribute name="space-after.optimum">1.5em</xsl:attribute>
168  <xsl:attribute name="space-after.minimum">1.3em</xsl:attribute>
169  <xsl:attribute name="space-after.maximum">1.8em</xsl:attribute>
170  <xsl:attribute name="hyphenate">false</xsl:attribute>
171  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
172</xsl:attribute-set>
173
174<doc:attribute-set name="component.title.properties" xmlns="">
175<refpurpose>Properties of component titles</refpurpose>
176<refdescription>
177<para>This attribute set is used to specify the properties of component
178titles.
179</para>
180</refdescription>
181</doc:attribute-set>
182
183<!-- ==================================================================== -->
184<xsl:attribute-set name="admonition.title.properties">
185  <xsl:attribute name="font-size">14pt</xsl:attribute>
186  <xsl:attribute name="font-weight">bold</xsl:attribute>
187  <xsl:attribute name="hyphenate">false</xsl:attribute>
188  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
189</xsl:attribute-set>
190
191<doc:attribute-set name="admonition.title.properties" xmlns="">
192<refpurpose>Properties of admonition titles</refpurpose>
193<refdescription>
194<para>This attribute set is used to specify the properties of admonition
195titles.
196</para>
197</refdescription>
198</doc:attribute-set>
199
200<!-- ==================================================================== -->
201<xsl:attribute-set name="toc.margin.properties">
202  <xsl:attribute name="space-before.minimum">0.5em</xsl:attribute>
203  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
204  <xsl:attribute name="space-before.maximum">2em</xsl:attribute>
205  <xsl:attribute name="space-after.minimum">0.5em</xsl:attribute>
206  <xsl:attribute name="space-after.optimum">1em</xsl:attribute>
207  <xsl:attribute name="space-after.maximum">2em</xsl:attribute>
208</xsl:attribute-set>
209
210<!-- ==================================================================== -->
211<xsl:attribute-set name="verbatim.properties">
212  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
213  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
214  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
215</xsl:attribute-set>
216
217<!-- ==================================================================== -->
218<xsl:attribute-set name="monospace.verbatim.properties"
219                   use-attribute-sets="verbatim.properties">
220  <xsl:attribute name="font-family">
221    <xsl:value-of select="$monospace.font.family"/>
222  </xsl:attribute>
223  <xsl:attribute name="font-size">
224    <xsl:value-of select="$body.font.master * 0.9"/>
225    <xsl:text>pt</xsl:text>
226  </xsl:attribute>
227</xsl:attribute-set>
228
229<!-- ==================================================================== -->
230<xsl:attribute-set name="xref.properties">
231<!--
232  <xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
233  <xsl:attribute name="padding-start">1pt</xsl:attribute>
234  <xsl:attribute name="padding-end">1pt</xsl:attribute>
235-->
236</xsl:attribute-set>
237
238<doc:attribute-set name="xref.properties" xmlns="">
239<refpurpose>Visual properties of hotlinks</refpurpose>
240<refdescription>
241<para>This attribute set is used to specify properties of xrefs
242</para>
243</refdescription>
244</doc:attribute-set>
245
246<!-- ==================================================================== -->
247<xsl:param name="insert.xref.page.number" select="0" doc:type='boolean'/>
248<doc:param name="insert.xref.page.number" xmlns="">
249<refpurpose>Turns page numbers in xrefs on and off</refpurpose>
250<refdescription>
251<para>When equal to 1, this parameter triggers generation of page
252number citations after xrefs.
253</para>
254</refdescription>
255</doc:param>
256
257<!-- ==================================================================== -->
258<xsl:attribute-set name="normal.para.spacing">
259  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
260  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
261  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
262</xsl:attribute-set>
263
264<doc:attribute-set name="normal.para.spacing" xmlns="">
265<refpurpose>Spacing properties of normal paragraphs</refpurpose>
266<refdescription>
267<para>This attribute set is used to specify the spacing properties
268of normal paragraphs.
269</para>
270</refdescription>
271</doc:attribute-set>
272
273<!-- ==================================================================== -->
274
275<xsl:attribute-set name="list.block.spacing">
276  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
277  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
278  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
279</xsl:attribute-set>
280
281<doc:attribute-set name="list.block.spacing" xmlns="">
282<refpurpose>Spacing properties of list blocks</refpurpose>
283<refdescription>
284<para>This attribute set is used to specify the spacing properties
285of list blocks.
286</para>
287</refdescription>
288</doc:attribute-set>
289
290<!-- ==================================================================== -->
291
292<xsl:attribute-set name="list.item.spacing">
293  <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
294  <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
295  <xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
296</xsl:attribute-set>
297
298<doc:attribute-set name="list.item.spacing" xmlns="">
299<refpurpose>Spacing properties of list items</refpurpose>
300<refdescription>
301<para>This attribute set is used to specify the spacing properties
302of list items.
303</para>
304</refdescription>
305</doc:attribute-set>
306
307<!-- ==================================================================== -->
308<xsl:param name="rootid" select="''"/>
309
310<doc:param name="rootid" xmlns="">
311<refpurpose>Specify the root element to format</refpurpose>
312<refdescription>
313<para>If <parameter>rootid</parameter> is specified, it must be the
314value of an ID that occurs in the document being formatted. The entire
315document will be loaded and parsed, but formatting will begin at the
316element identified, rather than at the root. For example, this allows
317you to process only chapter 4 of a book.</para>
318<para>Because the entire document is available to the processor, automatic
319numbering, cross references, and other dependencies are correctly
320resolved.</para>
321</refdescription>
322</doc:param>
323
324<!-- ==================================================================== -->
325<xsl:param name="callout.graphics" select="'0'"/>
326
327<doc:param name="callout.graphics" xmlns="">
328<refpurpose>Use graphics for callouts?</refpurpose>
329<refdescription>
330<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
331circled numbers instead of "(1)", "(2)", etc.).
332Default graphics are provided in the distribution.
333</para>
334</refdescription>
335</doc:param>
336
337<!-- ==================================================================== -->
338<xsl:param name="callout.unicode" select="1"/>
339
340<doc:param name="callout.unicode" xmlns="">
341<refpurpose>First character to use for Unicode callouts</refpurpose>
342<refdescription>
343<para>If non-zero, callouts are presented with Unicode characters
344starting with the character specified. Zero indicates that Unicode
345callouts should not be used.
346</para>
347</refdescription>
348</doc:param>
349
350<!-- ==================================================================== -->
351<xsl:param name="callout.dingbats" select="'0'"/>
352
353<doc:param name="callout.dingbats" xmlns="">
354<refpurpose>Use Zapf Dingbats for callouts?</refpurpose>
355<refdescription>
356<para>If non-zero, callouts are presented with Zapf Dingbats.
357</para>
358</refdescription>
359</doc:param>
360
361<!-- ==================================================================== -->
362<xsl:param name="callout.unicode.start.character" select="10102"
363           doc:type='integer'/>
364
365<doc:param name="callout.unicode.start.character" xmlns="">
366<refpurpose>Number of the largest callout graphic</refpurpose>
367<refdescription>
368<para>If <parameter>callout.graphics</parameter>
369is non-zero, graphics are used to represent
370callout numbers. The value of
371<parameter>callout.graphics.number.limit</parameter>
372is
373the largest number for which a graphic exists. If the callout number
374exceeds this limit, the default presentation "(nnn)" will always
375be used.
376</para>
377</refdescription>
378</doc:param>
379
380<!-- ==================================================================== -->
381<xsl:param name="callout.unicode.number.limit" select="'10'"
382           doc:type='integer'/>
383
384<doc:param name="callout.unicode.number.limit" xmlns="">
385<refpurpose>Number of the largest callout graphic</refpurpose>
386<refdescription>
387<para>If <parameter>callout.graphics</parameter>
388is non-zero, graphics are used to represent
389callout numbers. The value of
390<parameter>callout.graphics.number.limit</parameter>
391is
392the largest number for which a graphic exists. If the callout number
393exceeds this limit, the default presentation "(nnn)" will always
394be used.
395</para>
396</refdescription>
397</doc:param>
398
399<!-- ==================================================================== -->
400<xsl:param name="callout.graphics.extension" select="'.png'"/>
401
402<doc:param name="callout.graphics.extension" xmlns="">
403<refpurpose>Extension for callout graphics</refpurpose>
404<refdescription>
405<para>Sets the extension to use on callout graphics.</para>
406</refdescription>
407</doc:param>
408
409<!-- ==================================================================== -->
410<xsl:param name="callout.graphics.path" select="'/images/callouts/'"/>
411
412<doc:param name="callout.graphics.path" xmlns="">
413<refpurpose>Path to callout graphics</refpurpose>
414<refdescription>
415<para>Sets the path, probably relative to the directory where the HTML
416files are created, to the callout graphics.
417</para>
418</refdescription>
419</doc:param>
420
421<!-- ==================================================================== -->
422<xsl:param name="callout.graphics.number.limit" select="'10'"/>
423
424<doc:param name="callout.graphics.number.limit" xmlns="">
425<refpurpose>Number of the largest callout graphic</refpurpose>
426<refdescription>
427<para>If <parameter>callout.graphics</parameter>
428is non-zero, graphics are used to represent
429callout numbers. The value of
430<parameter>callout.graphics.number.limit</parameter>
431is
432the largest number for which a graphic exists. If the callout number
433exceeds this limit, the default presentation "(nnn)" will always
434be used.
435</para>
436</refdescription>
437</doc:param>
438
439<!-- ==================================================================== -->
440<xsl:param name="use.extensions" select="'0'"/>
441
442<doc:param name="use.extensions" xmlns="">
443<refpurpose>Enable extensions</refpurpose>
444<refdescription>
445<para>If non-zero, extensions may be used. Each extension is
446further controlled by its own parameter. But if
447<parameter>use.extensions</parameter> is zero, no extensions will
448be used.
449</para>
450</refdescription>
451</doc:param>
452
453<!-- ==================================================================== -->
454<xsl:param name="textinsert.extension" select="'1'"/>
455
456<doc:param name="textinsert.extension" xmlns="">
457<refpurpose>Enable the textinsert extension element</refpurpose>
458<refdescription>
459<para>The textinsert extension element inserts the contents of a
460a file into the result tree (as text).
461</para>
462</refdescription>
463</doc:param>
464
465<!-- ==================================================================== -->
466<xsl:param name="linenumbering.extension" select="'1'"/>
467
468<doc:param name="linenumbering.extension" xmlns="">
469<refpurpose>Enable the line numbering extension</refpurpose>
470<refdescription>
471<para>If true, verbatim environments (elements that have the
472format='linespecific' notation attribute: address, literallayout,
473programlisting, screen, synopsis) that specify line numbering will
474have, surprise, line numbers.
475</para>
476</refdescription>
477</doc:param>
478
479<!-- ==================================================================== -->
480<xsl:param name="linenumbering.everyNth" select="'5'"/>
481
482<doc:param name="linenumbering.everyNth" xmlns="">
483<refpurpose>Indicate which lines should be numbered</refpurpose>
484<refdescription>
485<para>If line numbering is enabled, everyNth line will be numbered.
486</para>
487</refdescription>
488</doc:param>
489
490<!-- ==================================================================== -->
491<xsl:param name="linenumbering.width" select="'3'"/>
492
493<doc:param name="linenumbering.width" xmlns="">
494<refpurpose>Indicates the width of line numbers</refpurpose>
495<refdescription>
496<para>If line numbering is enabled, line numbers will appear right
497justified in a field "width" characters wide.
498</para>
499</refdescription>
500</doc:param>
501
502<!-- ==================================================================== -->
503<xsl:param name="linenumbering.separator" select="' '"/>
504
505<doc:param name="linenumbering.separator" xmlns="">
506<refpurpose>Specify a separator between line numbers and lines</refpurpose>
507<refdescription>
508<para>The separator is inserted between line numbers and lines in
509the verbatim environment.
510</para>
511</refdescription>
512</doc:param>
513
514<!-- ==================================================================== -->
515<xsl:param name="callouts.extension" select="'1'"/>
516
517<doc:param name="callouts.extension" xmlns="">
518<refpurpose>Enable the callout extension</refpurpose>
519<refdescription>
520<para>The callouts extension processes <sgmltag>areaset</sgmltag>
521elements in <sgmltag>ProgramListingCO</sgmltag> and other text-based
522callout elements.
523</para>
524</refdescription>
525</doc:param>
526
527<!-- ==================================================================== -->
528<xsl:param name="callout.defaultcolumn" select="'60'"/>
529
530<doc:param name="callout.defaultcolumn" xmlns="">
531<refpurpose>Indicates what column callouts appear in by default</refpurpose>
532<refdescription>
533<para>If a callout does not identify a column (for example, if it uses
534the <literal>linerange</literal> <sgmltag class="attribute">unit</sgmltag>),
535it will appear in the default column.
536</para>
537</refdescription>
538</doc:param>
539
540<!-- ==================================================================== -->
541<xsl:param name="tablecolumns.extension" select="'1'" doc:type='boolean'/>
542
543<doc:param name="tablecolumns.extension" xmlns="">
544<refpurpose>Enable the table columns extension function</refpurpose>
545<refdescription>
546<para>The table columns extension function adjusts the widths of table
547columns in the HTML result to more accurately reflect the specifications
548in the CALS table.
549</para>
550</refdescription>
551</doc:param>
552
553<!-- ==================================================================== -->
554<xsl:param name="nominal.table.width" select="'6in'" doc:type='length'/>
555
556<doc:param name="nominal.table.width" xmlns="">
557<refpurpose>The (absolute) nominal width of tables</refpurpose>
558<refdescription>
559<para>In order to convert CALS column widths into FO column widths, it
560is sometimes necessary to have an absolute table width to use for conversion
561of mixed absolute and relative widths. This value must be an absolute
562length (not a percentage).</para>
563</refdescription>
564</doc:param>
565
566<!-- ==================================================================== -->
567<xsl:param name="default.table.width" select="''" doc:type='length'/>
568
569<doc:param name="default.table.width" xmlns="">
570<refpurpose>The default width of tables</refpurpose>
571<refdescription>
572<para>If specified, this value will be used for the WIDTH attribute on
573tables that do not specify an alternate width (with the dbhtml processing
574instruction).</para>
575</refdescription>
576</doc:param>
577
578<!-- ==================================================================== -->
579<xsl:param name="paper.type" select="'USletter'"/>
580<doc:param name="paper.type" xmlns="">
581<refpurpose>Select the paper type</refpurpose>
582<refdescription>
583<para>The paper type is a convenient way to specify the paper size.
584The list of known paper sizes includes USletter and most of the A,
585B, and C sizes. See <literal>page.width.portrait</literal>, for example.
586</para>
587</refdescription>
588</doc:param>
589
590<!-- ==================================================================== -->
591<xsl:param name="page.orientation" select="'portrait'"/>
592<doc:param name="page.orientation" xmlns="">
593<refpurpose>Select the page orientation</refpurpose>
594<refdescription>
595<para>In portrait orientation, the short edge is horizontal; in
596landscape orientation, it is vertical.
597</para>
598</refdescription>
599</doc:param>
600
601<!-- ==================================================================== -->
602<xsl:param name="page.width.portrait">
603  <xsl:choose>
604    <xsl:when test="$paper.type = 'USletter'">8.5in</xsl:when>
605    <xsl:when test="$paper.type = '4A0'">1682mm</xsl:when>
606    <xsl:when test="$paper.type = '2A0'">1189mm</xsl:when>
607    <xsl:when test="$paper.type = 'A0'">841mm</xsl:when>
608    <xsl:when test="$paper.type = 'A1'">594mm</xsl:when>
609    <xsl:when test="$paper.type = 'A2'">420mm</xsl:when>
610    <xsl:when test="$paper.type = 'A3'">297mm</xsl:when>
611    <xsl:when test="$paper.type = 'A4'">210mm</xsl:when>
612    <xsl:when test="$paper.type = 'A5'">148mm</xsl:when>
613    <xsl:when test="$paper.type = 'A6'">105mm</xsl:when>
614    <xsl:when test="$paper.type = 'A7'">74mm</xsl:when>
615    <xsl:when test="$paper.type = 'A8'">52mm</xsl:when>
616    <xsl:when test="$paper.type = 'A9'">37mm</xsl:when>
617    <xsl:when test="$paper.type = 'A10'">26mm</xsl:when>
618    <xsl:when test="$paper.type = 'B0'">1000mm</xsl:when>
619    <xsl:when test="$paper.type = 'B1'">707mm</xsl:when>
620    <xsl:when test="$paper.type = 'B2'">500mm</xsl:when>
621    <xsl:when test="$paper.type = 'B3'">353mm</xsl:when>
622    <xsl:when test="$paper.type = 'B4'">250mm</xsl:when>
623    <xsl:when test="$paper.type = 'B5'">176mm</xsl:when>
624    <xsl:when test="$paper.type = 'B6'">125mm</xsl:when>
625    <xsl:when test="$paper.type = 'B7'">88mm</xsl:when>
626    <xsl:when test="$paper.type = 'B8'">62mm</xsl:when>
627    <xsl:when test="$paper.type = 'B9'">44mm</xsl:when>
628    <xsl:when test="$paper.type = 'B10'">31mm</xsl:when>
629    <xsl:when test="$paper.type = 'C0'">917mm</xsl:when>
630    <xsl:when test="$paper.type = 'C1'">648mm</xsl:when>
631    <xsl:when test="$paper.type = 'C2'">458mm</xsl:when>
632    <xsl:when test="$paper.type = 'C3'">324mm</xsl:when>
633    <xsl:when test="$paper.type = 'C4'">229mm</xsl:when>
634    <xsl:when test="$paper.type = 'C5'">162mm</xsl:when>
635    <xsl:when test="$paper.type = 'C6'">114mm</xsl:when>
636    <xsl:when test="$paper.type = 'C7'">81mm</xsl:when>
637    <xsl:when test="$paper.type = 'C8'">57mm</xsl:when>
638    <xsl:when test="$paper.type = 'C9'">40mm</xsl:when>
639    <xsl:when test="$paper.type = 'C10'">28mm</xsl:when>
640    <xsl:otherwise>8.5in</xsl:otherwise>
641  </xsl:choose>
642</xsl:param>
643
644<doc:param name="page.width.portrait" xmlns="">
645<refpurpose>Specify the physical size of the short edge of the page</refpurpose>
646<refdescription>
647<para>The portrait page width is the length of the short
648edge of the physical page.
649</para>
650</refdescription>
651</doc:param>
652
653<!-- ==================================================================== -->
654<xsl:param name="page.height.portrait">
655  <xsl:choose>
656    <xsl:when test="$paper.type = 'A4landscape'">210mm</xsl:when>
657    <xsl:when test="$paper.type = 'USletter'">11in</xsl:when>
658    <xsl:when test="$paper.type = 'USlandscape'">8.5in</xsl:when>
659    <xsl:when test="$paper.type = '4A0'">2378mm</xsl:when>
660    <xsl:when test="$paper.type = '2A0'">1682mm</xsl:when>
661    <xsl:when test="$paper.type = 'A0'">1189mm</xsl:when>
662    <xsl:when test="$paper.type = 'A1'">841mm</xsl:when>
663    <xsl:when test="$paper.type = 'A2'">594mm</xsl:when>
664    <xsl:when test="$paper.type = 'A3'">420mm</xsl:when>
665    <xsl:when test="$paper.type = 'A4'">297mm</xsl:when>
666    <xsl:when test="$paper.type = 'A5'">210mm</xsl:when>
667    <xsl:when test="$paper.type = 'A6'">148mm</xsl:when>
668    <xsl:when test="$paper.type = 'A7'">105mm</xsl:when>
669    <xsl:when test="$paper.type = 'A8'">74mm</xsl:when>
670    <xsl:when test="$paper.type = 'A9'">52mm</xsl:when>
671    <xsl:when test="$paper.type = 'A10'">37mm</xsl:when>
672    <xsl:when test="$paper.type = 'B0'">1414mm</xsl:when>
673    <xsl:when test="$paper.type = 'B1'">1000mm</xsl:when>
674    <xsl:when test="$paper.type = 'B2'">707mm</xsl:when>
675    <xsl:when test="$paper.type = 'B3'">500mm</xsl:when>
676    <xsl:when test="$paper.type = 'B4'">353mm</xsl:when>
677    <xsl:when test="$paper.type = 'B5'">250mm</xsl:when>
678    <xsl:when test="$paper.type = 'B6'">176mm</xsl:when>
679    <xsl:when test="$paper.type = 'B7'">125mm</xsl:when>
680    <xsl:when test="$paper.type = 'B8'">88mm</xsl:when>
681    <xsl:when test="$paper.type = 'B9'">62mm</xsl:when>
682    <xsl:when test="$paper.type = 'B10'">44mm</xsl:when>
683    <xsl:when test="$paper.type = 'C0'">1297mm</xsl:when>
684    <xsl:when test="$paper.type = 'C1'">917mm</xsl:when>
685    <xsl:when test="$paper.type = 'C2'">648mm</xsl:when>
686    <xsl:when test="$paper.type = 'C3'">458mm</xsl:when>
687    <xsl:when test="$paper.type = 'C4'">324mm</xsl:when>
688    <xsl:when test="$paper.type = 'C5'">229mm</xsl:when>
689    <xsl:when test="$paper.type = 'C6'">162mm</xsl:when>
690    <xsl:when test="$paper.type = 'C7'">114mm</xsl:when>
691    <xsl:when test="$paper.type = 'C8'">81mm</xsl:when>
692    <xsl:when test="$paper.type = 'C9'">57mm</xsl:when>
693    <xsl:when test="$paper.type = 'C10'">40mm</xsl:when>
694    <xsl:otherwise>11in</xsl:otherwise>
695  </xsl:choose>
696</xsl:param>
697
698<doc:param name="page.height.portrait" xmlns="">
699<refpurpose>Specify the physical size of the long edge of the page</refpurpose>
700<refdescription>
701<para>The portrait page height is the length of the long
702edge of the physical page.
703</para>
704</refdescription>
705</doc:param>
706
707<!-- ==================================================================== -->
708<xsl:param name="page.width">
709  <xsl:choose>
710    <xsl:when test="$page.orientation = 'portrait'">
711      <xsl:value-of select="$page.width.portrait"/>
712    </xsl:when>
713    <xsl:otherwise>
714      <xsl:value-of select="$page.height.portrait"/>
715    </xsl:otherwise>
716  </xsl:choose>
717</xsl:param>
718
719<doc:param name="page.width" xmlns="">
720<refpurpose>The width of the physical page</refpurpose>
721<refdescription>
722<para>The page width is generally calculated from the
723<literal>paper.type</literal> and
724<literal>page.orientation</literal>.
725</para>
726</refdescription>
727</doc:param>
728
729<!-- ==================================================================== -->
730<xsl:param name="page.height">
731  <xsl:choose>
732    <xsl:when test="$page.orientation = 'portrait'">
733      <xsl:value-of select="$page.height.portrait"/>
734    </xsl:when>
735    <xsl:otherwise>
736      <xsl:value-of select="$page.width.portrait"/>
737    </xsl:otherwise>
738  </xsl:choose>
739</xsl:param>
740
741<doc:param name="page.height" xmlns="">
742<refpurpose>The height of the physical page</refpurpose>
743<refdescription>
744<para>The page height is generally calculated from the
745<literal>paper.type</literal> and
746<literal>page.orientation</literal>.
747</para>
748</refdescription>
749</doc:param>
750
751<!-- ==================================================================== -->
752<xsl:param name="double.sided" select="'0'"/>
753
754<doc:param name="double.sided" xmlns="">
755<refpurpose>Is the document to be printed double sided?</refpurpose>
756<refdescription>
757<para>Double-sided documents are printed with a slightly wider margin
758on the binding edge of the page.
759</para>
760<para>FIXME: The current set of parameters does not take writing direction
761into account.</para>
762</refdescription>
763</doc:param>
764
765<!-- ==================================================================== -->
766<xsl:param name="column.count" select="'1'"/>
767
768<doc:param name="column.count" xmlns="">
769<refpurpose>Specifies the number of columns of text on the page</refpurpose>
770<refdescription>
771<para>The specified number of columns of text will appear on each page.
772</para>
773</refdescription>
774</doc:param>
775
776<!-- ==================================================================== -->
777<xsl:param name="region.after.extent" select="'12pt'"/>
778
779<doc:param name="region.after.extent" xmlns="">
780<refpurpose>Specifies the height of the footer.</refpurpose>
781<refdescription>
782<para>The region after extent is the height of the area where footers
783are printed.
784</para>
785</refdescription>
786</doc:param>
787
788<!-- ==================================================================== -->
789<xsl:param name="region.before.extent" select="'12pt'"/>
790
791<doc:param name="region.before.extent" xmlns="">
792<refpurpose>Specifies the height of the header</refpurpose>
793<refdescription>
794<para>The region before extent is the height of the area where headers
795are printed.
796</para>
797</refdescription>
798</doc:param>
799
800<!-- ==================================================================== -->
801<xsl:param name="page.margin.top">1in</xsl:param>
802
803<doc:param name="page.margin.top" xmlns="">
804<refpurpose>The top margin of the page</refpurpose>
805<refdescription>
806<para>The top page margin is the distance from the physical top of the
807page to the first line of text (body or header).
808</para>
809</refdescription>
810</doc:param>
811
812<!-- ==================================================================== -->
813<xsl:param name="page.margin.bottom">1in</xsl:param>
814
815<doc:param name="page.margin.bottom" xmlns="">
816<refpurpose>The bottom margin of the page</refpurpose>
817<refdescription>
818<para>The bottom page margin is the distance from the physical bottom of
819the page to the last line of text (body or footer).
820</para>
821</refdescription>
822</doc:param>
823
824<!-- ==================================================================== -->
825<xsl:param name="page.margin.inner">
826  <xsl:choose>
827    <xsl:when test="$double.sided != 0">1.25in</xsl:when>
828    <xsl:otherwise>1in</xsl:otherwise>
829  </xsl:choose>
830</xsl:param>
831
832<doc:param name="page.margin.inner" xmlns="">
833<refpurpose>The inner page margin</refpurpose>
834<refdescription>
835<para>The inner page margin is the distance from binding edge of the
836page to the first column of text. In the left-to-right, top-to-bottom writing
837direction, this is the left margin of recto pages.</para>
838<para>The inner and outer margins are usually the same unless the output
839is double-sided.
840</para>
841</refdescription>
842</doc:param>
843
844<!-- ==================================================================== -->
845<xsl:param name="page.margin.outer">
846  <xsl:choose>
847    <xsl:when test="$double.sided != 0">0.75in</xsl:when>
848    <xsl:otherwise>10pc</xsl:otherwise>
849  </xsl:choose>
850</xsl:param>
851
852<doc:param name="page.margin.outer" xmlns="">
853<refpurpose>The outer page margin</refpurpose>
854<refdescription>
855<para>The outer page margin is the distance from non-binding edge of the
856page to the last column of text. In the left-to-right, top-to-bottom writing
857direction, this is the right margin of recto pages.</para>
858<para>The inner and outer margins are usually the same unless the output
859is double-sided.
860</para>
861</refdescription>
862</doc:param>
863
864<!-- ==================================================================== -->
865<xsl:param name="body.margin.bottom">24pt</xsl:param>
866
867<doc:param name="body.margin.bottom" xmlns="">
868<refpurpose>The bottom margin of the body text</refpurpose>
869<refdescription>
870<para>The body bottom margin is the distance from the last line of text
871in the page body to the bottom page margin. Note that the page footer, if
872any, appears in the space between the body bottom margin and the page
873bottom margin.
874</para>
875</refdescription>
876</doc:param>
877
878<!-- ==================================================================== -->
879<xsl:param name="body.margin.top">24pt</xsl:param>
880
881<doc:param name="body.margin.top" xmlns="">
882<refpurpose>FIXME:</refpurpose>
883<refdescription>
884<para>The body top margin is the distance from the page top margin to
885the first line of text
886in the page body. Note that the page header, if
887any, appears in the space between the page top margin and the body
888top margin.
889</para>
890</refdescription>
891</doc:param>
892
893<!-- ==================================================================== -->
894<xsl:param name="body.font.family">Times Roman</xsl:param>
895
896<doc:param name="body.font.family" xmlns="">
897<refpurpose>The default font family for body text</refpurpose>
898<refdescription>
899<para>The body font family is the default font used for text in the page body.
900</para>
901</refdescription>
902</doc:param>
903
904<!-- ==================================================================== -->
905<xsl:param name="title.font.family">Helvetica</xsl:param>
906
907<doc:param name="title.font.family" xmlns="">
908<refpurpose>The default font family for titles</refpurpose>
909<refdescription>
910<para>The title font family is used for titles (chapter, section, figure,
911etc.)
912</para>
913</refdescription>
914</doc:param>
915
916<!-- ==================================================================== -->
917<xsl:param name="monospace.font.family">Courier</xsl:param>
918
919<doc:param name="monospace.font.family" xmlns="">
920<refpurpose>The default font family for monospace environments</refpurpose>
921<refdescription>
922<para>The monospace font family is used for verbatim environments
923(program listings, screens, etc.).
924</para>
925</refdescription>
926</doc:param>
927
928<!-- ==================================================================== -->
929<xsl:param name="sans.font.family">Helvetica</xsl:param>
930
931<doc:param name="sans.font.family" xmlns="">
932<refpurpose>The default sans-serif font family</refpurpose>
933<refdescription>
934<para>The default sans-serif font family. At the present, this isn't
935actually used by the stylesheets.
936</para>
937</refdescription>
938</doc:param>
939
940<!-- ==================================================================== -->
941<xsl:param name="body.font.master">10</xsl:param>
942
943<doc:param name="body.font.master" xmlns="">
944<refpurpose>Specifies the default point size for body text</refpurpose>
945<refdescription>
946<para>The body font size is specified in two parameters
947(<varname>body.font.master</varname> and <varname>body.font.size</varname>)
948so that math can be performed on the font size by XSLT.
949</para>
950</refdescription>
951</doc:param>
952
953<!-- ==================================================================== -->
954<xsl:param name="body.font.size">
955 <xsl:value-of select="$body.font.master"/><xsl:text>pt</xsl:text>
956</xsl:param>
957
958<doc:param name="body.font.size" xmlns="">
959<refpurpose>Specifies the default font size for body text</refpurpose>
960<refdescription>
961<para>The body font size is specified in two parameters
962(<varname>body.font.master</varname> and <varname>body.font.size</varname>)
963so that math can be performed on the font size by XSLT.
964</para>
965</refdescription>
966</doc:param>
967
968<!-- ==================================================================== -->
969<xsl:param name="footnote.font.size">
970 <xsl:value-of select="$body.font.master * 0.8"/><xsl:text>pt</xsl:text>
971</xsl:param>
972
973<doc:param name="footnote.font.size" xmlns="">
974<refpurpose>The font size for footnotes</refpurpose>
975<refdescription>
976<para>The footnote font size is used for...footnotes!
977</para>
978</refdescription>
979</doc:param>
980
981<!-- ==================================================================== -->
982<!-- general H&J setup -->
983<xsl:param name="hyphenate">true</xsl:param>
984
985<doc:param name="hyphenate" xmlns="">
986<refpurpose>Specify hyphenation behavior</refpurpose>
987<refdescription>
988<para>If true, words may be hyphenated. Otherwise, they may not.
989</para>
990</refdescription>
991</doc:param>
992
993<!-- ==================================================================== -->
994<xsl:param name="alignment">justify</xsl:param>
995
996<doc:param name="alignment" xmlns="">
997<refpurpose>Specify the default text alignment</refpurpose>
998<refdescription>
999<para>The default text alignment is used for most body text.
1000</para>
1001</refdescription>
1002</doc:param>
1003
1004<!-- ==================================================================== -->
1005<xsl:param name="stylesheet.result.type" select="'fo'"/>
1006
1007<doc:param name="stylesheet.result.type" xmlns="">
1008<refpurpose>Identifies the output format of this stylesheet</refpurpose>
1009<refdescription>
1010<para>The extension functions need to know if the output format
1011is HTML ('html') or XSL Formatting Objects ('fo'). This variable answers
1012that question. Valid settings are 'html' or 'fo'.</para>
1013</refdescription>
1014</doc:param>
1015
1016<!-- ==================================================================== -->
1017<xsl:param name="generate.component.toc" select="0" doc:type='boolean'/>
1018
1019<doc:param name="generate.component.toc" xmlns="">
1020<refpurpose>Generate a table of contents for components?</refpurpose>
1021<refdescription>
1022<para>If non-zero, a table of contents is generated at the beginning
1023of each component (chapters, appendixes, etc.)
1024</para>
1025</refdescription>
1026</doc:param>
1027
1028<!-- ==================================================================== -->
1029<xsl:param name="generate.division.toc" select="1" doc:type='boolean'/>
1030
1031<doc:param name="generate.division.toc" xmlns="">
1032<refpurpose>Generate a table of contents for divisions?</refpurpose>
1033<refdescription>
1034<para>If non-zero, a table of contents is generated at the beginning
1035of each division (sets, books, etc.)
1036</para>
1037</refdescription>
1038</doc:param>
1039
1040<!-- ==================================================================== -->
1041
1042<xsl:param name="generate.book.toc" select="'1'" doc:type='boolean'/>
1043<xsl:param name="process.source.toc" select='0' doc:type='boolean'/>
1044<xsl:param name="process.empty.source.toc" select='0' doc:type='boolean'/>
1045
1046<!-- ==================================================================== -->
1047<xsl:param name="generate.division.figure.lot" select="1" doc:type='boolean'/>
1048
1049<doc:param name="generate.division.figure.lot" xmlns="">
1050<refpurpose>Generate a list of titles for Figures?</refpurpose>
1051<refdescription>
1052<para>If non-zero, a list of titles is generated for Figures.
1053</para>
1054</refdescription>
1055</doc:param>
1056
1057<!-- ==================================================================== -->
1058<xsl:param name="generate.division.example.lot" select="1" doc:type='boolean'/>
1059
1060<doc:param name="generate.division.example.lot" xmlns="">
1061<refpurpose>Generate a list of titles for Examples?</refpurpose>
1062<refdescription>
1063<para>If non-zero, a list of titles is generated for Examples.
1064</para>
1065</refdescription>
1066</doc:param>
1067
1068<!-- ==================================================================== -->
1069<xsl:param name="generate.division.equation.lot" select="1" doc:type='boolean'/>
1070
1071<doc:param name="generate.division.equation.lot" xmlns="">
1072<refpurpose>Generate a list of titles for Equations?</refpurpose>
1073<refdescription>
1074<para>If non-zero, a list of titles is generated for Equations.
1075</para>
1076</refdescription>
1077</doc:param>
1078
1079<!-- ==================================================================== -->
1080<xsl:param name="generate.division.table.lot" select="1" doc:type='boolean'/>
1081
1082<doc:param name="generate.division.table.lot" xmlns="">
1083<refpurpose>Generate a list of titles for Tables?</refpurpose>
1084<refdescription>
1085<para>If non-zero, a list of titles is generated for Tables.
1086</para>
1087</refdescription>
1088</doc:param>
1089
1090<!-- ==================================================================== -->
1091<xsl:param name="generate.book.figure.lot" select="1" doc:type='boolean'/>
1092<xsl:param name="generate.book.example.lot" select="1" doc:type='boolean'/>
1093<xsl:param name="generate.book.equation.lot" select="1" doc:type='boolean'/>
1094<xsl:param name="generate.book.table.lot" select="1" doc:type='boolean'/>
1095
1096<!-- ==================================================================== -->
1097<xsl:param name="passivetex.extensions" select="0" doc:type='boolean'/>
1098
1099<doc:param name="passivetex.extensions" xmlns="">
1100<refpurpose>Enable PassiveTeX extensions?</refpurpose>
1101<refdescription>
1102<para>If non-zero,
1103<ulink url="http://users.ox.ac.uk/~rahtz/passivetex/">PassiveTeX</ulink>
1104extensions will be used. At present, this consists of PDF bookmarks
1105and sorted index terms.
1106</para>
1107</refdescription>
1108</doc:param>
1109
1110<!-- ==================================================================== -->
1111<xsl:param name="arbortext.extensions" select="0" doc:type='boolean'/>
1112
1113<doc:param name="arbortext.extensions" xmlns="">
1114<refpurpose>Enable Arbortext extensions?</refpurpose>
1115<refdescription>
1116<para>If non-zero,
1117<ulink url="http://www.arbortext.com/">Arbortext</ulink>
1118extensions will be used.
1119</para>
1120</refdescription>
1121</doc:param>
1122
1123<!-- ==================================================================== -->
1124<xsl:param name="fop.extensions" select="0" doc:type='boolean'/>
1125
1126<doc:param name="fop.extensions" xmlns="">
1127<refpurpose>Enable FOP extensions?</refpurpose>
1128<refdescription>
1129<para>If non-zero,
1130<ulink url="http://xml.apache.org/fop/">FOP</ulink>
1131extensions will be used. At present, this consists of PDF bookmarks.
1132</para>
1133</refdescription>
1134</doc:param>
1135
1136<!-- ==================================================================== -->
1137<xsl:param name="default.units" select="'pt'" doc:type='list'
1138           doc:list='cm mm in pt pc px em'/>
1139
1140<doc:param name="default.units" xmlns="">
1141<refpurpose>Default units for an unqualified dimension</refpurpose>
1142<refdescription>
1143<para>If an unqualified dimension is encountered (for example, in a
1144graphic width), the <parameter>default-units</parameter> will be used for the
1145units. Unqualified dimensions are not allowed in XSL Formatting Objects.
1146</para>
1147</refdescription>
1148</doc:param>
1149
1150<!-- ==================================================================== -->
1151
1152<xsl:param name="generate.index" select="1" doc:type='boolean'/>
1153
1154<!-- ==================================================================== -->
1155<xsl:param name="label.from.part" select="'0'" doc:type='boolean'/>
1156
1157<doc:param name="label.from.part" xmlns="">
1158<refpurpose>Renumber chapters in each part?</refpurpose>
1159<refdescription>
1160<para>If <parameter>label.from.part</parameter> is non-zero, components
1161(<sgmltag>chapter</sgmltag>s, <sgmltag>appendixe</sgmltag>s, etc.)
1162will be numbered from 1 in each <sgmltag>part</sgmltag>. Otherwise,
1163they will be numbered monotonically throughout each
1164<sgmltag>book</sgmltag>.
1165</para>
1166</refdescription>
1167</doc:param>
1168
1169</xsl:stylesheet>
1170
1171