~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to docs-xml/xslt/db2latex-xsl/xsl/scape.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" encoding="utf-8"?>
 
2
<!-- This file was generated automatically. -->
 
3
<!-- Developers should not commit sundry patches against this file. -->
 
4
<!-- The source file (with documentation!) is in the admin directory. -->
 
5
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
6
  <doc:reference xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" id="scape">
 
7
    <referenceinfo>
 
8
      <releaseinfo role="meta">
 
9
        $Id: scape.mod.xsl,v 1.4 2004/01/23 11:36:06 j-devenish Exp $
 
10
      </releaseinfo>
 
11
      <authorgroup>
 
12
        <author>
 
13
          <firstname>James</firstname>
 
14
          <surname>Devenish</surname>
 
15
        </author>
 
16
      </authorgroup>
 
17
      <copyright>
 
18
        <year>2003</year>
 
19
        <year>2004</year>
 
20
        <holder>Ramon Casellas</holder>
 
21
      </copyright>
 
22
    </referenceinfo>
 
23
    <title><productname condition="noindex">LaTeX</productname> Active-character Escaping</title>
 
24
  </doc:reference>
 
25
  <doc:template xmlns:doc="http://nwalsh.com/xsl/documentation/1.0">
 
26
    <refpurpose>General text escaping for <productname condition="noindex">LaTeX</productname> active characters</refpurpose>
 
27
    <doc:description>
 
28
      <para>
 
29
        Certain characters must be escaped so that <productname condition="noindex">LaTeX</productname> will typeset
 
30
        them verbatim rather than attempting to interpret them as commands.
 
31
      </para>
 
32
    </doc:description>
 
33
    <refsection>
 
34
      <title>Mapping Source</title>
 
35
      <programlisting><![CDATA[<template name="scape">
 
36
    
 
37
               <map from="&lt;" to="\textless{}"/>
 
38
    
 
39
               <map from="&gt;" to="\textgreater{}"/>
 
40
    
 
41
               <map from="~" to="\textasciitilde{}"/>
 
42
    
 
43
               <map from="^" to="\textasciicircum{}"/>
 
44
    
 
45
               <map from="&amp;" to="\&amp;"/>
 
46
    
 
47
               <map from="#" to="\#"/>
 
48
    
 
49
               <map from="_" to="\_"/>
 
50
    
 
51
               <map from="$" to="\$"/>
 
52
    
 
53
               <map from="%" to="\%"/>
 
54
    
 
55
               <map from="|" to="\docbooktolatexpipe{}"/>
 
56
    
 
57
               <map from="{" to="\{"/>
 
58
    
 
59
               <map from="}" to="\}"/>
 
60
    
 
61
               <map from="\textbackslash  " to="\textbackslash \ "/>
 
62
    
 
63
               <map from="\" to="\textbackslash "/>
 
64
  
 
65
            </template>]]></programlisting>
 
66
    </refsection>
 
67
  </doc:template>
 
68
  <xsl:template name="scape">
 
69
    <xsl:param name="string"/>
 
70
    <xsl:call-template name="string-replace">
 
71
      <xsl:with-param name="from">&lt;</xsl:with-param>
 
72
      <xsl:with-param name="to">\textless{}</xsl:with-param>
 
73
      <xsl:with-param name="string">
 
74
        <xsl:call-template name="string-replace">
 
75
          <xsl:with-param name="from">&gt;</xsl:with-param>
 
76
          <xsl:with-param name="to">\textgreater{}</xsl:with-param>
 
77
          <xsl:with-param name="string">
 
78
            <xsl:call-template name="string-replace">
 
79
              <xsl:with-param name="from">~</xsl:with-param>
 
80
              <xsl:with-param name="to">\textasciitilde{}</xsl:with-param>
 
81
              <xsl:with-param name="string">
 
82
                <xsl:call-template name="string-replace">
 
83
                  <xsl:with-param name="from">^</xsl:with-param>
 
84
                  <xsl:with-param name="to">\textasciicircum{}</xsl:with-param>
 
85
                  <xsl:with-param name="string">
 
86
                    <xsl:call-template name="string-replace">
 
87
                      <xsl:with-param name="from">&amp;</xsl:with-param>
 
88
                      <xsl:with-param name="to">\&amp;</xsl:with-param>
 
89
                      <xsl:with-param name="string">
 
90
                        <xsl:call-template name="string-replace">
 
91
                          <xsl:with-param name="from">#</xsl:with-param>
 
92
                          <xsl:with-param name="to">\#</xsl:with-param>
 
93
                          <xsl:with-param name="string">
 
94
                            <xsl:call-template name="string-replace">
 
95
                              <xsl:with-param name="from">_</xsl:with-param>
 
96
                              <xsl:with-param name="to">\_</xsl:with-param>
 
97
                              <xsl:with-param name="string">
 
98
                                <xsl:call-template name="string-replace">
 
99
                                  <xsl:with-param name="from">$</xsl:with-param>
 
100
                                  <xsl:with-param name="to">\$</xsl:with-param>
 
101
                                  <xsl:with-param name="string">
 
102
                                    <xsl:call-template name="string-replace">
 
103
                                      <xsl:with-param name="from">%</xsl:with-param>
 
104
                                      <xsl:with-param name="to">\%</xsl:with-param>
 
105
                                      <xsl:with-param name="string">
 
106
                                        <xsl:call-template name="string-replace">
 
107
                                          <xsl:with-param name="from">|</xsl:with-param>
 
108
                                          <xsl:with-param name="to">\docbooktolatexpipe{}</xsl:with-param>
 
109
                                          <xsl:with-param name="string">
 
110
                                            <xsl:call-template name="string-replace">
 
111
                                              <xsl:with-param name="from">{</xsl:with-param>
 
112
                                              <xsl:with-param name="to">\{</xsl:with-param>
 
113
                                              <xsl:with-param name="string">
 
114
                                                <xsl:call-template name="string-replace">
 
115
                                                  <xsl:with-param name="from">}</xsl:with-param>
 
116
                                                  <xsl:with-param name="to">\}</xsl:with-param>
 
117
                                                  <xsl:with-param name="string">
 
118
                                                    <xsl:call-template name="string-replace">
 
119
                                                      <xsl:with-param name="from">\textbackslash  </xsl:with-param>
 
120
                                                      <xsl:with-param name="to">\textbackslash \ </xsl:with-param>
 
121
                                                      <xsl:with-param name="string">
 
122
                                                        <xsl:call-template name="string-replace">
 
123
                                                          <xsl:with-param name="from">\</xsl:with-param>
 
124
                                                          <xsl:with-param name="to">\textbackslash </xsl:with-param>
 
125
                                                          <xsl:with-param name="string" select="$string"/>
 
126
                                                        </xsl:call-template>
 
127
                                                      </xsl:with-param>
 
128
                                                    </xsl:call-template>
 
129
                                                  </xsl:with-param>
 
130
                                                </xsl:call-template>
 
131
                                              </xsl:with-param>
 
132
                                            </xsl:call-template>
 
133
                                          </xsl:with-param>
 
134
                                        </xsl:call-template>
 
135
                                      </xsl:with-param>
 
136
                                    </xsl:call-template>
 
137
                                  </xsl:with-param>
 
138
                                </xsl:call-template>
 
139
                              </xsl:with-param>
 
140
                            </xsl:call-template>
 
141
                          </xsl:with-param>
 
142
                        </xsl:call-template>
 
143
                      </xsl:with-param>
 
144
                    </xsl:call-template>
 
145
                  </xsl:with-param>
 
146
                </xsl:call-template>
 
147
              </xsl:with-param>
 
148
            </xsl:call-template>
 
149
          </xsl:with-param>
 
150
        </xsl:call-template>
 
151
      </xsl:with-param>
 
152
    </xsl:call-template>
 
153
  </xsl:template>
 
154
  <doc:template xmlns:doc="http://nwalsh.com/xsl/documentation/1.0">
 
155
    <refpurpose>Escape characters for use with <function condition="latex">index</function> 
 
156
         <productname condition="noindex">LaTeX</productname> command</refpurpose>
 
157
    <doc:description>
 
158
      <para>
 
159
        In addition to the characters from <xref linkend="template.scape"/>,
 
160
        certain extra characters must be escaped so that <productname condition="noindex">LaTeX</productname> will not treat
 
161
        them as indexing directives.
 
162
      </para>
 
163
    </doc:description>
 
164
    <refsection>
 
165
      <title>Mapping Source</title>
 
166
      <programlisting><![CDATA[<template name="scape-indexterm">
 
167
    
 
168
               <map from="!" to="&#34;!"/>
 
169
    
 
170
               <map from="|" to="\ensuremath{&#34;|}"/>
 
171
    
 
172
               <map from="@" to="&#34;@"/>
 
173
    
 
174
               <map from="&lt;" to="\textless{}"/>
 
175
    
 
176
               <map from="&gt;" to="\textgreater{}"/>
 
177
    
 
178
               <map from="~" to="\textasciitilde{}"/>
 
179
    
 
180
               <map from="^" to="\textasciicircum{}"/>
 
181
    
 
182
               <map from="&amp;" to="\&amp;"/>
 
183
    
 
184
               <map from="#" to="\#"/>
 
185
    
 
186
               <map from="_" to="\_"/>
 
187
    
 
188
               <map from="$" to="\$"/>
 
189
    
 
190
               <map from="%" to="\%"/>
 
191
    
 
192
               <map from="\}" to="\textbraceright{}"/>
 
193
    
 
194
               <map from="{" to="\textbraceleft{}"/>
 
195
    
 
196
               <map from="}" to="\}"/>
 
197
    
 
198
               <map from="&#34;" to="&#34;&#34;"/>
 
199
    
 
200
               <map from="\textbackslash  " to="\textbackslash \ "/>
 
201
    
 
202
               <map from="\" to="\textbackslash "/>
 
203
  
 
204
            </template>]]></programlisting>
 
205
    </refsection>
 
206
  </doc:template>
 
207
  <xsl:template name="scape-indexterm">
 
208
    <xsl:param name="string"/>
 
209
    <xsl:call-template name="string-replace">
 
210
      <xsl:with-param name="from">!</xsl:with-param>
 
211
      <xsl:with-param name="to">"!</xsl:with-param>
 
212
      <xsl:with-param name="string">
 
213
        <xsl:call-template name="string-replace">
 
214
          <xsl:with-param name="from">|</xsl:with-param>
 
215
          <xsl:with-param name="to">\ensuremath{"|}</xsl:with-param>
 
216
          <xsl:with-param name="string">
 
217
            <xsl:call-template name="string-replace">
 
218
              <xsl:with-param name="from">@</xsl:with-param>
 
219
              <xsl:with-param name="to">"@</xsl:with-param>
 
220
              <xsl:with-param name="string">
 
221
                <xsl:call-template name="string-replace">
 
222
                  <xsl:with-param name="from">&lt;</xsl:with-param>
 
223
                  <xsl:with-param name="to">\textless{}</xsl:with-param>
 
224
                  <xsl:with-param name="string">
 
225
                    <xsl:call-template name="string-replace">
 
226
                      <xsl:with-param name="from">&gt;</xsl:with-param>
 
227
                      <xsl:with-param name="to">\textgreater{}</xsl:with-param>
 
228
                      <xsl:with-param name="string">
 
229
                        <xsl:call-template name="string-replace">
 
230
                          <xsl:with-param name="from">~</xsl:with-param>
 
231
                          <xsl:with-param name="to">\textasciitilde{}</xsl:with-param>
 
232
                          <xsl:with-param name="string">
 
233
                            <xsl:call-template name="string-replace">
 
234
                              <xsl:with-param name="from">^</xsl:with-param>
 
235
                              <xsl:with-param name="to">\textasciicircum{}</xsl:with-param>
 
236
                              <xsl:with-param name="string">
 
237
                                <xsl:call-template name="string-replace">
 
238
                                  <xsl:with-param name="from">&amp;</xsl:with-param>
 
239
                                  <xsl:with-param name="to">\&amp;</xsl:with-param>
 
240
                                  <xsl:with-param name="string">
 
241
                                    <xsl:call-template name="string-replace">
 
242
                                      <xsl:with-param name="from">#</xsl:with-param>
 
243
                                      <xsl:with-param name="to">\#</xsl:with-param>
 
244
                                      <xsl:with-param name="string">
 
245
                                        <xsl:call-template name="string-replace">
 
246
                                          <xsl:with-param name="from">_</xsl:with-param>
 
247
                                          <xsl:with-param name="to">\_</xsl:with-param>
 
248
                                          <xsl:with-param name="string">
 
249
                                            <xsl:call-template name="string-replace">
 
250
                                              <xsl:with-param name="from">$</xsl:with-param>
 
251
                                              <xsl:with-param name="to">\$</xsl:with-param>
 
252
                                              <xsl:with-param name="string">
 
253
                                                <xsl:call-template name="string-replace">
 
254
                                                  <xsl:with-param name="from">%</xsl:with-param>
 
255
                                                  <xsl:with-param name="to">\%</xsl:with-param>
 
256
                                                  <xsl:with-param name="string">
 
257
                                                    <xsl:call-template name="string-replace">
 
258
                                                      <xsl:with-param name="from">\}</xsl:with-param>
 
259
                                                      <xsl:with-param name="to">\textbraceright{}</xsl:with-param>
 
260
                                                      <xsl:with-param name="string">
 
261
                                                        <xsl:call-template name="string-replace">
 
262
                                                          <xsl:with-param name="from">{</xsl:with-param>
 
263
                                                          <xsl:with-param name="to">\textbraceleft{}</xsl:with-param>
 
264
                                                          <xsl:with-param name="string">
 
265
                                                            <xsl:call-template name="string-replace">
 
266
                                                              <xsl:with-param name="from">}</xsl:with-param>
 
267
                                                              <xsl:with-param name="to">\}</xsl:with-param>
 
268
                                                              <xsl:with-param name="string">
 
269
                                                                <xsl:call-template name="string-replace">
 
270
                                                                  <xsl:with-param name="from">"</xsl:with-param>
 
271
                                                                  <xsl:with-param name="to">""</xsl:with-param>
 
272
                                                                  <xsl:with-param name="string">
 
273
                                                                    <xsl:call-template name="string-replace">
 
274
                                                                      <xsl:with-param name="from">\textbackslash  </xsl:with-param>
 
275
                                                                      <xsl:with-param name="to">\textbackslash \ </xsl:with-param>
 
276
                                                                      <xsl:with-param name="string">
 
277
                                                                        <xsl:call-template name="string-replace">
 
278
                                                                          <xsl:with-param name="from">\</xsl:with-param>
 
279
                                                                          <xsl:with-param name="to">\textbackslash </xsl:with-param>
 
280
                                                                          <xsl:with-param name="string" select="$string"/>
 
281
                                                                        </xsl:call-template>
 
282
                                                                      </xsl:with-param>
 
283
                                                                    </xsl:call-template>
 
284
                                                                  </xsl:with-param>
 
285
                                                                </xsl:call-template>
 
286
                                                              </xsl:with-param>
 
287
                                                            </xsl:call-template>
 
288
                                                          </xsl:with-param>
 
289
                                                        </xsl:call-template>
 
290
                                                      </xsl:with-param>
 
291
                                                    </xsl:call-template>
 
292
                                                  </xsl:with-param>
 
293
                                                </xsl:call-template>
 
294
                                              </xsl:with-param>
 
295
                                            </xsl:call-template>
 
296
                                          </xsl:with-param>
 
297
                                        </xsl:call-template>
 
298
                                      </xsl:with-param>
 
299
                                    </xsl:call-template>
 
300
                                  </xsl:with-param>
 
301
                                </xsl:call-template>
 
302
                              </xsl:with-param>
 
303
                            </xsl:call-template>
 
304
                          </xsl:with-param>
 
305
                        </xsl:call-template>
 
306
                      </xsl:with-param>
 
307
                    </xsl:call-template>
 
308
                  </xsl:with-param>
 
309
                </xsl:call-template>
 
310
              </xsl:with-param>
 
311
            </xsl:call-template>
 
312
          </xsl:with-param>
 
313
        </xsl:call-template>
 
314
      </xsl:with-param>
 
315
    </xsl:call-template>
 
316
  </xsl:template>
 
317
  <doc:template xmlns:doc="http://nwalsh.com/xsl/documentation/1.0">
 
318
    <refpurpose>Verbatim-text escaping for <productname condition="noindex">LaTeX</productname> active characters</refpurpose>
 
319
    <refsection>
 
320
      <title>Mapping Source</title>
 
321
      <programlisting><![CDATA[<template name="scape-verbatim">
 
322
    
 
323
               <map from="~" to="\textasciitilde{}"/>
 
324
    
 
325
               <map from="^" to="\textasciicircum{}"/>
 
326
    
 
327
               <map from="&amp;" to="\&amp;"/>
 
328
    
 
329
               <map from="#" to="\#"/>
 
330
    
 
331
               <map from="_" to="\_\dbz{}"/>
 
332
    
 
333
               <map from="$" to="\$"/>
 
334
    
 
335
               <map from="%" to="\%"/>
 
336
    
 
337
               <map from="/" to="/\dbz{}"/>
 
338
    
 
339
               <map from="-" to="-\dbz{}"/>
 
340
    
 
341
               <map from="+" to="+\dbz{}"/>
 
342
    
 
343
               <map from="." to=".\dbz{}"/>
 
344
    
 
345
               <map from="(" to="(\dbz{}"/>
 
346
    
 
347
               <map from=")" to=")\dbz{}"/>
 
348
    
 
349
               <map from="{" to="\docbooktolatexgobble\string\{"/>
 
350
    
 
351
               <map from="}" to="\docbooktolatexgobble\string\}"/>
 
352
    
 
353
               <map from="\" to="\docbooktolatexgobble\string\\"/>
 
354
  
 
355
            </template>]]></programlisting>
 
356
    </refsection>
 
357
  </doc:template>
 
358
  <xsl:template name="scape-verbatim">
 
359
    <xsl:param name="string"/>
 
360
    <xsl:call-template name="string-replace">
 
361
      <xsl:with-param name="from">~</xsl:with-param>
 
362
      <xsl:with-param name="to">\textasciitilde{}</xsl:with-param>
 
363
      <xsl:with-param name="string">
 
364
        <xsl:call-template name="string-replace">
 
365
          <xsl:with-param name="from">^</xsl:with-param>
 
366
          <xsl:with-param name="to">\textasciicircum{}</xsl:with-param>
 
367
          <xsl:with-param name="string">
 
368
            <xsl:call-template name="string-replace">
 
369
              <xsl:with-param name="from">&amp;</xsl:with-param>
 
370
              <xsl:with-param name="to">\&amp;</xsl:with-param>
 
371
              <xsl:with-param name="string">
 
372
                <xsl:call-template name="string-replace">
 
373
                  <xsl:with-param name="from">#</xsl:with-param>
 
374
                  <xsl:with-param name="to">\#</xsl:with-param>
 
375
                  <xsl:with-param name="string">
 
376
                    <xsl:call-template name="string-replace">
 
377
                      <xsl:with-param name="from">_</xsl:with-param>
 
378
                      <xsl:with-param name="to">\_\dbz{}</xsl:with-param>
 
379
                      <xsl:with-param name="string">
 
380
                        <xsl:call-template name="string-replace">
 
381
                          <xsl:with-param name="from">$</xsl:with-param>
 
382
                          <xsl:with-param name="to">\$</xsl:with-param>
 
383
                          <xsl:with-param name="string">
 
384
                            <xsl:call-template name="string-replace">
 
385
                              <xsl:with-param name="from">%</xsl:with-param>
 
386
                              <xsl:with-param name="to">\%</xsl:with-param>
 
387
                              <xsl:with-param name="string">
 
388
                                <xsl:call-template name="string-replace">
 
389
                                  <xsl:with-param name="from">/</xsl:with-param>
 
390
                                  <xsl:with-param name="to">/\dbz{}</xsl:with-param>
 
391
                                  <xsl:with-param name="string">
 
392
                                    <xsl:call-template name="string-replace">
 
393
                                      <xsl:with-param name="from">-</xsl:with-param>
 
394
                                      <xsl:with-param name="to">-\dbz{}</xsl:with-param>
 
395
                                      <xsl:with-param name="string">
 
396
                                        <xsl:call-template name="string-replace">
 
397
                                          <xsl:with-param name="from">+</xsl:with-param>
 
398
                                          <xsl:with-param name="to">+\dbz{}</xsl:with-param>
 
399
                                          <xsl:with-param name="string">
 
400
                                            <xsl:call-template name="string-replace">
 
401
                                              <xsl:with-param name="from">.</xsl:with-param>
 
402
                                              <xsl:with-param name="to">.\dbz{}</xsl:with-param>
 
403
                                              <xsl:with-param name="string">
 
404
                                                <xsl:call-template name="string-replace">
 
405
                                                  <xsl:with-param name="from">(</xsl:with-param>
 
406
                                                  <xsl:with-param name="to">(\dbz{}</xsl:with-param>
 
407
                                                  <xsl:with-param name="string">
 
408
                                                    <xsl:call-template name="string-replace">
 
409
                                                      <xsl:with-param name="from">)</xsl:with-param>
 
410
                                                      <xsl:with-param name="to">)\dbz{}</xsl:with-param>
 
411
                                                      <xsl:with-param name="string">
 
412
                                                        <xsl:call-template name="string-replace">
 
413
                                                          <xsl:with-param name="from">{</xsl:with-param>
 
414
                                                          <xsl:with-param name="to">\docbooktolatexgobble\string\{</xsl:with-param>
 
415
                                                          <xsl:with-param name="string">
 
416
                                                            <xsl:call-template name="string-replace">
 
417
                                                              <xsl:with-param name="from">}</xsl:with-param>
 
418
                                                              <xsl:with-param name="to">\docbooktolatexgobble\string\}</xsl:with-param>
 
419
                                                              <xsl:with-param name="string">
 
420
                                                                <xsl:call-template name="string-replace">
 
421
                                                                  <xsl:with-param name="from">\</xsl:with-param>
 
422
                                                                  <xsl:with-param name="to">\docbooktolatexgobble\string\\</xsl:with-param>
 
423
                                                                  <xsl:with-param name="string" select="$string"/>
 
424
                                                                </xsl:call-template>
 
425
                                                              </xsl:with-param>
 
426
                                                            </xsl:call-template>
 
427
                                                          </xsl:with-param>
 
428
                                                        </xsl:call-template>
 
429
                                                      </xsl:with-param>
 
430
                                                    </xsl:call-template>
 
431
                                                  </xsl:with-param>
 
432
                                                </xsl:call-template>
 
433
                                              </xsl:with-param>
 
434
                                            </xsl:call-template>
 
435
                                          </xsl:with-param>
 
436
                                        </xsl:call-template>
 
437
                                      </xsl:with-param>
 
438
                                    </xsl:call-template>
 
439
                                  </xsl:with-param>
 
440
                                </xsl:call-template>
 
441
                              </xsl:with-param>
 
442
                            </xsl:call-template>
 
443
                          </xsl:with-param>
 
444
                        </xsl:call-template>
 
445
                      </xsl:with-param>
 
446
                    </xsl:call-template>
 
447
                  </xsl:with-param>
 
448
                </xsl:call-template>
 
449
              </xsl:with-param>
 
450
            </xsl:call-template>
 
451
          </xsl:with-param>
 
452
        </xsl:call-template>
 
453
      </xsl:with-param>
 
454
    </xsl:call-template>
 
455
  </xsl:template>
 
456
  <doc:template xmlns:doc="http://nwalsh.com/xsl/documentation/1.0">
 
457
    <refpurpose>Escape characters for use with the <productname>hyperref</productname> 
 
458
         <productname condition="noindex">LaTeX</productname> package</refpurpose>
 
459
    <refsection>
 
460
      <title>Mapping Source</title>
 
461
      <programlisting><![CDATA[<template name="scape-href">
 
462
    
 
463
               <map from="&amp;" to="\&amp;"/>
 
464
    
 
465
               <map from="%" to="\%"/>
 
466
    
 
467
               <map from="[" to="\["/>
 
468
    
 
469
               <map from="]" to="\]"/>
 
470
    
 
471
               <map from="{" to="\{"/>
 
472
    
 
473
               <map from="}" to="\}"/>
 
474
    
 
475
               <map from="\" to="\docbooktolatexgobble\string\\"/>
 
476
  
 
477
            </template>]]></programlisting>
 
478
    </refsection>
 
479
  </doc:template>
 
480
  <xsl:template name="scape-href">
 
481
    <xsl:param name="string"/>
 
482
    <xsl:call-template name="string-replace">
 
483
      <xsl:with-param name="from">&amp;</xsl:with-param>
 
484
      <xsl:with-param name="to">\&amp;</xsl:with-param>
 
485
      <xsl:with-param name="string">
 
486
        <xsl:call-template name="string-replace">
 
487
          <xsl:with-param name="from">%</xsl:with-param>
 
488
          <xsl:with-param name="to">\%</xsl:with-param>
 
489
          <xsl:with-param name="string">
 
490
            <xsl:call-template name="string-replace">
 
491
              <xsl:with-param name="from">[</xsl:with-param>
 
492
              <xsl:with-param name="to">\[</xsl:with-param>
 
493
              <xsl:with-param name="string">
 
494
                <xsl:call-template name="string-replace">
 
495
                  <xsl:with-param name="from">]</xsl:with-param>
 
496
                  <xsl:with-param name="to">\]</xsl:with-param>
 
497
                  <xsl:with-param name="string">
 
498
                    <xsl:call-template name="string-replace">
 
499
                      <xsl:with-param name="from">{</xsl:with-param>
 
500
                      <xsl:with-param name="to">\{</xsl:with-param>
 
501
                      <xsl:with-param name="string">
 
502
                        <xsl:call-template name="string-replace">
 
503
                          <xsl:with-param name="from">}</xsl:with-param>
 
504
                          <xsl:with-param name="to">\}</xsl:with-param>
 
505
                          <xsl:with-param name="string">
 
506
                            <xsl:call-template name="string-replace">
 
507
                              <xsl:with-param name="from">\</xsl:with-param>
 
508
                              <xsl:with-param name="to">\docbooktolatexgobble\string\\</xsl:with-param>
 
509
                              <xsl:with-param name="string" select="$string"/>
 
510
                            </xsl:call-template>
 
511
                          </xsl:with-param>
 
512
                        </xsl:call-template>
 
513
                      </xsl:with-param>
 
514
                    </xsl:call-template>
 
515
                  </xsl:with-param>
 
516
                </xsl:call-template>
 
517
              </xsl:with-param>
 
518
            </xsl:call-template>
 
519
          </xsl:with-param>
 
520
        </xsl:call-template>
 
521
      </xsl:with-param>
 
522
    </xsl:call-template>
 
523
  </xsl:template>
 
524
  <doc:template xmlns:doc="http://nwalsh.com/xsl/documentation/1.0">
 
525
    <refpurpose>Escape characters for use with the <productname>url</productname> 
 
526
         <productname condition="noindex">LaTeX</productname> package</refpurpose>
 
527
    <refsection>
 
528
      <title>Mapping Source</title>
 
529
      <programlisting><![CDATA[<template name="scape-url">
 
530
    
 
531
               <map from="&amp;" to="\string&amp;"/>
 
532
    
 
533
               <map from="%" to="\%"/>
 
534
    
 
535
               <map from="{" to="\{"/>
 
536
    
 
537
               <map from="}" to="\}"/>
 
538
    
 
539
               <map from="\" to="\docbooktolatexgobble\string\\"/>
 
540
  
 
541
            </template>]]></programlisting>
 
542
    </refsection>
 
543
  </doc:template>
 
544
  <xsl:template name="scape-url">
 
545
    <xsl:param name="string"/>
 
546
    <xsl:call-template name="string-replace">
 
547
      <xsl:with-param name="from">&amp;</xsl:with-param>
 
548
      <xsl:with-param name="to">\string&amp;</xsl:with-param>
 
549
      <xsl:with-param name="string">
 
550
        <xsl:call-template name="string-replace">
 
551
          <xsl:with-param name="from">%</xsl:with-param>
 
552
          <xsl:with-param name="to">\%</xsl:with-param>
 
553
          <xsl:with-param name="string">
 
554
            <xsl:call-template name="string-replace">
 
555
              <xsl:with-param name="from">{</xsl:with-param>
 
556
              <xsl:with-param name="to">\{</xsl:with-param>
 
557
              <xsl:with-param name="string">
 
558
                <xsl:call-template name="string-replace">
 
559
                  <xsl:with-param name="from">}</xsl:with-param>
 
560
                  <xsl:with-param name="to">\}</xsl:with-param>
 
561
                  <xsl:with-param name="string">
 
562
                    <xsl:call-template name="string-replace">
 
563
                      <xsl:with-param name="from">\</xsl:with-param>
 
564
                      <xsl:with-param name="to">\docbooktolatexgobble\string\\</xsl:with-param>
 
565
                      <xsl:with-param name="string" select="$string"/>
 
566
                    </xsl:call-template>
 
567
                  </xsl:with-param>
 
568
                </xsl:call-template>
 
569
              </xsl:with-param>
 
570
            </xsl:call-template>
 
571
          </xsl:with-param>
 
572
        </xsl:call-template>
 
573
      </xsl:with-param>
 
574
    </xsl:call-template>
 
575
  </xsl:template>
 
576
  <doc:template xmlns:doc="http://nwalsh.com/xsl/documentation/1.0">
 
577
    <refpurpose>Escape the ] character in <productname condition="noindex">LaTeX</productname> optional arguments (experimental)</refpurpose>
 
578
    <refsection>
 
579
      <title>Mapping Source</title>
 
580
      <programlisting><![CDATA[<template name="scape-optionalarg">
 
581
    
 
582
               <map from="]" to="{\rbrack}"/>
 
583
  
 
584
            </template>]]></programlisting>
 
585
    </refsection>
 
586
  </doc:template>
 
587
  <xsl:template name="scape-optionalarg">
 
588
    <xsl:param name="string"/>
 
589
    <xsl:call-template name="string-replace">
 
590
      <xsl:with-param name="from">]</xsl:with-param>
 
591
      <xsl:with-param name="to">{\rbrack}</xsl:with-param>
 
592
      <xsl:with-param name="string" select="$string"/>
 
593
    </xsl:call-template>
 
594
  </xsl:template>
 
595
  <doc:template xmlns:doc="http://nwalsh.com/xsl/documentation/1.0">
 
596
    <refpurpose>Basic line-breaking for verbatim text</refpurpose>
 
597
    <doc:description>
 
598
      <para>
 
599
        Allow line breaking after certain characters.
 
600
        Text should be escaped with the <xref linkend="template.scape"/>
 
601
        template before being passed to this template.
 
602
      </para>
 
603
    </doc:description>
 
604
    <refsection>
 
605
      <title>Mapping Source</title>
 
606
      <programlisting><![CDATA[<template name="scape-slash">
 
607
    
 
608
               <map from="." to=".\dbz{}"/>
 
609
    
 
610
               <map from="/" to="/\dbz{}"/>
 
611
  
 
612
            </template>]]></programlisting>
 
613
    </refsection>
 
614
  </doc:template>
 
615
  <xsl:template name="scape-slash">
 
616
    <xsl:param name="string"/>
 
617
    <xsl:call-template name="string-replace">
 
618
      <xsl:with-param name="from">.</xsl:with-param>
 
619
      <xsl:with-param name="to">.\dbz{}</xsl:with-param>
 
620
      <xsl:with-param name="string">
 
621
        <xsl:call-template name="string-replace">
 
622
          <xsl:with-param name="from">/</xsl:with-param>
 
623
          <xsl:with-param name="to">/\dbz{}</xsl:with-param>
 
624
          <xsl:with-param name="string" select="$string"/>
 
625
        </xsl:call-template>
 
626
      </xsl:with-param>
 
627
    </xsl:call-template>
 
628
  </xsl:template>
 
629
</xsl:stylesheet>