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">
8
<releaseinfo role="meta">
9
$Id: scape.mod.xsl,v 1.4 2004/01/23 11:36:06 j-devenish Exp $
13
<firstname>James</firstname>
14
<surname>Devenish</surname>
20
<holder>Ramon Casellas</holder>
23
<title><productname condition="noindex">LaTeX</productname> Active-character Escaping</title>
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>
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.
34
<title>Mapping Source</title>
35
<programlisting><![CDATA[<template name="scape">
37
<map from="<" to="\textless{}"/>
39
<map from=">" to="\textgreater{}"/>
41
<map from="~" to="\textasciitilde{}"/>
43
<map from="^" to="\textasciicircum{}"/>
45
<map from="&" to="\&"/>
47
<map from="#" to="\#"/>
49
<map from="_" to="\_"/>
51
<map from="$" to="\$"/>
53
<map from="%" to="\%"/>
55
<map from="|" to="\docbooktolatexpipe{}"/>
57
<map from="{" to="\{"/>
59
<map from="}" to="\}"/>
61
<map from="\textbackslash " to="\textbackslash \ "/>
63
<map from="\" to="\textbackslash "/>
65
</template>]]></programlisting>
68
<xsl:template name="scape">
69
<xsl:param name="string"/>
70
<xsl:call-template name="string-replace">
71
<xsl:with-param name="from"><</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">></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">&</xsl:with-param>
88
<xsl:with-param name="to">\&</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"/>
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>
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.
165
<title>Mapping Source</title>
166
<programlisting><![CDATA[<template name="scape-indexterm">
168
<map from="!" to=""!"/>
170
<map from="|" to="\ensuremath{"|}"/>
172
<map from="@" to=""@"/>
174
<map from="<" to="\textless{}"/>
176
<map from=">" to="\textgreater{}"/>
178
<map from="~" to="\textasciitilde{}"/>
180
<map from="^" to="\textasciicircum{}"/>
182
<map from="&" to="\&"/>
184
<map from="#" to="\#"/>
186
<map from="_" to="\_"/>
188
<map from="$" to="\$"/>
190
<map from="%" to="\%"/>
192
<map from="\}" to="\textbraceright{}"/>
194
<map from="{" to="\textbraceleft{}"/>
196
<map from="}" to="\}"/>
198
<map from=""" to=""""/>
200
<map from="\textbackslash " to="\textbackslash \ "/>
202
<map from="\" to="\textbackslash "/>
204
</template>]]></programlisting>
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"><</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">></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">&</xsl:with-param>
239
<xsl:with-param name="to">\&</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"/>
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>
320
<title>Mapping Source</title>
321
<programlisting><![CDATA[<template name="scape-verbatim">
323
<map from="~" to="\textasciitilde{}"/>
325
<map from="^" to="\textasciicircum{}"/>
327
<map from="&" to="\&"/>
329
<map from="#" to="\#"/>
331
<map from="_" to="\_\dbz{}"/>
333
<map from="$" to="\$"/>
335
<map from="%" to="\%"/>
337
<map from="/" to="/\dbz{}"/>
339
<map from="-" to="-\dbz{}"/>
341
<map from="+" to="+\dbz{}"/>
343
<map from="." to=".\dbz{}"/>
345
<map from="(" to="(\dbz{}"/>
347
<map from=")" to=")\dbz{}"/>
349
<map from="{" to="\docbooktolatexgobble\string\{"/>
351
<map from="}" to="\docbooktolatexgobble\string\}"/>
353
<map from="\" to="\docbooktolatexgobble\string\\"/>
355
</template>]]></programlisting>
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">&</xsl:with-param>
370
<xsl:with-param name="to">\&</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"/>
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>
460
<title>Mapping Source</title>
461
<programlisting><![CDATA[<template name="scape-href">
463
<map from="&" to="\&"/>
465
<map from="%" to="\%"/>
467
<map from="[" to="\["/>
469
<map from="]" to="\]"/>
471
<map from="{" to="\{"/>
473
<map from="}" to="\}"/>
475
<map from="\" to="\docbooktolatexgobble\string\\"/>
477
</template>]]></programlisting>
480
<xsl:template name="scape-href">
481
<xsl:param name="string"/>
482
<xsl:call-template name="string-replace">
483
<xsl:with-param name="from">&</xsl:with-param>
484
<xsl:with-param name="to">\&</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"/>
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>
528
<title>Mapping Source</title>
529
<programlisting><![CDATA[<template name="scape-url">
531
<map from="&" to="\string&"/>
533
<map from="%" to="\%"/>
535
<map from="{" to="\{"/>
537
<map from="}" to="\}"/>
539
<map from="\" to="\docbooktolatexgobble\string\\"/>
541
</template>]]></programlisting>
544
<xsl:template name="scape-url">
545
<xsl:param name="string"/>
546
<xsl:call-template name="string-replace">
547
<xsl:with-param name="from">&</xsl:with-param>
548
<xsl:with-param name="to">\string&</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"/>
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>
579
<title>Mapping Source</title>
580
<programlisting><![CDATA[<template name="scape-optionalarg">
582
<map from="]" to="{\rbrack}"/>
584
</template>]]></programlisting>
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"/>
595
<doc:template xmlns:doc="http://nwalsh.com/xsl/documentation/1.0">
596
<refpurpose>Basic line-breaking for verbatim text</refpurpose>
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.
605
<title>Mapping Source</title>
606
<programlisting><![CDATA[<template name="scape-slash">
608
<map from="." to=".\dbz{}"/>
610
<map from="/" to="/\dbz{}"/>
612
</template>]]></programlisting>
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"/>