]> git.stg.codes - stg.git/blob - doc/xslt/fo/pi.xsl
Moved connection-related functions into a separate file.
[stg.git] / doc / xslt / fo / pi.xsl
1 <?xml version='1.0'?>
2 <xsl:stylesheet
3   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4   xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
5   xmlns:fo="http://www.w3.org/1999/XSL/Format"
6   xmlns:xlink="http://www.w3.org/1999/xlink"
7   exclude-result-prefixes="doc xlink"
8   version='1.0'>
9
10 <!-- ********************************************************************
11      $Id: pi.xsl 8487 2009-07-14 21:43:36Z bobstayton $
12      ********************************************************************
13
14      This file is part of the XSL DocBook Stylesheet distribution.
15      See ../README or http://docbook.sf.net/release/xsl/current/ for
16      copyright and other information.
17
18      ******************************************************************** -->
19
20 <doc:reference xmlns=""><info><title>FO Processing Instruction Reference</title>
21     <releaseinfo role="meta">
22       $Id: pi.xsl 8487 2009-07-14 21:43:36Z bobstayton $
23     </releaseinfo>
24   </info>
25
26   <partintro id="partintro">
27     <title>Introduction</title>
28
29     <para>This is generated reference documentation for all
30       user-specifiable processing instructions (PIs) in the DocBook
31       XSL stylesheets for FO output.
32       <note>
33         <para>You add these PIs at particular points in a document to
34           cause specific “exceptions” to formatting/output behavior. To
35           make global changes in formatting/output behavior across an
36           entire document, it’s better to do it by setting an
37           appropriate stylesheet parameter (if there is one).</para>
38       </note>
39     </para>
40   </partintro>
41 </doc:reference>
42
43 <!-- ==================================================================== -->
44
45 <doc:pi name="dbfo_background-color" xmlns="">
46   <refpurpose>Sets background color for an image</refpurpose>
47   <refdescription>
48     <para>Use the <tag class="xmlpi">dbfo background-color</tag> PI before or
49       after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
50       <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
51       sibling to the element, to set a background color for the
52       image.</para>
53   </refdescription>
54   <refsynopsisdiv>
55     <synopsis><tag class="xmlpi">dbfo background-color="<replaceable>color</replaceable>"</tag></synopsis>
56   </refsynopsisdiv>
57   <refparameter>
58     <variablelist>
59       <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
60         <listitem>
61           <para>An HTML color value</para>
62         </listitem>
63       </varlistentry>
64     </variablelist>
65   </refparameter>
66   <refsee role="tcg">
67     <para><link role="tcg"
68         xlink:href="BGcolor.html"
69         >Background color</link></para>
70   </refsee>
71 </doc:pi>
72 <xsl:template name="pi.dbfo_background-color">
73   <xsl:param name="node" select="."/>
74   <xsl:call-template name="dbfo-attribute">
75     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
76     <xsl:with-param name="attribute" select="'background-color'"/>
77   </xsl:call-template>
78 </xsl:template>
79
80 <doc:pi name="dbfo_bgcolor" xmlns="">
81   <refpurpose>Sets background color on a table row or table cell</refpurpose>
82   <refdescription>
83     <para>Use the <tag class="xmlpi">dbfo bgcolor</tag> PI as child of a table row
84       or cell to set a background color for that table row or cell.</para>
85     <para>This PI works for both CALS and HTML tables.</para>
86   </refdescription>
87   <refsynopsisdiv>
88     <synopsis><tag class="xmlpi">dbfo bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
89   </refsynopsisdiv>
90   <refparameter>
91     <variablelist>
92       <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
93         <listitem>
94           <para>An HTML color value</para>
95         </listitem>
96       </varlistentry>
97     </variablelist>
98   </refparameter>
99   <refsee role="tcg">
100     <para><link role="tcg"
101         xlink:href="BGtableColor.html#CellBGColor"
102         >Cell background color</link></para>
103   </refsee>
104 </doc:pi>
105 <xsl:template name="pi.dbfo_bgcolor">
106   <xsl:param name="node" select="."/>
107   <xsl:call-template name="dbfo-attribute">
108     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
109     <xsl:with-param name="attribute" select="'bgcolor'"/>
110   </xsl:call-template>
111 </xsl:template>
112
113 <doc:pi name="dbfo_float-type" xmlns="">
114   <refpurpose>Specifies float behavior for a sidebar</refpurpose>
115   <refdescription>
116     <para>Use the <tag class="xmlpi">dbfo float-type</tag> PI to specify the float
117       behavior for a <tag>sidebar</tag> (to cause the sidebar to be
118       displayed as a marginal note).</para>
119   </refdescription>
120   <refsynopsisdiv>
121     <synopsis><tag class="xmlpi">dbfo float-type="margin.note"</tag></synopsis>
122   </refsynopsisdiv>
123   <refparameter>
124     <variablelist>
125       <varlistentry><term>float-type="margin.note"</term>
126         <listitem>
127           <para>Specifies that the <tag>sidebar</tag> should be
128             displayed as a marginal note.</para>
129         </listitem>
130       </varlistentry>
131     </variablelist>
132   </refparameter>
133   <refsee role="params">
134     <para><parameter>sidebar.float.type</parameter> (parameter),
135       <parameter>sidebar.float.width</parameter> (parameter), 
136       <parameter>sidebar.properties</parameter> (attribute-set),
137       <parameter>sidebar.title.properties</parameter> (attribute-set)
138     </para>
139   </refsee>
140   <refsee role="tcg">
141     <para><link role="tcg" xlink:href="SideFloats.html#SidebarFloats" >A sidebar as
142         side float</link></para>
143   </refsee>
144 </doc:pi>
145 <xsl:template name="pi.dbfo_float-type">
146   <xsl:param name="node" select="."/>
147   <xsl:call-template name="dbfo-attribute">
148     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
149     <xsl:with-param name="attribute" select="'float-type'"/>
150   </xsl:call-template>
151 </xsl:template>
152
153 <doc:pi name="dbfo_funcsynopsis-style" xmlns="">
154   <refpurpose>Specifies presentation style for a funcsynopsis</refpurpose>
155   <refdescription>
156     <para>Use the <tag class="xmlpi">dbfo funcsynopsis-style</tag> PI as a child of
157       a <tag>funcsynopsis</tag> or anywhere within a funcsynopsis
158       to control the presentation style for output of all
159       <tag>funcprototype</tag> instances within that funcsynopsis.</para>
160   </refdescription>
161   <refsynopsisdiv>
162     <synopsis><tag class="xmlpi">dbfo funcsynopsis-style="kr"|"ansi"</tag></synopsis>
163   </refsynopsisdiv>
164   <refparameter>
165     <variablelist>
166       <varlistentry><term>funcsynopsis-style="kr"</term>
167         <listitem>
168           <para>Displays <tag>funcprototype</tag> output in K&amp;R style</para>
169         </listitem>
170       </varlistentry>
171       <varlistentry><term>funcsynopsis-style="ansi"</term>
172         <listitem>
173           <para>Displays <tag>funcprototype</tag> output in ANSI style</para>
174         </listitem>
175       </varlistentry>
176     </variablelist>
177   </refparameter>
178   <refsee role="params">
179     <para><parameter>funcsynopsis.style</parameter></para>
180   </refsee>
181 </doc:pi>
182 <xsl:template name="pi.dbfo_funcsynopsis-style">
183   <xsl:param name="node" select="."/>
184   <xsl:call-template name="dbfo-attribute">
185     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
186     <xsl:with-param name="attribute" select="'funcsynopsis-style'"/>
187   </xsl:call-template>
188 </xsl:template>
189
190 <doc:pi name="dbfo_glossary-presentation" xmlns="">
191   <refpurpose>Specifies presentation style for a glossary</refpurpose>
192   <refdescription>
193     <para>Use the <tag class="xmlpi">dbfo glossary-presentation</tag> PI as a child of
194       a <tag>glossary</tag> to control its presentation style.</para>
195   </refdescription>
196   <refsynopsisdiv>
197     <synopsis><tag class="xmlpi">dbfo glossary-presentation="list"|"blocks"</tag></synopsis>
198   </refsynopsisdiv>
199   <refparameter>
200     <variablelist>
201       <varlistentry><term>glossary-presentation="list"</term>
202         <listitem>
203           <para>Displays the glossary as a list</para>
204         </listitem>
205       </varlistentry>
206       <varlistentry><term>glossary-presentation="blocks"</term>
207         <listitem>
208           <para>Displays the glossary as blocks</para>
209         </listitem>
210       </varlistentry>
211     </variablelist>
212   </refparameter>
213   <refsee role="params">
214     <para><parameter>glossary.as.blocks</parameter></para>
215   </refsee>
216   <refsee role="tcg">
217     <para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint" >Glossary
218         formatting in print</link></para>
219   </refsee>
220 </doc:pi>
221 <xsl:template name="pi.dbfo_glossary-presentation">
222   <xsl:param name="node" select="."/>
223   <xsl:call-template name="dbfo-attribute">
224     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
225     <xsl:with-param name="attribute" select="'glossary-presentation'"/>
226   </xsl:call-template>
227 </xsl:template>
228
229 <doc:pi name="dbfo_glosslist-presentation" xmlns="">
230   <refpurpose>Specifies presentation style for a glosslist</refpurpose>
231   <refdescription>
232     <para>Use the <tag class="xmlpi">dbfo glosslist-presentation</tag> PI as a child of
233       a <tag>glosslist</tag> to control its presentation style.</para>
234   </refdescription>
235   <refsynopsisdiv>
236     <synopsis><tag class="xmlpi">dbfo glosslist-presentation="list"|"blocks"</tag></synopsis>
237   </refsynopsisdiv>
238   <refparameter>
239     <variablelist>
240       <varlistentry><term>glosslist-presentation="list"</term>
241         <listitem>
242           <para>Displays the glosslist as a list</para>
243         </listitem>
244       </varlistentry>
245       <varlistentry><term>glosslist-presentation="blocks"</term>
246         <listitem>
247           <para>Displays the glosslist as blocks</para>
248         </listitem>
249       </varlistentry>
250     </variablelist>
251   </refparameter>
252   <refsee role="params">
253     <para><parameter>glosslist.as.blocks</parameter> </para>
254   </refsee>
255   <refsee role="tcg">
256     <para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint" >Glossary
257         formatting in print</link></para>
258   </refsee>
259 </doc:pi>
260 <xsl:template name="pi.dbfo_glosslist-presentation">
261   <xsl:param name="node" select="."/>
262   <xsl:call-template name="dbfo-attribute">
263     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
264     <xsl:with-param name="attribute" select="'glosslist-presentation'"/>
265   </xsl:call-template>
266 </xsl:template>
267
268 <doc:pi name="dbfo_glossterm-width" xmlns="">
269   <refpurpose>Specifies the glossterm width for a glossary or
270     glosslist</refpurpose>
271   <refdescription>
272     <para>Use the <tag class="xmlpi">dbfo glossterm-width</tag> PI as a child of a
273       <tag>glossary</tag> or <tag>glosslist</tag> to specify the
274       width for output of <tag>glossterm</tag> instances in the
275       output.</para>
276   </refdescription>
277   <refsynopsisdiv>
278     <synopsis><tag class="xmlpi">dbfo glossterm-width="<replaceable>width</replaceable>"</tag></synopsis>
279   </refsynopsisdiv>
280   <refparameter>
281     <variablelist>
282       <varlistentry><term>glossterm-width="<replaceable>width</replaceable>"</term>
283         <listitem>
284           <para>Specifies the glossterm width (including units)</para>
285         </listitem>
286       </varlistentry>
287     </variablelist>
288   </refparameter>
289   <refsee role="params">
290     <para><parameter>glossterm.width</parameter>,
291       <parameter>glossterm.separation</parameter>
292     </para>
293   </refsee>
294   <refsee role="tcg">
295     <para><link role="tcg" xlink:href="Glossaries.html#GlossaryFormatPrint" >Glossary
296         formatting in print</link></para>
297   </refsee>
298 </doc:pi>
299 <xsl:template name="pi.dbfo_glossterm-width">
300   <xsl:param name="node" select="."/>
301   <xsl:call-template name="dbfo-attribute">
302     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
303     <xsl:with-param name="attribute" select="'glossterm-width'"/>
304   </xsl:call-template>
305 </xsl:template>
306
307 <doc:pi name="dbfo_keep-together" xmlns="">
308   <refpurpose>Specifies “keep” behavior for a table, example,
309     figure, equation, procedure, or task</refpurpose>
310   <refdescription>
311     <para>Use the <tag class="xmlpi">dbfo keep-together</tag> PI as a child of a
312       formal object (<tag>table</tag>, <tag>example</tag>,
313       <tag>figure</tag>, <tag>equation</tag>, <tag>procedure</tag>, or
314       <tag>task</tag>) to specify “keep” behavior (to allow the object to 
315     “break” across a page).</para>
316     <para>The PI also works with <tag>informaltable</tag>, <tag>informalexample</tag>,
317       <tag>informalfigure</tag> and <tag>informalequation</tag>.
318     </para>
319
320   </refdescription>
321   <refsynopsisdiv>
322     <synopsis><tag class="xmlpi">dbfo keep-together="auto"|"always"</tag></synopsis>
323   </refsynopsisdiv>
324   <refparameter>
325     <variablelist>
326       <varlistentry><term>keep-together="auto"</term>
327         <listitem>
328           <para>Enables the object to break across a page</para>
329         </listitem>
330       </varlistentry>
331       <varlistentry><term>keep-together="always"</term>
332         <listitem>
333           <para>Prevents the object from breaking across a page (the
334             default stylesheet behavior)</para>
335         </listitem>
336       </varlistentry>
337     </variablelist>
338   </refparameter>
339   <refsee role="params">
340     <para>formal.object.properties</para>
341   </refsee>
342   <refsee role="tcg">
343     <para><link role="tcg" xlink:href="PageBreaking.html#KeepTogetherPI"
344         >Keep-together processing instruction</link></para>
345   </refsee>
346 </doc:pi>
347 <xsl:template name="pi.dbfo_keep-together">
348   <xsl:param name="node" select="."/>
349   <xsl:call-template name="dbfo-attribute">
350     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
351     <xsl:with-param name="attribute" select="'keep-together'"/>
352   </xsl:call-template>
353 </xsl:template>
354
355 <doc:pi name="dbfo_label-width" xmlns="">
356   <refpurpose>Specifies the label width for a qandaset, itemizedlist, orderedlist
357   or calloutlist</refpurpose>
358   <refdescription>
359     <para>Use the <tag class="xmlpi">dbfo label-width</tag> PI as a child of a
360       <tag>qandaset</tag>, <tag>itemizedlist</tag>, <tag>orderedlist</tag>, 
361       or <tag>calloutlist</tag> to specify the width of labels.</para>
362   </refdescription>
363   <refsynopsisdiv>
364     <synopsis><tag class="xmlpi">dbfo label-width="<replaceable>width</replaceable>"</tag></synopsis>
365   </refsynopsisdiv>
366   <refparameter>
367     <variablelist>
368       <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
369         <listitem>
370           <para>Specifies the label width (including units)</para>
371         </listitem>
372       </varlistentry>
373     </variablelist>
374   </refparameter>
375   <refsee role="tcg">
376     <para><link role="tcg"
377         xlink:href="QandAformat.html"
378         >Q and A formatting</link></para>
379   </refsee>
380 </doc:pi>
381 <xsl:template name="pi.dbfo_label-width">
382   <xsl:param name="node" select="."/>
383   <xsl:call-template name="dbfo-attribute">
384     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
385     <xsl:with-param name="attribute" select="'label-width'"/>
386   </xsl:call-template>
387 </xsl:template> 
388
389 <doc:pi name="dbfo_linenumbering.everyNth" xmlns="">
390   <refpurpose>Specifies interval for line numbers in verbatims</refpurpose>
391   <refdescription>
392     <para>Use the <tag class="xmlpi">dbfo linenumbering.everyNth</tag> PI as a child
393       of a “verbatim” element – <tag>programlisting</tag>,
394       <tag>screen</tag>, <tag>synopsis</tag> — to specify
395       the interval at which lines are numbered.</para>
396   </refdescription>
397   <refsynopsisdiv>
398     <synopsis><tag class="xmlpi">dbfo linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
399   </refsynopsisdiv>
400   <refparameter>
401     <variablelist>
402       <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
403         <listitem>
404           <para>Specifies numbering interval; a number is output
405             before every <replaceable>N</replaceable>th line</para>
406         </listitem>
407       </varlistentry>
408     </variablelist>
409   </refparameter>
410   <refsee role="params">
411     <para><parameter>linenumbering.everyNth</parameter></para>
412   </refsee>
413   <refsee role="tcg">
414     <para><link role="tcg"
415         xlink:href="AnnotateListing.html#LineNumbering"
416         >Line numbering</link></para>
417   </refsee>
418 </doc:pi>
419 <xsl:template name="pi.dbfo_linenumbering.everyNth">
420   <xsl:param name="node" select="."/>
421   <xsl:call-template name="dbfo-attribute">
422     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
423     <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
424   </xsl:call-template>
425 </xsl:template>
426
427 <doc:pi name="dbfo_linenumbering.separator" xmlns="">
428   <refpurpose>Specifies separator text for line numbers in verbatims</refpurpose>
429   <refdescription>
430     <para>Use the <tag class="xmlpi">dbfo linenumbering.separator</tag> PI as a child
431       of a “verbatim” element – <tag>programlisting</tag>,
432       <tag>screen</tag>, <tag>synopsis</tag> — to specify
433       the separator text output between the line numbers and content.</para>
434   </refdescription>
435   <refsynopsisdiv>
436     <synopsis><tag class="xmlpi">dbfo linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
437   </refsynopsisdiv>
438   <refparameter>
439     <variablelist>
440       <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
441         <listitem>
442           <para>Specifies the text (zero or more characters)</para>
443         </listitem>
444       </varlistentry>
445     </variablelist>
446   </refparameter>
447   <refsee role="params">
448     <para><parameter>linenumbering.separator</parameter></para>
449   </refsee>
450   <refsee role="tcg">
451     <para><link role="tcg"
452         xlink:href="AnnotateListing.html#LineNumbering"
453         >Line numbering</link></para>
454   </refsee>
455 </doc:pi>
456 <xsl:template name="pi.dbfo_linenumbering.separator">
457   <xsl:param name="node" select="."/>
458   <xsl:call-template name="dbfo-attribute">
459     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
460     <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
461   </xsl:call-template>
462 </xsl:template>
463
464 <doc:pi name="dbfo_linenumbering.width" xmlns="">
465   <refpurpose>Specifies width for line numbers in verbatims</refpurpose>
466   <refdescription>
467     <para>Use the <tag class="xmlpi">dbfo linenumbering.width</tag> PI as a child
468       of a “verbatim” element – <tag>programlisting</tag>,
469       <tag>screen</tag>, <tag>synopsis</tag> — to specify
470       the width set aside for line numbers.</para>
471   </refdescription>
472   <refsynopsisdiv>
473     <synopsis><tag class="xmlpi">dbfo linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
474   </refsynopsisdiv>
475   <refparameter>
476     <variablelist>
477       <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
478         <listitem>
479           <para>Specifies the width (inluding units)</para>
480         </listitem>
481       </varlistentry>
482     </variablelist>
483   </refparameter>
484   <refsee role="params">
485     <para><parameter>linenumbering.width</parameter></para>
486   </refsee>
487   <refsee role="tcg">
488     <para><link role="tcg"
489         xlink:href="AnnotateListing.html#LineNumbering"
490         >Line numbering</link></para>
491   </refsee>
492 </doc:pi>
493 <xsl:template name="pi.dbfo_linenumbering.width">
494   <xsl:param name="node" select="."/>
495   <xsl:call-template name="dbfo-attribute">
496     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
497     <xsl:with-param name="attribute" select="'linenumbering.width'"/>
498   </xsl:call-template>
499 </xsl:template>
500
501 <doc:pi name="dbfo_list-presentation" xmlns="">
502   <refpurpose>Specifies presentation style for a variablelist or
503     segmentedlist</refpurpose>
504   <refdescription>
505     <para>Use the <tag class="xmlpi">dbfo list-presentation</tag> PI as a child of
506       a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
507       control the presentation style for the list (to cause it, for
508       example, to be displayed as a table).</para>
509   </refdescription>
510   <refsynopsisdiv>
511     <synopsis><tag class="xmlpi">dbfo list-presentation="list"|"blocks"|"table"</tag></synopsis>
512   </refsynopsisdiv>
513   <refparameter>
514     <variablelist>
515       <varlistentry><term>list-presentation="list"</term>
516         <listitem>
517           <para>Displays the list as a list</para>
518         </listitem>
519       </varlistentry>
520       <varlistentry><term>list-presentation="blocks"</term>
521         <listitem>
522           <para>(<tag>variablelist</tag> only) Displays the list as blocks</para>
523         </listitem>
524       </varlistentry>
525       <varlistentry><term>list-presentation="table"</term>
526         <listitem>
527           <para>(<tag>segmentedlist</tag> only) Displays the list as a table</para>
528         </listitem>
529       </varlistentry>
530     </variablelist>
531   </refparameter>
532   <refsee role="params">
533     <itemizedlist>
534       <listitem>
535         <para><parameter>variablelist.as.blocks</parameter></para>
536       </listitem>
537       <listitem>
538         <para><parameter>variablelist.as.table</parameter></para>
539       </listitem>
540     </itemizedlist>
541   </refsee>
542   <refsee role="tcg">
543     <para><link role="tcg"
544         xlink:href="Variablelists.html#ListIndents"
545         >Variable list formatting in print</link></para>
546   </refsee>
547 </doc:pi>
548 <xsl:template name="pi.dbfo_list-presentation">
549   <xsl:param name="node" select="."/>
550   <xsl:call-template name="dbfo-attribute">
551     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
552     <xsl:with-param name="attribute" select="'list-presentation'"/>
553   </xsl:call-template>
554 </xsl:template>
555
556 <doc:pi name="dbfo_list-width" xmlns="">
557   <refpurpose>Specifies the width of a horizontal simplelist</refpurpose>
558   <refdescription>
559     <para>Use the <tag class="xmlpi">dbfo list-width</tag> PI as a child of a
560       <tag>simplelist</tag> whose <tag class="attribute">class</tag>
561       value is <literal>horizontal</literal>, to specify the width
562       of the <tag>simplelist</tag>.</para>
563   </refdescription>
564   <refsynopsisdiv>
565     <synopsis><tag class="xmlpi">dbfo list-width="<replaceable>width</replaceable>"</tag></synopsis>
566   </refsynopsisdiv>
567   <refparameter>
568     <variablelist>
569       <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
570         <listitem>
571           <para>Specifies the <tag>simplelist</tag> width (including units)</para>
572         </listitem>
573       </varlistentry>
574     </variablelist>
575   </refparameter>
576 </doc:pi>
577 <xsl:template name="pi.dbfo_list-width">
578   <xsl:param name="node" select="."/>
579   <xsl:call-template name="dbfo-attribute">
580     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
581     <xsl:with-param name="attribute" select="'list-width'"/>
582   </xsl:call-template>
583 </xsl:template>
584
585 <doc:pi name="dbfo_orientation" xmlns="">
586   <refpurpose>Specifies the orientation for a CALS table row or cell</refpurpose>
587   <refdescription>
588     <para>Use the <tag class="xmlpi">dbfo orientation</tag> PI as a child of a CALS
589       <tag>table</tag> row or cell to specify the orientation
590       (rotation) for the row or cell.</para>
591   </refdescription>
592   <refsynopsisdiv>
593     <synopsis><tag class="xmlpi">dbfo orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</tag></synopsis>
594   </refsynopsisdiv>
595   <refparameter>
596     <variablelist>
597       <varlistentry><term>orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</term>
598         <listitem>
599           <para>Specifies the number of degrees by which the cell or
600             row is rotated</para>
601         </listitem>
602       </varlistentry>
603     </variablelist>
604   </refparameter>
605 </doc:pi>
606 <xsl:template name="pi.dbfo_orientation">
607   <xsl:param name="node" select="."/>
608   <xsl:call-template name="dbfo-attribute">
609     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
610     <xsl:with-param name="attribute" select="'orientation'"/>
611   </xsl:call-template>
612 </xsl:template>
613
614 <doc:pi name="dbfo_pgwide" xmlns="">
615   <refpurpose>Specifies if an <tag>equation</tag> or <tag>example</tag> goes across full page width</refpurpose>
616   <refdescription>
617     <para>Use the <tag class="xmlpi">dbfo pgwide</tag> PI as a child of an
618       <tag>equation</tag> or <tag>example</tag> to specify that the
619       content should rendered across the full width of the page.</para>
620   </refdescription>
621   <refsynopsisdiv>
622     <synopsis><tag class="xmlpi">dbfo pgwide="0"|"1"</tag></synopsis>
623   </refsynopsisdiv>
624   <refparameter>
625     <variablelist>
626       <varlistentry><term>pgwide="0"</term>
627         <listitem>
628           <para>If zero, the content is rendered across the current
629             text flow</para>
630         </listitem>
631       </varlistentry>
632       <varlistentry><term>pgwide="1"</term>
633         <listitem>
634           <para>If <code>1</code> (or any non-zero value), the
635             content is rendered across the full width of the page</para>
636         </listitem>
637       </varlistentry>
638     </variablelist>
639   </refparameter>
640   <refsee role="params">
641     <para><parameter>pgwide.properties</parameter></para>
642   </refsee>
643 </doc:pi>
644 <xsl:template name="pi.dbfo_pgwide">
645   <xsl:param name="node" select="."/>
646   <xsl:call-template name="dbfo-attribute">
647     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
648     <xsl:with-param name="attribute" select="'pgwide'"/>
649   </xsl:call-template>
650 </xsl:template>
651
652 <doc:pi name="dbfo_rotated-width" xmlns="">
653   <refpurpose>Specifies the width for a CALS table <tag>entry</tag> or
654     <tag>row</tag></refpurpose>
655   <refdescription>
656     <para>Use the <tag class="xmlpi">dbfo rotated-width</tag> PI as a child of 
657       <tag>entry</tag> or <tag>row</tag> instance in a CALS table to specify the
658       width of that the <tag>entry</tag> or <tag>row</tag>; or
659       use it higher up in table to cause the width to be inherited
660       recursively down.</para>
661   </refdescription>
662   <refsynopsisdiv>
663     <synopsis><tag class="xmlpi">dbfo rotated-width="<replaceable>width</replaceable>"</tag></synopsis>
664   </refsynopsisdiv>
665   <refparameter>
666     <variablelist>
667       <varlistentry><term>rotated-width="<replaceable>width</replaceable>"</term>
668         <listitem>
669           <para>Specifies the width of a row or cell (including units)</para>
670         </listitem>
671       </varlistentry>
672     </variablelist>
673   </refparameter>
674 </doc:pi>
675 <xsl:template name="pi.dbfo_rotated-width">
676   <xsl:param name="node" select="."/>
677   <xsl:call-template name="dbfo-attribute">
678     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
679     <xsl:with-param name="attribute" select="'rotated-width'"/>
680   </xsl:call-template>
681 </xsl:template>
682
683 <doc:pi name="dbfo_sidebar-width" xmlns="">
684   <refpurpose>Specifies the width of a sidebar</refpurpose>
685   <refdescription>
686     <para>Use the <tag class="xmlpi">dbfo sidebar-width</tag> PI as a child of a
687       <tag>sidebar</tag> to specify the width of the sidebar.</para>
688   </refdescription>
689   <refsynopsisdiv>
690     <synopsis><tag class="xmlpi">dbfo sidebar-width="<replaceable>width</replaceable>"</tag></synopsis>
691   </refsynopsisdiv>
692   <refparameter>
693     <variablelist>
694       <varlistentry><term>sidebar-width="<replaceable>width</replaceable>"</term>
695         <listitem>
696           <para>Specifies the <tag>sidebar</tag> width (including units)</para>
697         </listitem>
698       </varlistentry>
699     </variablelist>
700   </refparameter>
701   <refsee role="params">
702     <para><parameter>sidebar.float.type parameter</parameter>,
703       <parameter>sidebar.float.width parameter</parameter>, 
704       <parameter>sidebar.properties attribute-set</parameter>,
705       <parameter>sidebar.title.properties</parameter>
706     </para>
707   </refsee>
708   <refsee role="tcg">
709     <para><link role="tcg" xlink:href="SideFloats.html#SidebarFloats" >A sidebar as
710         side float</link></para>
711   </refsee>
712 </doc:pi>
713 <xsl:template name="pi.dbfo_sidebar-width">
714   <xsl:param name="node" select="."/>
715   <xsl:call-template name="dbfo-attribute">
716     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
717     <xsl:with-param name="attribute" select="'sidebar-width'"/>
718   </xsl:call-template>
719 </xsl:template>
720
721 <doc:pi name="dbfo_start" xmlns="">
722   <refpurpose>(obsolete) Sets the starting number on an ordered list</refpurpose>
723   <refdescription>
724     <para><emphasis>This PI is obsolete</emphasis>. The intent of
725       it was to provide a means for setting a specific starting
726       number for an ordered list. Instead of this PI, set a value
727       for the <literal>override</literal> attribute on the first
728       <tag>listitem</tag> in the list; that will have the same
729       effect as what this PI was intended for.</para>
730   </refdescription>
731   <refsynopsisdiv>
732     <synopsis><tag class="xmlpi">dbfo start="<replaceable>character</replaceable>"</tag></synopsis>
733   </refsynopsisdiv>
734   <refparameter>
735     <variablelist>
736       <varlistentry><term>start="<replaceable>character</replaceable>"</term>
737         <listitem>
738           <para>Specifies the character to use as the starting
739             number; use 0-9, a-z, A-Z, or lowercase or uppercase
740             Roman numerals</para>
741         </listitem>
742       </varlistentry>
743     </variablelist>
744   </refparameter>
745   <refsee role="tcg">
746     <para><link role="tcg"
747         xlink:href="Orderedlists.html#ListStartNum"
748         >List starting number</link></para>
749   </refsee>
750 </doc:pi>
751 <xsl:template name="pi.dbfo_start">
752   <xsl:param name="node" select="."/>
753   <xsl:call-template name="pi-attribute">
754     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
755     <xsl:with-param name="attribute" select="'start'"/>
756   </xsl:call-template>
757 </xsl:template>
758
759 <doc:pi name="dbfo_table-width" xmlns="">
760   <refpurpose>Specifies the width for a CALS table or for revhistory
761     output</refpurpose>
762   <refdescription>
763     <para>Use the <tag class="xmlpi">dbfo table-width</tag> PI as a child or
764       sibling of a CALS <tag>table</tag>, or as a child of an
765       <tag>informaltable</tag>, <tag>entrytbl</tag>, or
766       <tag>revhistory</tag> instance (which is rendered as a table
767       in output) to specify the width of the table in output.</para>
768   </refdescription>
769   <refsynopsisdiv>
770     <synopsis><tag class="xmlpi">dbfo table-width="<replaceable>width</replaceable>"</tag></synopsis>
771   </refsynopsisdiv>
772   <refparameter>
773     <variablelist>
774       <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
775         <listitem>
776           <para>Specifies the table width (including units or as a percentage)</para>
777         </listitem>
778       </varlistentry>
779     </variablelist>
780   </refparameter>
781   <refsee role="tcg">
782     <para><link role="tcg"
783         xlink:href="Tables.html#TableWidth"
784         >Table width</link></para>
785   </refsee>
786 </doc:pi>
787 <xsl:template name="pi.dbfo_table-width">
788   <xsl:param name="node" select="."/>
789   <xsl:call-template name="dbfo-attribute">
790     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
791     <xsl:with-param name="attribute" select="'table-width'"/>
792   </xsl:call-template>
793 </xsl:template>
794
795 <doc:pi name="dbfo_term-width" xmlns="">
796   <refpurpose>Specifies the term width for a variablelist</refpurpose>
797   <refdescription>
798     <para>Use the <tag class="xmlpi">dbfo term-width</tag> PI as a child of a
799       <tag>variablelist</tag> to specify the width for
800       <tag>term</tag> output.</para>
801   </refdescription>
802   <refsynopsisdiv>
803     <synopsis><tag class="xmlpi">dbfo term-width="<replaceable>width</replaceable>"</tag></synopsis>
804   </refsynopsisdiv>
805   <refparameter>
806     <variablelist>
807       <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
808         <listitem>
809           <para>Specifies the term width (including units)</para>
810         </listitem>
811       </varlistentry>
812     </variablelist>
813   </refparameter>
814   <refsee role="tcg">
815     <para><link role="tcg"
816         xlink:href="Variablelists.html#ListIndents"
817         >Variable list formatting in print</link></para>
818   </refsee>
819 </doc:pi>
820 <xsl:template name="pi.dbfo_term-width">
821   <xsl:param name="node" select="."/>
822   <xsl:call-template name="dbfo-attribute">
823     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
824     <xsl:with-param name="attribute" select="'term-width'"/>
825   </xsl:call-template>
826 </xsl:template>
827
828 <doc:pi name="dbfo_toc" xmlns="">
829   <refpurpose>Specifies whether a TOC should be generated for a qandaset</refpurpose>
830   <refdescription>
831     <para>Use the <tag class="xmlpi">dbfo toc</tag> PI as a child of a
832       <tag>qandaset</tag> to specify whether a table of contents
833       (TOC) is generated for the <tag>qandaset</tag>.</para>
834   </refdescription>
835   <refsynopsisdiv>
836     <synopsis><tag class="xmlpi">dbfo toc="0"|"1"</tag></synopsis>
837   </refsynopsisdiv>
838   <refparameter>
839     <variablelist>
840       <varlistentry><term>toc="0"</term>
841         <listitem>
842           <para>If zero, no TOC is generated</para>
843         </listitem>
844       </varlistentry>
845       <varlistentry><term>toc="1"</term>
846         <listitem>
847           <para>If <code>1</code> (or any non-zero value),
848             a TOC is generated</para>
849         </listitem>
850       </varlistentry>
851     </variablelist>
852   </refparameter>
853   <refsee role="tcg">
854     <para><link role="tcg"
855         xlink:href="QandAtoc.html"
856         >Q and A list of questions</link>,
857       <link role="tcg"
858         xlink:href="QandAformat.html"
859         >Q and A formatting</link></para>
860   </refsee>
861 </doc:pi>
862 <xsl:template name="pi.dbfo_toc">
863   <xsl:param name="node" select="."/>
864   <xsl:call-template name="dbfo-attribute">
865     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
866     <xsl:with-param name="attribute" select="'toc'"/>
867   </xsl:call-template>
868 </xsl:template>
869
870 <doc:pi name="dbfo-need" xmlns="">
871   <refpurpose>Specify a need for space (a kind of soft page break)</refpurpose>
872   <refdescription>
873     <para>A “need” is a request for space on a page.  If the
874       requested space is not available, the page breaks and the
875       content that follows the need request appears on the next
876       page. If the requested space is available, then no page break
877       is inserted.</para>
878   </refdescription>
879   <refsynopsisdiv>
880     <synopsis><tag class="xmlpi">dbfo-need height="<replaceable>n</replaceable>" [space-before="<replaceable>n</replaceable>"]</tag></synopsis>
881   </refsynopsisdiv>
882   <refparameter>
883     <variablelist>
884       <varlistentry><term>height="<replaceable>n</replaceable>"</term>
885         <listitem>
886           <para>The amount of height needed (including units)</para>
887         </listitem>
888       </varlistentry>
889       <varlistentry><term>space-before="<replaceable>n</replaceable>"</term>
890         <listitem>
891           <para>The amount of extra vertical space to add (including units)</para>
892         </listitem>
893       </varlistentry>
894     </variablelist>
895   </refparameter>
896   <refsee role="tcg">
897     <para><link role="tcg"
898         xlink:href="PageBreaking.html#SoftPageBreaks"
899         >Soft page breaks</link></para>
900   </refsee>
901 </doc:pi>
902
903 <doc:pi name="dbfo_row-height" xmlns="">
904   <refpurpose>Specifies the height for a CALS table row</refpurpose>
905   <refdescription>
906     <para>Use the <tag class="xmlpi">dbfo row-height</tag> PI as a child of a
907       <tag>row</tag> to specify the height of the row.</para>
908   </refdescription>
909   <refsynopsisdiv>
910     <synopsis><tag class="xmlpi">dbfo row-height="<replaceable>height</replaceable>"</tag></synopsis>
911   </refsynopsisdiv>
912   <refparameter>
913     <variablelist>
914       <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
915         <listitem>
916           <para>Specifies the row height (including units)</para>
917         </listitem>
918       </varlistentry>
919     </variablelist>
920   </refparameter>
921   <refsee role="tcg">
922     <para><link role="tcg"
923         xlink:href="RowHeight.html"
924         >Row height</link></para>
925   </refsee>
926 </doc:pi>
927 <xsl:template name="pi.dbfo_row-height">
928   <xsl:param name="node" select="."/>
929   <xsl:call-template name="dbfo-attribute">
930     <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
931     <xsl:with-param name="attribute" select="'row-height'"/>
932   </xsl:call-template>
933 </xsl:template> 
934
935
936 <xsl:template name="pi.dbfo-need">
937   <xsl:variable name="pi-height">
938     <xsl:call-template name="dbfo-attribute">
939       <xsl:with-param name="pis" select="."/>
940       <xsl:with-param name="attribute" select="'height'"/>
941     </xsl:call-template>
942   </xsl:variable>
943
944   <xsl:variable name="height">
945     <xsl:choose>
946       <xsl:when test="$pi-height != ''">
947         <xsl:value-of select="$pi-height"/>
948       </xsl:when>
949       <xsl:otherwise>0pt</xsl:otherwise>
950     </xsl:choose>
951   </xsl:variable>
952
953   <xsl:variable name="pi-before">
954     <xsl:call-template name="dbfo-attribute">
955       <xsl:with-param name="pis" select="."/>
956       <xsl:with-param name="attribute" select="'space-before'"/>
957     </xsl:call-template>
958   </xsl:variable>
959
960   <xsl:variable name="spacer">
961     <fo:block-container width="100%" height="{$height}">
962       <fo:block><fo:leader leader-length="0pt"/></fo:block>
963     </fo:block-container>
964   </xsl:variable>
965
966   <xsl:choose>
967     <xsl:when test="$fop1.extensions != 0">
968       <!-- Doesn't work in fop -->
969     </xsl:when>
970     <xsl:when test="$fop.extensions != 0">
971       <!-- Doesn't work in fop -->
972     </xsl:when>
973     <xsl:when test="$pi-before != '' and
974       not(following-sibling::listitem) and
975       not(following-sibling::step)">
976       <fo:block space-after="0pt" space-before="{$pi-before}">
977         <xsl:copy-of select="$spacer"/>
978       </fo:block>
979     </xsl:when>
980     <xsl:when test="following-sibling::para">
981       <fo:block space-after="0pt" 
982         xsl:use-attribute-sets="normal.para.spacing">
983         <xsl:copy-of select="$spacer"/>
984       </fo:block>
985     </xsl:when>
986     <xsl:when test="following-sibling::table or
987       following-sibling::figure or
988       following-sibling::example or
989       following-sibling::equation">
990       <fo:block space-after="0pt" 
991         xsl:use-attribute-sets="formal.object.properties">
992         <xsl:copy-of select="$spacer"/>
993       </fo:block>
994     </xsl:when>
995     <xsl:when test="following-sibling::informaltable or
996       following-sibling::informalfigure or
997       following-sibling::informalexample or
998       following-sibling::informalequation">
999       <fo:block space-after="0pt" 
1000         xsl:use-attribute-sets="informal.object.properties">
1001         <xsl:copy-of select="$spacer"/>
1002       </fo:block>
1003     </xsl:when>
1004     <xsl:when test="following-sibling::itemizedlist or
1005       following-sibling::orderedlist or
1006       following-sibling::variablelist or
1007       following-sibling::simplelist">
1008       <fo:block space-after="0pt" 
1009         xsl:use-attribute-sets="informal.object.properties">
1010         <xsl:copy-of select="$spacer"/>
1011       </fo:block>
1012     </xsl:when>
1013     <xsl:when test="following-sibling::listitem or
1014       following-sibling::step">
1015       <fo:list-item space-after="0pt" 
1016         xsl:use-attribute-sets="informal.object.properties">
1017         <fo:list-item-label/>
1018         <fo:list-item-body start-indent="0pt" end-indent="0pt">
1019           <xsl:copy-of select="$spacer"/>
1020         </fo:list-item-body>
1021       </fo:list-item>
1022     </xsl:when>
1023     <xsl:when test="following-sibling::sect1 or
1024       following-sibling::sect2 or
1025       following-sibling::sect3 or
1026       following-sibling::sect4 or
1027       following-sibling::sect5 or
1028       following-sibling::section">
1029       <fo:block space-after="0pt" 
1030         xsl:use-attribute-sets="section.title.properties">
1031         <xsl:copy-of select="$spacer"/>
1032       </fo:block>
1033     </xsl:when>
1034     <xsl:otherwise>
1035       <fo:block space-after="0pt" space-before="0em">
1036         <xsl:copy-of select="$spacer"/>
1037       </fo:block>
1038     </xsl:otherwise>
1039   </xsl:choose>
1040
1041   <xsl:choose>
1042     <xsl:when test="$fop1.extensions != 0">
1043       <!-- Doesn't work in fop -->
1044     </xsl:when>
1045     <xsl:when test="$fop.extensions != 0">
1046       <!-- Doesn't work in fop -->
1047     </xsl:when>
1048     <xsl:when test="following-sibling::listitem or
1049       following-sibling::step">
1050       <fo:list-item space-before.precedence="force"
1051         space-before="-{$height}"
1052         space-after="0pt"
1053         space-after.precedence="force">
1054         <fo:list-item-label/>
1055         <fo:list-item-body start-indent="0pt" end-indent="0pt"/>
1056       </fo:list-item>
1057     </xsl:when>
1058     <xsl:otherwise>
1059       <fo:block space-before.precedence="force"
1060         space-before="-{$height}"
1061         space-after="0pt"
1062         space-after.precedence="force">
1063       </fo:block>
1064     </xsl:otherwise>
1065   </xsl:choose>
1066 </xsl:template>
1067
1068 <!-- ==================================================================== -->
1069
1070 <xsl:template name="dbfo-attribute">
1071   <!-- * dbfo-attribute is an interal utility template for retrieving -->
1072   <!-- * pseudo-attributes/parameters from PIs -->
1073   <xsl:param name="pis" select="processing-instruction('dbfo')"/>
1074   <xsl:param name="attribute">filename</xsl:param>
1075   <xsl:call-template name="pi-attribute">
1076     <xsl:with-param name="pis" select="$pis"/>
1077     <xsl:with-param name="attribute" select="$attribute"/>
1078   </xsl:call-template>
1079 </xsl:template>
1080
1081 <!-- ==================================================================== -->
1082
1083 <xsl:template match="processing-instruction()">
1084 </xsl:template>
1085
1086 <!-- ==================================================================== -->
1087
1088 <xsl:template match="processing-instruction('dbfo-need')">
1089   <xsl:call-template name="pi.dbfo-need"/>
1090 </xsl:template>
1091
1092 </xsl:stylesheet>