~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to docs-xml/xslt/db2latex-xsl/xsl/admonition.mod.xsl

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version='1.0'?>
 
2
<!DOCTYPE xsl:stylesheet [ <!ENTITY % xsldoc.ent SYSTEM "./xsldoc.ent"> %xsldoc.ent; ]>
 
3
<!--############################################################################# 
 
4
|       $Id: admonition.mod.xsl,v 1.14 2004/01/03 09:48:34 j-devenish Exp $
 
5
|- #############################################################################
 
6
|       $Author: j-devenish $
 
7
+ ############################################################################## -->
 
8
<xsl:stylesheet
 
9
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 
10
        xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
 
11
        exclude-result-prefixes="doc" version='1.0'>
 
12
 
 
13
        <doc:reference name="admonition" xmlns="">
 
14
                <referenceinfo>
 
15
                        <releaseinfo role="meta">
 
16
                                $Id: admonition.mod.xsl,v 1.14 2004/01/03 09:48:34 j-devenish Exp $
 
17
                        </releaseinfo>
 
18
                        <authorgroup>
 
19
                                &ramon;
 
20
                                &james;
 
21
                        </authorgroup>
 
22
                        <copyright>
 
23
                                <year>2000</year><year>2001</year><year>2002</year><year>2003</year>
 
24
                                <holder>Ramon Casellas</holder>
 
25
                        </copyright>
 
26
                        <revhistory>
 
27
                                <doc:revision rcasver="1.6">&rev_2003_05;</doc:revision>
 
28
                        </revhistory>
 
29
                </referenceinfo>
 
30
                <title>Admonitions <filename>admonition.mod.xsl</filename></title>
 
31
                <partintro>
 
32
                        <para>
 
33
                        
 
34
                        &DocBook; includes admonitions (<doc:db>warning</doc:db>,
 
35
                        <doc:db>tip</doc:db>, <doc:db>important</doc:db>,
 
36
                        <doc:db>caution</doc:db>, <doc:db>note</doc:db>), which are set off
 
37
                        from the main text. &DB2LaTeX; places these in the normal text flow
 
38
                        but surrounds them with a box border.
 
39
                        
 
40
                        </para>
 
41
                        <doc:variables>
 
42
                                <itemizedlist>
 
43
                                        <listitem><simpara><xref linkend="param.latex.use.fancybox"/></simpara></listitem>
 
44
                                        <listitem><simpara><xref linkend="param.admon.graphics.path"/></simpara></listitem>
 
45
                                        <listitem><simpara><xref linkend="param.latex.admonition.imagesize"/></simpara></listitem>
 
46
                                        <listitem><simpara><xref linkend="param.latex.apply.title.templates.admonitions"/></simpara></listitem>
 
47
                                </itemizedlist>
 
48
                        </doc:variables>
 
49
                </partintro>
 
50
        </doc:reference>
 
51
 
 
52
        <doc:param xmlns="">
 
53
                <refpurpose>
 
54
                        Declares a new environment to be used for admonitions
 
55
                </refpurpose>
 
56
                <doc:description>
 
57
                        <para>
 
58
 
 
59
                        This &LaTeX; environment is emitted during the preamble. That
 
60
                        environment has two mandatory parameters. Instances of the
 
61
                        environment are customised for each admonition via those
 
62
                        parameters. Instances will be typeset as boxed areas in the
 
63
                        document flow.
 
64
 
 
65
                        </para>
 
66
                        <para>
 
67
 
 
68
                        The first argument is the filename for graphics (e.g.
 
69
                        <filename>$admon.graphics.path/warning</filename>).
 
70
                        The second argument is the admonition title or the associated
 
71
                        generic text.
 
72
 
 
73
                        </para>
 
74
 
 
75
                        <example>
 
76
                                <title>Processing the <doc:db>warning</doc:db> admonition</title>
 
77
                                <para> When processing the admonition, the following code is generated: </para>
 
78
                                <programlisting>
 
79
                                <![CDATA[\begin{admonition}{figures/warning}{My WARNING}
 
80
...
 
81
\end{admonition}]]>
 
82
                                </programlisting>
 
83
                        </example>
 
84
                </doc:description>
 
85
                <doc:notes>
 
86
                        <!-- notes about spacing? -->
 
87
                        <para>
 
88
                                The environment uses graphics by default. This may generate errors or warnings
 
89
                                if &LaTeX; cannot find the graphics. If necessary, graphics may be disabled
 
90
                                via <xref linkend="param.admon.graphics.path"/>.
 
91
                        </para>
 
92
                </doc:notes>
 
93
                <!--
 
94
                <doc:seealso>
 
95
                        <itemizedlist>
 
96
                                <listitem><simpara><xref linkend="template.para"/></simpara></listitem>
 
97
                        </itemizedlist>
 
98
                </doc:seealso>
 
99
                -->
 
100
                <doc:variables>
 
101
                        <itemizedlist>
 
102
                                <listitem><simpara><xref linkend="param.latex.use.fancybox"/></simpara></listitem>
 
103
                                <listitem><simpara><xref linkend="param.admon.graphics.path"/></simpara></listitem>
 
104
                                <listitem><simpara><xref linkend="param.latex.admonition.imagesize"/></simpara></listitem>
 
105
                        </itemizedlist>
 
106
                </doc:variables>
 
107
        </doc:param>
 
108
 
 
109
        <xsl:param name="latex.admonition.environment">
 
110
                <xsl:text>% ----------------------------------------------&#10;</xsl:text>
 
111
                <xsl:text>% Define a new LaTeX environment (adminipage)&#10;</xsl:text>
 
112
                <xsl:text>% ----------------------------------------------&#10;</xsl:text>
 
113
                <xsl:text>\newenvironment{admminipage}%&#10;</xsl:text>
 
114
                <xsl:text>{ % this code corresponds to the \begin{adminipage} command&#10;</xsl:text>
 
115
                <xsl:text> \begin{Sbox}%&#10;</xsl:text>
 
116
                <xsl:text> \begin{minipage}%&#10;</xsl:text>
 
117
                <xsl:text>} %done&#10;</xsl:text>
 
118
                <xsl:text>{ % this code corresponds to the \end{adminipage} command&#10;</xsl:text>
 
119
                <xsl:text> \end{minipage}&#10;</xsl:text>
 
120
                <xsl:text> \end{Sbox}&#10;</xsl:text>
 
121
                <xsl:text> \fbox{\TheSbox}&#10;</xsl:text>
 
122
                <xsl:text>} %done&#10;</xsl:text>
 
123
                <xsl:text>% ----------------------------------------------&#10;</xsl:text>
 
124
                <xsl:text>% Define a new LaTeX length (admlength)&#10;</xsl:text>
 
125
                <xsl:text>% ----------------------------------------------&#10;</xsl:text>
 
126
                <xsl:text>\newlength{\admlength}&#10;</xsl:text>
 
127
                <xsl:text>% ----------------------------------------------&#10;</xsl:text>
 
128
                <xsl:text>% Define a new LaTeX environment (admonition)&#10;</xsl:text>
 
129
                <xsl:text>% With 2 parameters:&#10;</xsl:text>
 
130
                <xsl:text>% #1 The file (e.g. note.pdf)&#10;</xsl:text>
 
131
                <xsl:text>% #2 The caption&#10;</xsl:text>
 
132
                <xsl:text>% ----------------------------------------------&#10;</xsl:text>
 
133
                <xsl:text>\newenvironment{admonition}[2] &#10;</xsl:text>
 
134
                <xsl:text>{ % this code corresponds to the \begin{admonition} command&#10;</xsl:text>
 
135
                <xsl:text> \hspace{0mm}\newline\hspace*\fill\newline&#10;</xsl:text>
 
136
                <xsl:text> \noindent&#10;</xsl:text>
 
137
                <xsl:text> \setlength{\fboxsep}{5pt}&#10;</xsl:text>
 
138
                <xsl:text> \setlength{\admlength}{\linewidth}&#10;</xsl:text>
 
139
                <xsl:text> \addtolength{\admlength}{-10\fboxsep}&#10;</xsl:text>
 
140
                <xsl:text> \addtolength{\admlength}{-10\fboxrule}&#10;</xsl:text>
 
141
                <xsl:text> \admminipage{\admlength}&#10;</xsl:text>
 
142
                <xsl:text> {\bfseries \sc\large{#2}}</xsl:text>
 
143
                <xsl:text> \newline&#10;</xsl:text>
 
144
                <xsl:text> \\[1mm]&#10;</xsl:text>
 
145
                <xsl:text> \sffamily&#10;</xsl:text>
 
146
                <!--
 
147
                If we cannot find the admon.graphics.path;
 
148
                Comment out the next line (\includegraphics).
 
149
                This tactic is to avoid deleting the \includegraphics
 
150
                altogether, as that could confuse a person trying to
 
151
                find the use of parameter #1 in the environment.
 
152
                -->
 
153
                <xsl:if test="$admon.graphics.path=''">
 
154
                        <xsl:text>%</xsl:text>
 
155
                </xsl:if>
 
156
                <xsl:text> \includegraphics[</xsl:text> <xsl:value-of select="$latex.admonition.imagesize" /> <xsl:text>]{#1}&#10;</xsl:text>
 
157
                <xsl:text> \addtolength{\admlength}{-1cm}&#10;</xsl:text>
 
158
                <xsl:text> \addtolength{\admlength}{-20pt}&#10;</xsl:text>
 
159
                <xsl:text> \begin{minipage}[lt]{\admlength}&#10;</xsl:text>
 
160
                <xsl:text> \parskip=0.5\baselineskip \advance\parskip by 0pt plus 2pt&#10;</xsl:text>
 
161
                <xsl:text>} %done&#10;</xsl:text>
 
162
                <xsl:text>{ % this code corresponds to the \end{admonition} command&#10;</xsl:text>
 
163
                <xsl:text> \vspace{5mm} &#10;</xsl:text>
 
164
                <xsl:text> \end{minipage}&#10;</xsl:text>
 
165
                <xsl:text> \endadmminipage&#10;</xsl:text>
 
166
                <xsl:text> \vspace{.5em}&#10;</xsl:text>
 
167
                <xsl:text> \par&#10;</xsl:text>
 
168
                <xsl:text>}&#10;</xsl:text>
 
169
        </xsl:param>
 
170
 
 
171
        <doc:template xmlns="">
 
172
                <refpurpose> Choose an admonition graphic </refpurpose>
 
173
                <doc:description>
 
174
                        <para>
 
175
 
 
176
                        For each admonition element
 
177
                        (<doc:db>warning</doc:db>, <doc:db>tip</doc:db>, <doc:db>important</doc:db>, <doc:db>caution</doc:db>, <doc:db>note</doc:db>),
 
178
                        this template chooses the graphics filename. If the admonition element is
 
179
                        not known, the <doc:db>note</doc:db> graphic is used.
 
180
 
 
181
                        </para>
 
182
                </doc:description>
 
183
                <doc:params>
 
184
                        <variablelist>
 
185
                                <varlistentry>
 
186
                                        <term>name</term>
 
187
                                        <listitem>
 
188
                                                <para>
 
189
 
 
190
                                                        The name of the adminition. &DB2LaTeX; includes
 
191
                                                        different graphics for different adminitions. By
 
192
                                                        default, <literal>name</literal> defaults to the
 
193
                                                        XSLT <function
 
194
                                                        condition="xslt">local-name</function> of the
 
195
                                                        current node.
 
196
 
 
197
                                                </para>
 
198
                                        </listitem>
 
199
                                </varlistentry>
 
200
                        </variablelist>
 
201
                </doc:params>
 
202
        </doc:template>
 
203
 
 
204
        <xsl:template name="admon.graphic">
 
205
                <xsl:param name="name" select="local-name(.)"/>
 
206
                <xsl:choose>
 
207
                        <xsl:when test="$name='note'">note</xsl:when>
 
208
                        <xsl:when test="$name='warning'">warning</xsl:when>
 
209
                        <xsl:when test="$name='caution'">caution</xsl:when>
 
210
                        <xsl:when test="$name='tip'">tip</xsl:when>
 
211
                        <xsl:when test="$name='important'">important</xsl:when>
 
212
                        <xsl:otherwise>note</xsl:otherwise>
 
213
                </xsl:choose>
 
214
        </xsl:template>
 
215
 
 
216
        <doc:template xmlns="">
 
217
                <refpurpose> Process admonitions </refpurpose>
 
218
                <doc:description>
 
219
                        <para>
 
220
 
 
221
                        Invokes the environment provided by <xref
 
222
                        linkend="param.latex.admonition.environment"/>
 
223
                        and applies templates.
 
224
 
 
225
                        </para>
 
226
                        <note><para>An admonition will look something like this <doc:db>note</doc:db>.</para></note>
 
227
                </doc:description>
 
228
                <doc:notes>
 
229
                        <para>
 
230
 
 
231
                        There can be <quote>excessive</quote> whitespace between
 
232
                        the bottom of the admonition area and a subsequent paragraph.
 
233
 
 
234
                        </para>
 
235
                </doc:notes>
 
236
                <doc:variables>
 
237
                        <itemizedlist>
 
238
                                <listitem><simpara><xref linkend="param.admon.graphics.path"/></simpara></listitem>
 
239
                                <listitem><simpara><xref linkend="param.latex.apply.title.templates.admonitions"/></simpara></listitem>
 
240
                        </itemizedlist>
 
241
                </doc:variables>
 
242
                <doc:samples>
 
243
                        <simplelist type='inline'>
 
244
                                &test_adm;
 
245
                                &test_bind;
 
246
                                &test_book;
 
247
                        </simplelist>
 
248
                </doc:samples>
 
249
                <doc:seealso>
 
250
                        <itemizedlist>
 
251
                                <listitem><para>&mapping;</para></listitem>
 
252
                        </itemizedlist>
 
253
                </doc:seealso>
 
254
        </doc:template>
 
255
 
 
256
        <xsl:template match="note|important|warning|caution|tip">
 
257
                <xsl:call-template name="map.begin">
 
258
                        <xsl:with-param name="keyword">admonition</xsl:with-param>
 
259
                        <xsl:with-param name="string">
 
260
                                <xsl:text>{</xsl:text>
 
261
                                <xsl:value-of select="$admon.graphics.path"/><xsl:text>/</xsl:text>
 
262
                                <xsl:call-template name="admon.graphic"/>
 
263
                                <xsl:text>}{</xsl:text>
 
264
                                <xsl:choose>
 
265
                                        <xsl:when test="title and $latex.apply.title.templates.admonitions='1'">
 
266
                                                <xsl:call-template name="extract.object.title">
 
267
                                                        <xsl:with-param name="object" select="."/>
 
268
                                                </xsl:call-template>
 
269
                                        </xsl:when>
 
270
                                        <xsl:otherwise>
 
271
                                                <xsl:call-template name="gentext.element.name"/>
 
272
                                        </xsl:otherwise>
 
273
                                </xsl:choose>
 
274
                                <xsl:text>}</xsl:text>
 
275
                        </xsl:with-param>
 
276
                </xsl:call-template>
 
277
                <xsl:call-template name="content-templates"/>
 
278
                <xsl:call-template name="map.end">
 
279
                        <xsl:with-param name="keyword">admonition</xsl:with-param>
 
280
                </xsl:call-template>
 
281
        </xsl:template>
 
282
 
 
283
</xsl:stylesheet>