source: branches/samba-3.2.x/docs-xml/xslt/db2latex-xsl/xsl/admonition.mod.xsl

Last change on this file was 203, checked in by Herwig Bauernfeind, 16 years ago

Missing 3.2.2 client and HOWTO files

File size: 10.3 KB
Line 
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>
Note: See TracBrowser for help on using the repository browser.