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 + ############################################################################## -->
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=
"">
16 <releaseinfo role=
"meta">
17 $Id: block.mod.xsl,v
1.15 2004/
01/
26 09:
44:
38 j-devenish Exp $
24 <year>2000</year><year>2001</year><year>2002</year><year>2003</year><year>2004</year>
25 <holder>Ramon Casellas
</holder>
28 <doc:revision rcasver=
"1.6">&rev_2003_05;</doc:revision>
31 <title>Block Objects
<filename>block.mod.xsl
</filename></title>
33 <para>The file
<filename>block.mod.xsl
</filename> contains the
34 XSL templates for sundry block-formatted components.
</para>
38 <doc:template xmlns=
"">
40 Generic handler for interior elements of block-formatted components
44 Applies all templates, excluding from
<doc:db>title
</doc:db>-related
45 and
<doc:db>blockinfo
</doc:db>-like elements.
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>.
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)]"/>
73 <xsl:template name=
"content-templates-rootid">
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>
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>
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>
92 <xsl:apply-templates select=
"$node"/>
97 <xsl:call-template name=
"content-templates"/>
102 <doc:template xmlns=
"">
104 Generic handler for block-formatted components
108 Calls
<xref linkend=
"template.label.id"/>,
109 applies templates for
<doc:db>title
</doc:db>,
110 then applies templates for content elements.
115 <xsl:template name=
"block.object">
116 <xsl:call-template name=
"label.id"/>
117 <xsl:apply-templates select=
"title"/>
118 <xsl:text> </xsl:text>
119 <xsl:call-template name=
"content-templates"/>
122 <doc:template xmlns=
"">
124 A quotation set off from the main text (not inline)
128 Uses the
&LaTeX; <function condition='env'
>quote
</function> environment.
129 If an attribution is present, it will be set at the end.
134 <listitem><para><xref linkend=
"template.attribution-block.attribution"/></para></listitem>
135 <listitem><para>&mapping;</para></listitem>
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"/>
147 <doc:template xmlns=
"">
149 A short inscription that occurs at the beginning of a section, chapter, or document
153 Uses the
&LaTeX; <function condition='env'
>quote
</function> environment.
154 If an attribution is present, it will be set at the end.
159 <listitem><para><xref linkend=
"template.attribution-block.attribution"/></para></listitem>
160 <listitem><para>&mapping;</para></listitem>
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"/>
172 <doc:template xmlns=
"">
174 This template produces no output
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.
190 <xsl:template match=
"attribution"/>
192 <doc:template xmlns=
"">
194 The source of a block quote or epigraph
198 Starts a new line with right-aligned text preceded by an em dash.
203 <xsl:template match=
"attribution" mode=
"block.attribution">
204 <xsl:text> \hspace*\fill---
</xsl:text>
205 <xsl:apply-templates/>
208 <doc:template xmlns=
"">
210 A block of text that is isolated from the main flow
214 This is formatted as a plain block.
219 This template should create sidebars (but it doesn't)!
224 <listitem><para><xref linkend=
"template.block.object"/></para></listitem>
229 <xsl:template match=
"sidebar">
230 <xsl:call-template name=
"block.object"/>
233 <doc:template xmlns=
"">
239 Simply applies templates.
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
256 This template is also used by
&mapping;.
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>
278 <listitem><para>&mapping;</para></listitem>
279 <listitem><para><xref linkend=
"template.content-templates"/></para></listitem>
284 <xsl:template match=
"title|subtitle">
285 <xsl:apply-templates/>
288 <doc:template xmlns=
"">
290 Captions generated from
<doc:db>title
</doc:db>s
294 Simply applies templates.
297 The formatting of titles in
<literal>caption.mode
</literal> may
298 depend on the enclosing element's template.
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>
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.
327 <xsl:template match=
"title|subtitle" mode=
"caption.mode">
328 <xsl:apply-templates/>
331 <doc:template xmlns=
"">
333 Acknowledgements in an
<doc:db>article
</doc:db>
337 This is formatted as a plain block by applying templates
338 with leading and trailing blank lines.
345 <simplelist type='inline'
>
351 <xsl:template match=
"ackno">
352 <xsl:text> </xsl:text>
353 <xsl:apply-templates/>
354 <xsl:text> </xsl:text>
358 <refpurpose> Interpret a user's placement preferences for certain
&LaTeX; floats
</refpurpose>
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.
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.
381 <xsl:template name=
"generate.latex.float.position">
382 <xsl:param name=
"default" select=
"'hbt'"/>
384 <xsl:when test=
"processing-instruction('latex-float-placement')">
385 <xsl:value-of select=
"processing-instruction('latex-float-placement')"/>
387 <xsl:when test=
"starts-with(@condition, 'db2latex:')">
388 <xsl:value-of select=
"substring-after(@condition, 'db2latex:')"/>
391 <xsl:value-of select=
"$default"/>