Moving docs tree to docs-xml to make room for generated docs in the release tarball.
[Samba.git] / docs-xml / xslt / db2latex-xsl / xsl / block.mod.xsl
blob5c80221ea47770bc1d6a7de6fbe997181dbcdd2b
1 <?xml version='1.0'?>
2 <!DOCTYPE xsl:stylesheet [ <!ENTITY % xsldoc.ent SYSTEM "./xsldoc.ent"> %xsldoc.ent; ]>
3 <!--#############################################################################
4 | $Id: block.mod.xsl,v 1.15 2004/01/26 09:44:38 j-devenish Exp $
5 |- #############################################################################
6 | $Author: j-devenish $
7 + ############################################################################## -->
9 <xsl:stylesheet
10 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
11 xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
12 exclude-result-prefixes="doc" version='1.0'>
14 <doc:reference id="block" xmlns="">
15 <referenceinfo>
16 <releaseinfo role="meta">
17 $Id: block.mod.xsl,v 1.15 2004/01/26 09:44:38 j-devenish Exp $
18 </releaseinfo>
19 <authorgroup>
20 &ramon;
21 &james;
22 </authorgroup>
23 <copyright>
24 <year>2000</year><year>2001</year><year>2002</year><year>2003</year><year>2004</year>
25 <holder>Ramon Casellas</holder>
26 </copyright>
27 <revhistory>
28 <doc:revision rcasver="1.6">&rev_2003_05;</doc:revision>
29 </revhistory>
30 </referenceinfo>
31 <title>Block Objects <filename>block.mod.xsl</filename></title>
32 <partintro>
33 <para>The file <filename>block.mod.xsl</filename> contains the
34 XSL templates for sundry block-formatted components.</para>
35 </partintro>
36 </doc:reference>
38 <doc:template xmlns="">
39 <refpurpose>
40 Generic handler for interior elements of block-formatted components
41 </refpurpose>
42 <doc:description>
43 <para>
44 Applies all templates, excluding from <doc:db>title</doc:db>-related
45 and <doc:db>blockinfo</doc:db>-like elements.
46 </para>
47 </doc:description>
48 <doc:params>
49 <variablelist>
50 <varlistentry>
51 <term>info</term>
52 <listitem>
53 <para>
55 The name of the &DocBook; <quote>info</quote>-type
56 element for this component. By default, this is equal
57 to the name of the component with <literal>info</literal>
58 appended. For example: <doc:db>sectioninfo</doc:db>
59 for <doc:db>section</doc:db>.
61 </para>
62 </listitem>
63 </varlistentry>
64 </variablelist>
65 </doc:params>
66 </doc:template>
68 <xsl:template name="content-templates">
69 <xsl:param name="info" select="concat(local-name(.),'info')"/>
70 <xsl:apply-templates select="node()[not(self::title or self::subtitle or self::titleabbrev or self::blockinfo or self::docinfo or local-name(.)=$info)]"/>
71 </xsl:template>
73 <xsl:template name="content-templates-rootid">
74 <!--
75 <xsl:message>Rootid <xsl:value-of select="$rootid"/></xsl:message>
76 <xsl:message>local-name(.) <xsl:value-of select="local-name(.)"/></xsl:message>
77 <xsl:message>count(ancestor::*) <xsl:value-of select="count(ancestor::*)"/></xsl:message>
78 -->
79 <xsl:choose>
80 <xsl:when test="$rootid != '' and count(ancestor::*) = 0">
81 <xsl:variable name="node" select="key('id', $rootid)"/>
82 <xsl:message>count($node) <xsl:value-of select="count($node)"/></xsl:message>
83 <xsl:choose>
84 <xsl:when test="count($node) = 0">
85 <xsl:message terminate="yes">
86 <xsl:text>Root ID '</xsl:text>
87 <xsl:value-of select="$rootid"/>
88 <xsl:text>' not found in document.</xsl:text>
89 </xsl:message>
90 </xsl:when>
91 <xsl:otherwise>
92 <xsl:apply-templates select="$node"/>
93 </xsl:otherwise>
94 </xsl:choose>
95 </xsl:when>
96 <xsl:otherwise>
97 <xsl:call-template name="content-templates"/>
98 </xsl:otherwise>
99 </xsl:choose>
100 </xsl:template>
102 <doc:template xmlns="">
103 <refpurpose>
104 Generic handler for block-formatted components
105 </refpurpose>
106 <doc:description>
107 <para>
108 Calls <xref linkend="template.label.id"/>,
109 applies templates for <doc:db>title</doc:db>,
110 then applies templates for content elements.
111 </para>
112 </doc:description>
113 </doc:template>
115 <xsl:template name="block.object">
116 <xsl:call-template name="label.id"/>
117 <xsl:apply-templates select="title"/>
118 <xsl:text>&#10;</xsl:text>
119 <xsl:call-template name="content-templates"/>
120 </xsl:template>
122 <doc:template xmlns="">
123 <refpurpose>
124 A quotation set off from the main text (not inline)
125 </refpurpose>
126 <doc:description>
127 <para>
128 Uses the &LaTeX; <function condition='env'>quote</function> environment.
129 If an attribution is present, it will be set at the end.
130 </para>
131 </doc:description>
132 <doc:seealso>
133 <itemizedlist>
134 <listitem><para><xref linkend="template.attribution-block.attribution"/></para></listitem>
135 <listitem><para>&mapping;</para></listitem>
136 </itemizedlist>
137 </doc:seealso>
138 </doc:template>
140 <xsl:template match="blockquote">
141 <xsl:call-template name="map.begin"/>
142 <xsl:apply-templates/>
143 <xsl:apply-templates select="attribution" mode="block.attribution"/>
144 <xsl:call-template name="map.end"/>
145 </xsl:template>
147 <doc:template xmlns="">
148 <refpurpose>
149 A short inscription that occurs at the beginning of a section, chapter, or document
150 </refpurpose>
151 <doc:description>
152 <para>
153 Uses the &LaTeX; <function condition='env'>quote</function> environment.
154 If an attribution is present, it will be set at the end.
155 </para>
156 </doc:description>
157 <doc:seealso>
158 <itemizedlist>
159 <listitem><para><xref linkend="template.attribution-block.attribution"/></para></listitem>
160 <listitem><para>&mapping;</para></listitem>
161 </itemizedlist>
162 </doc:seealso>
163 </doc:template>
165 <xsl:template match="epigraph">
166 <xsl:call-template name="map.begin"/>
167 <xsl:apply-templates/>
168 <xsl:apply-templates select="attribution" mode="block.attribution"/>
169 <xsl:call-template name="map.end"/>
170 </xsl:template>
172 <doc:template xmlns="">
173 <refpurpose>
174 This template produces no output
175 </refpurpose>
176 <doc:description>
177 <para>
179 The <doc:db>attribution</doc:db> element only occurs within <xref
180 linkend="template.blockquote"/> and <xref
181 linkend="template.epigraph"/>. However, the templates for those
182 elements use a <quote>mode</quote> mechanism. Therefore, this
183 template is intentionally suppressed and a replacement exists. See
184 <xref linkend="template.attribution-block.attribution"/> instead.
186 </para>
187 </doc:description>
188 </doc:template>
190 <xsl:template match="attribution"/>
192 <doc:template xmlns="">
193 <refpurpose>
194 The source of a block quote or epigraph
195 </refpurpose>
196 <doc:description>
197 <para>
198 Starts a new line with right-aligned text preceded by an em dash.
199 </para>
200 </doc:description>
201 </doc:template>
203 <xsl:template match="attribution" mode="block.attribution">
204 <xsl:text>&#10;\hspace*\fill---</xsl:text>
205 <xsl:apply-templates/>
206 </xsl:template>
208 <doc:template xmlns="">
209 <refpurpose>
210 A block of text that is isolated from the main flow
211 </refpurpose>
212 <doc:description>
213 <para>
214 This is formatted as a plain block.
215 </para>
216 </doc:description>
217 <doc:notes>
218 <para>
219 This template should create sidebars (but it doesn't)!
220 </para>
221 </doc:notes>
222 <doc:seealso>
223 <itemizedlist>
224 <listitem><para><xref linkend="template.block.object"/></para></listitem>
225 </itemizedlist>
226 </doc:seealso>
227 </doc:template>
229 <xsl:template match="sidebar">
230 <xsl:call-template name="block.object"/>
231 </xsl:template>
233 <doc:template xmlns="">
234 <refpurpose>
235 Titles and subtitles
236 </refpurpose>
237 <doc:description>
238 <para>
239 Simply applies templates.
240 </para>
241 <para>
243 This is the default template, for <doc:db
244 basename="title">title</doc:db> and <doc:db
245 basename="subtitle">subtitles</doc:db>. The use of this
246 template is controlled by the template for closing elements,
247 which will often not apply templates for <sgmltag
248 class="starttag">subtitles</sgmltag>. Furthermore, there may be
249 templates to match <sgmltag class="starttag">titles</sgmltag>
250 in specific contexts (in which case this template will not be
251 used).
253 </para>
254 <para>
256 This template is also used by &mapping;.
258 </para>
259 </doc:description>
260 <doc:variables>
261 <itemizedlist>
262 <listitem><simpara><xref linkend="param.latex.apply.title.templates"/></simpara></listitem>
263 <listitem><simpara><xref linkend="param.latex.apply.title.templates.admonitions"/></simpara></listitem>
264 <listitem><simpara><xref linkend="param.formal.title.placement"/></simpara></listitem>
265 <listitem><simpara><xref linkend="param.latex.maketitle"/></simpara></listitem>
266 <listitem><simpara><xref linkend="param.latex.titlepage.file"/></simpara></listitem>
267 <listitem><simpara><xref linkend="param.latex.formalpara.title.style"/></simpara></listitem>
268 <listitem><simpara><xref linkend="param.latex.step.title.style"/></simpara></listitem>
269 <listitem><simpara><xref linkend="param.latex.book.article.title.style"/></simpara></listitem>
270 <listitem><simpara><xref linkend="param.latex.article.title.style"/></simpara></listitem>
271 <listitem><simpara><xref linkend="param.latex.procedure.title.style"/></simpara></listitem>
272 <listitem><simpara><xref linkend="param.latex.formalpara.title.style"/></simpara></listitem>
273 <listitem><simpara><xref linkend="param.latex.figure.title.style"/></simpara></listitem>
274 </itemizedlist>
275 </doc:variables>
276 <doc:seealso>
277 <itemizedlist>
278 <listitem><para>&mapping;</para></listitem>
279 <listitem><para><xref linkend="template.content-templates"/></para></listitem>
280 </itemizedlist>
281 </doc:seealso>
282 </doc:template>
284 <xsl:template match="title|subtitle">
285 <xsl:apply-templates/>
286 </xsl:template>
288 <doc:template xmlns="">
289 <refpurpose>
290 Captions generated from <doc:db>title</doc:db>s
291 </refpurpose>
292 <doc:description>
293 <para>
294 Simply applies templates.
295 </para>
296 <para>
297 The formatting of titles in <literal>caption.mode</literal> may
298 depend on the enclosing element's template.
299 </para>
300 </doc:description>
301 <doc:variables>
302 <itemizedlist>
303 <listitem><simpara><xref linkend="param.latex.formalpara.title.style"/></simpara></listitem>
304 <listitem><simpara><xref linkend="param.latex.step.title.style"/></simpara></listitem>
305 <listitem><simpara><xref linkend="param.latex.book.article.title.style"/></simpara></listitem>
306 <listitem><simpara><xref linkend="param.latex.article.title.style"/></simpara></listitem>
307 <listitem><simpara><xref linkend="param.latex.procedure.title.style"/></simpara></listitem>
308 <listitem><simpara><xref linkend="param.latex.formalpara.title.style"/></simpara></listitem>
309 <listitem><simpara><xref linkend="param.latex.figure.title.style"/></simpara></listitem>
310 <listitem><simpara><xref linkend="param.formal.title.placement"/></simpara></listitem>
311 <listitem><simpara><xref linkend="param.latex.caption.swapskip"/></simpara></listitem>
312 <listitem><simpara><xref linkend="param.latex.equation.caption.style"/></simpara></listitem>
313 <listitem><simpara><xref linkend="param.latex.example.caption.style"/></simpara></listitem>
314 <listitem><simpara><xref linkend="param.latex.figure.caption.style"/></simpara></listitem>
315 <listitem><simpara><xref linkend="param.latex.table.caption.style"/></simpara></listitem>
316 </itemizedlist>
317 </doc:variables>
318 <doc:notes>
319 <para>
320 Since captions may be incorporated into hyperlinks and
321 tables of cross references, <quote>anchor</quote>-type
322 elements should not be applied when in this mode.
323 </para>
324 </doc:notes>
325 </doc:template>
327 <xsl:template match="title|subtitle" mode="caption.mode">
328 <xsl:apply-templates/>
329 </xsl:template>
331 <doc:template xmlns="">
332 <refpurpose>
333 Acknowledgements in an <doc:db>article</doc:db>
334 </refpurpose>
335 <doc:description>
336 <para>
337 This is formatted as a plain block by applying templates
338 with leading and trailing blank lines.
339 </para>
340 </doc:description>
341 <doc:variables>
342 &no_var;
343 </doc:variables>
344 <doc:samples>
345 <simplelist type='inline'>
346 &test_article;
347 </simplelist>
348 </doc:samples>
349 </doc:template>
351 <xsl:template match="ackno">
352 <xsl:text>&#10;</xsl:text>
353 <xsl:apply-templates/>
354 <xsl:text>&#10;</xsl:text>
355 </xsl:template>
357 <doc:template>
358 <refpurpose> Interpret a user's placement preferences for certain &LaTeX; floats </refpurpose>
359 <doc:notes>
360 <para>
362 This template should be invoked when the current node is a
363 <doc:db>figure</doc:db> or <doc:db>table</doc:db>. If a
364 <sgmltag class="attribute">condition</sgmltag> attribute exists
365 and begins with <quote>db2latex:</quote>, or a <sgmltag
366 class="pi">latex-float-placement</sgmltag> processing
367 instruction is present, the remainder of its value will be used
368 as the &LaTeX; <quote>float</quote> placement. Otherwise, the
369 default placement is determined by the element's template.
371 </para>
372 <para>
374 Currently, this template is used for <doc:db>figure</doc:db>s
375 and <doc:db>table</doc:db>s but not <doc:db>example</doc:db>s
376 or <doc:db>equation</doc:db>s.
378 </para>
379 </doc:notes>
380 </doc:template>
381 <xsl:template name="generate.latex.float.position">
382 <xsl:param name="default" select="'hbt'"/>
383 <xsl:choose>
384 <xsl:when test="processing-instruction('latex-float-placement')">
385 <xsl:value-of select="processing-instruction('latex-float-placement')"/>
386 </xsl:when>
387 <xsl:when test="starts-with(@condition, 'db2latex:')">
388 <xsl:value-of select="substring-after(@condition, 'db2latex:')"/>
389 </xsl:when>
390 <xsl:otherwise>
391 <xsl:value-of select="$default"/>
392 </xsl:otherwise>
393 </xsl:choose>
394 </xsl:template>
395 </xsl:stylesheet>