source: stylesheets/lfs-xsl/docbook-xsl-1.78.1/fo/inline.xsl@ 15c7d39

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 7.5 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 15c7d39 was 15c7d39, checked in by Matthew Burgess <matthew@…>, 11 years ago

Update stylesheets to docbook-xsl-1.78.1.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@10355 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 40.7 KB
Line 
1<?xml version='1.0'?>
2<!DOCTYPE xsl:stylesheet [
3<!ENTITY % common.entities SYSTEM "../common/entities.ent">
4%common.entities;
5]>
6<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
7 xmlns:fo="http://www.w3.org/1999/XSL/Format"
8 xmlns:xlink='http://www.w3.org/1999/xlink'
9 exclude-result-prefixes="xlink"
10 version='1.0'>
11
12<!-- ********************************************************************
13 $Id: inline.xsl 9718 2013-01-30 18:29:51Z bobstayton $
14 ********************************************************************
15
16 This file is part of the XSL DocBook Stylesheet distribution.
17 See ../README or http://docbook.sf.net/release/xsl/current/ for
18 copyright and other information.
19
20 ******************************************************************** -->
21
22<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm)"/>
23<xsl:key name="glossentries" match="glossentry" use="normalize-space(glossterm/@baseform)"/>
24
25<xsl:template name="simple.xlink">
26 <xsl:param name="node" select="."/>
27 <xsl:param name="content">
28 <xsl:apply-templates/>
29 </xsl:param>
30 <xsl:param name="linkend" select="$node/@linkend"/>
31 <xsl:param name="xhref" select="$node/@xlink:href"/>
32
33 <xsl:choose>
34 <xsl:when test="$xhref
35 and (not($node/@xlink:type) or
36 $node/@xlink:type='simple')">
37
38 <!-- Is it a local idref? -->
39 <xsl:variable name="is.idref">
40 <xsl:choose>
41 <!-- if the href starts with # and does not contain an "(" -->
42 <!-- or if the href starts with #xpointer(id(, it's just an ID -->
43 <xsl:when test="starts-with($xhref,'#')
44 and (not(contains($xhref,'&#40;'))
45 or starts-with($xhref,
46 '#xpointer&#40;id&#40;'))">1</xsl:when>
47 <xsl:otherwise>0</xsl:otherwise>
48 </xsl:choose>
49 </xsl:variable>
50
51 <!-- Is it an olink ? -->
52 <xsl:variable name="is.olink">
53 <xsl:choose>
54 <!-- If xlink:role="http://docbook.org/xlink/role/olink" -->
55 <!-- and if the href contains # -->
56 <xsl:when test="contains($xhref,'#') and
57 @xlink:role = $xolink.role">1</xsl:when>
58 <xsl:otherwise>0</xsl:otherwise>
59 </xsl:choose>
60 </xsl:variable>
61
62 <xsl:choose>
63 <xsl:when test="$is.olink = 1">
64 <xsl:call-template name="olink">
65 <xsl:with-param name="content" select="$content"/>
66 </xsl:call-template>
67 </xsl:when>
68
69 <xsl:when test="$is.idref = 1">
70
71 <xsl:variable name="idref">
72 <xsl:call-template name="xpointer.idref">
73 <xsl:with-param name="xpointer" select="$xhref"/>
74 </xsl:call-template>
75 </xsl:variable>
76
77 <xsl:variable name="targets" select="key('id',$idref)"/>
78 <xsl:variable name="target" select="$targets[1]"/>
79
80 <xsl:call-template name="check.id.unique">
81 <xsl:with-param name="linkend" select="$idref"/>
82 </xsl:call-template>
83
84 <xsl:choose>
85 <xsl:when test="count($target) = 0">
86 <xsl:message>
87 <xsl:text>XLink to nonexistent id: </xsl:text>
88 <xsl:value-of select="$idref"/>
89 </xsl:message>
90 <xsl:copy-of select="$content"/>
91 </xsl:when>
92
93 <xsl:otherwise>
94 <fo:basic-link internal-destination="{$idref}">
95 <xsl:apply-templates select="." mode="simple.xlink.properties"/>
96 <xsl:copy-of select="$content"/>
97 </fo:basic-link>
98 </xsl:otherwise>
99 </xsl:choose>
100 </xsl:when>
101
102 <!-- otherwise it's a URI -->
103 <xsl:otherwise>
104 <fo:basic-link external-destination="url({$xhref})">
105 <xsl:apply-templates select="." mode="simple.xlink.properties"/>
106 <xsl:copy-of select="$content"/>
107 </fo:basic-link>
108 <!-- * Call the template for determining whether the URL for this -->
109 <!-- * hyperlink is displayed, and how to display it (either inline or -->
110 <!-- * as a numbered footnote). -->
111 <xsl:call-template name="hyperlink.url.display">
112 <xsl:with-param name="url" select="$xhref"/>
113 </xsl:call-template>
114 </xsl:otherwise>
115 </xsl:choose>
116 </xsl:when>
117
118 <xsl:when test="$linkend">
119 <xsl:variable name="targets" select="key('id',$linkend)"/>
120 <xsl:variable name="target" select="$targets[1]"/>
121
122 <xsl:call-template name="check.id.unique">
123 <xsl:with-param name="linkend" select="$linkend"/>
124 </xsl:call-template>
125
126 <xsl:choose>
127 <xsl:when test="count($target) = 0">
128 <xsl:message>
129 <xsl:text>XLink to nonexistent id: </xsl:text>
130 <xsl:value-of select="$linkend"/>
131 </xsl:message>
132 <xsl:copy-of select="$content"/>
133 </xsl:when>
134
135 <xsl:otherwise>
136 <fo:basic-link internal-destination="{$linkend}">
137 <xsl:apply-templates select="." mode="simple.xlink.properties"/>
138 <xsl:copy-of select="$content"/>
139 </fo:basic-link>
140 </xsl:otherwise>
141 </xsl:choose>
142 </xsl:when>
143
144 <xsl:otherwise>
145 <xsl:copy-of select="$content"/>
146 </xsl:otherwise>
147 </xsl:choose>
148</xsl:template>
149
150<xsl:template name="inline.sansseq">
151 <xsl:param name="content">
152 <xsl:call-template name="simple.xlink">
153 <xsl:with-param name="content">
154 <xsl:apply-templates/>
155 </xsl:with-param>
156 </xsl:call-template>
157 </xsl:param>
158
159 <fo:inline font-family="{$sans.font.family}">
160 <xsl:choose>
161 <xsl:when test="@dir">
162 <fo:inline>
163 <xsl:attribute name="direction">
164 <xsl:choose>
165 <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
166 <xsl:otherwise>rtl</xsl:otherwise>
167 </xsl:choose>
168 </xsl:attribute>
169 <xsl:copy-of select="$content"/>
170 </fo:inline>
171 </xsl:when>
172 <xsl:otherwise>
173 <xsl:copy-of select="$content"/>
174 </xsl:otherwise>
175 </xsl:choose>
176 </fo:inline>
177</xsl:template>
178
179<xsl:template name="inline.charseq">
180 <xsl:param name="content">
181 <xsl:call-template name="simple.xlink">
182 <xsl:with-param name="content">
183 <xsl:apply-templates/>
184 </xsl:with-param>
185 </xsl:call-template>
186 </xsl:param>
187
188 <xsl:choose>
189 <xsl:when test="@dir">
190 <fo:inline>
191 <xsl:attribute name="direction">
192 <xsl:choose>
193 <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
194 <xsl:otherwise>rtl</xsl:otherwise>
195 </xsl:choose>
196 </xsl:attribute>
197 <xsl:copy-of select="$content"/>
198 </fo:inline>
199 </xsl:when>
200 <xsl:otherwise>
201 <xsl:copy-of select="$content"/>
202 </xsl:otherwise>
203 </xsl:choose>
204</xsl:template>
205
206<xsl:template name="inline.monoseq">
207 <xsl:param name="content">
208 <xsl:call-template name="simple.xlink">
209 <xsl:with-param name="content">
210 <xsl:apply-templates/>
211 </xsl:with-param>
212 </xsl:call-template>
213 </xsl:param>
214
215 <fo:inline xsl:use-attribute-sets="monospace.properties">
216 <xsl:call-template name="anchor"/>
217 <xsl:if test="@dir">
218 <xsl:attribute name="direction">
219 <xsl:choose>
220 <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
221 <xsl:otherwise>rtl</xsl:otherwise>
222 </xsl:choose>
223 </xsl:attribute>
224 </xsl:if>
225 <xsl:copy-of select="$content"/>
226 </fo:inline>
227</xsl:template>
228
229<xsl:template name="inline.boldseq">
230 <xsl:param name="content">
231 <xsl:call-template name="simple.xlink">
232 <xsl:with-param name="content">
233 <xsl:apply-templates/>
234 </xsl:with-param>
235 </xsl:call-template>
236 </xsl:param>
237
238 <fo:inline font-weight="bold">
239 <xsl:if test="@dir">
240 <xsl:attribute name="direction">
241 <xsl:choose>
242 <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
243 <xsl:otherwise>rtl</xsl:otherwise>
244 </xsl:choose>
245 </xsl:attribute>
246 </xsl:if>
247 <xsl:copy-of select="$content"/>
248 </fo:inline>
249</xsl:template>
250
251<xsl:template name="inline.italicseq">
252 <xsl:param name="content">
253 <xsl:call-template name="simple.xlink">
254 <xsl:with-param name="content">
255 <xsl:apply-templates/>
256 </xsl:with-param>
257 </xsl:call-template>
258 </xsl:param>
259
260 <fo:inline font-style="italic">
261 <xsl:call-template name="anchor"/>
262 <xsl:if test="@dir">
263 <xsl:attribute name="direction">
264 <xsl:choose>
265 <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
266 <xsl:otherwise>rtl</xsl:otherwise>
267 </xsl:choose>
268 </xsl:attribute>
269 </xsl:if>
270 <xsl:copy-of select="$content"/>
271 </fo:inline>
272</xsl:template>
273
274<xsl:template name="inline.boldmonoseq">
275 <xsl:param name="content">
276 <xsl:call-template name="simple.xlink">
277 <xsl:with-param name="content">
278 <xsl:apply-templates/>
279 </xsl:with-param>
280 </xsl:call-template>
281 </xsl:param>
282
283 <fo:inline font-weight="bold" xsl:use-attribute-sets="monospace.properties">
284 <xsl:call-template name="anchor"/>
285 <xsl:if test="@dir">
286 <xsl:attribute name="direction">
287 <xsl:choose>
288 <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
289 <xsl:otherwise>rtl</xsl:otherwise>
290 </xsl:choose>
291 </xsl:attribute>
292 </xsl:if>
293 <xsl:copy-of select="$content"/>
294 </fo:inline>
295</xsl:template>
296
297<xsl:template name="inline.italicmonoseq">
298 <xsl:param name="content">
299 <xsl:call-template name="simple.xlink">
300 <xsl:with-param name="content">
301 <xsl:apply-templates/>
302 </xsl:with-param>
303 </xsl:call-template>
304 </xsl:param>
305
306 <fo:inline font-style="italic" xsl:use-attribute-sets="monospace.properties">
307 <xsl:call-template name="anchor"/>
308 <xsl:if test="@dir">
309 <xsl:attribute name="direction">
310 <xsl:choose>
311 <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
312 <xsl:otherwise>rtl</xsl:otherwise>
313 </xsl:choose>
314 </xsl:attribute>
315 </xsl:if>
316 <xsl:copy-of select="$content"/>
317 </fo:inline>
318</xsl:template>
319
320<xsl:template name="inline.superscriptseq">
321 <xsl:param name="content">
322 <xsl:call-template name="simple.xlink">
323 <xsl:with-param name="content">
324 <xsl:apply-templates/>
325 </xsl:with-param>
326 </xsl:call-template>
327 </xsl:param>
328
329 <fo:inline xsl:use-attribute-sets="superscript.properties">
330 <xsl:call-template name="anchor"/>
331 <xsl:if test="@dir">
332 <xsl:attribute name="direction">
333 <xsl:choose>
334 <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
335 <xsl:otherwise>rtl</xsl:otherwise>
336 </xsl:choose>
337 </xsl:attribute>
338 </xsl:if>
339 <xsl:choose>
340 <xsl:when test="$fop.extensions != 0">
341 <xsl:attribute name="vertical-align">super</xsl:attribute>
342 </xsl:when>
343 <xsl:otherwise>
344 <xsl:attribute name="baseline-shift">super</xsl:attribute>
345 </xsl:otherwise>
346 </xsl:choose>
347 <xsl:copy-of select="$content"/>
348 </fo:inline>
349</xsl:template>
350
351<xsl:template name="inline.subscriptseq">
352 <xsl:param name="content">
353 <xsl:call-template name="simple.xlink">
354 <xsl:with-param name="content">
355 <xsl:apply-templates/>
356 </xsl:with-param>
357 </xsl:call-template>
358 </xsl:param>
359
360 <fo:inline xsl:use-attribute-sets="subscript.properties">
361 <xsl:call-template name="anchor"/>
362 <xsl:if test="@dir">
363 <xsl:attribute name="direction">
364 <xsl:choose>
365 <xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when>
366 <xsl:otherwise>rtl</xsl:otherwise>
367 </xsl:choose>
368 </xsl:attribute>
369 </xsl:if>
370 <xsl:choose>
371 <xsl:when test="$fop.extensions != 0">
372 <xsl:attribute name="vertical-align">sub</xsl:attribute>
373 </xsl:when>
374 <xsl:otherwise>
375 <xsl:attribute name="baseline-shift">sub</xsl:attribute>
376 </xsl:otherwise>
377 </xsl:choose>
378 <xsl:copy-of select="$content"/>
379 </fo:inline>
380</xsl:template>
381
382<!-- ==================================================================== -->
383<!-- some special cases -->
384
385<xsl:template match="author">
386 <xsl:call-template name="simple.xlink">
387 <xsl:with-param name="content">
388 <xsl:call-template name="person.name"/>
389 </xsl:with-param>
390 </xsl:call-template>
391</xsl:template>
392
393<xsl:template match="editor">
394 <xsl:call-template name="simple.xlink">
395 <xsl:with-param name="content">
396 <xsl:call-template name="person.name"/>
397 </xsl:with-param>
398 </xsl:call-template>
399</xsl:template>
400
401<xsl:template match="othercredit">
402 <xsl:call-template name="simple.xlink">
403 <xsl:with-param name="content">
404 <xsl:call-template name="person.name"/>
405 </xsl:with-param>
406 </xsl:call-template>
407</xsl:template>
408
409<xsl:template match="authorinitials">
410 <xsl:call-template name="inline.charseq"/>
411</xsl:template>
412
413<!-- ==================================================================== -->
414
415<xsl:template match="accel">
416 <xsl:call-template name="inline.charseq"/>
417</xsl:template>
418
419<xsl:template match="action">
420 <xsl:call-template name="inline.charseq"/>
421</xsl:template>
422
423<xsl:template match="application">
424 <xsl:call-template name="inline.charseq"/>
425</xsl:template>
426
427<xsl:template match="classname">
428 <xsl:call-template name="inline.monoseq"/>
429</xsl:template>
430
431<xsl:template match="exceptionname">
432 <xsl:call-template name="inline.monoseq"/>
433</xsl:template>
434
435<xsl:template match="interfacename">
436 <xsl:call-template name="inline.monoseq"/>
437</xsl:template>
438
439<xsl:template match="methodname">
440 <xsl:call-template name="inline.monoseq"/>
441</xsl:template>
442
443<xsl:template match="command">
444 <xsl:call-template name="inline.boldseq"/>
445</xsl:template>
446
447<xsl:template match="computeroutput">
448 <xsl:call-template name="inline.monoseq"/>
449</xsl:template>
450
451<xsl:template match="constant">
452 <xsl:call-template name="inline.monoseq"/>
453</xsl:template>
454
455<xsl:template match="database">
456 <xsl:call-template name="inline.charseq"/>
457</xsl:template>
458
459<xsl:template match="date">
460 <!-- should this support locale-specific formatting? how? -->
461 <xsl:call-template name="inline.charseq"/>
462</xsl:template>
463
464<xsl:template match="errorcode">
465 <xsl:call-template name="inline.charseq"/>
466</xsl:template>
467
468<xsl:template match="errorname">
469 <xsl:call-template name="inline.charseq"/>
470</xsl:template>
471
472<xsl:template match="errortype">
473 <xsl:call-template name="inline.charseq"/>
474</xsl:template>
475
476<xsl:template match="errortext">
477 <xsl:call-template name="inline.charseq"/>
478</xsl:template>
479
480<xsl:template match="envar">
481 <xsl:call-template name="inline.monoseq"/>
482</xsl:template>
483
484<xsl:template match="filename">
485 <xsl:call-template name="inline.monoseq"/>
486</xsl:template>
487
488<xsl:template match="function">
489 <xsl:choose>
490 <xsl:when test="$function.parens != '0'
491 and (parameter or function or replaceable)">
492 <xsl:variable name="nodes" select="text()|*"/>
493 <xsl:call-template name="inline.monoseq">
494 <xsl:with-param name="content">
495 <xsl:call-template name="simple.xlink">
496 <xsl:with-param name="content">
497 <xsl:apply-templates select="$nodes[1]"/>
498 </xsl:with-param>
499 </xsl:call-template>
500 </xsl:with-param>
501 </xsl:call-template>
502 <xsl:text>(</xsl:text>
503 <xsl:apply-templates select="$nodes[position()>1]"/>
504 <xsl:text>)</xsl:text>
505 </xsl:when>
506 <xsl:otherwise>
507 <xsl:call-template name="inline.monoseq"/>
508 </xsl:otherwise>
509 </xsl:choose>
510</xsl:template>
511
512<xsl:template match="function/parameter" priority="2">
513 <xsl:call-template name="inline.italicmonoseq"/>
514 <xsl:if test="$function.parens != 0 and following-sibling::*">
515 <xsl:text>, </xsl:text>
516 </xsl:if>
517</xsl:template>
518
519<xsl:template match="function/replaceable" priority="2">
520 <xsl:call-template name="inline.italicmonoseq"/>
521 <xsl:if test="$function.parens != 0 and following-sibling::*">
522 <xsl:text>, </xsl:text>
523 </xsl:if>
524</xsl:template>
525
526<xsl:template match="guibutton">
527 <xsl:call-template name="inline.charseq"/>
528</xsl:template>
529
530<xsl:template match="guiicon">
531 <xsl:call-template name="inline.charseq"/>
532</xsl:template>
533
534<xsl:template match="guilabel">
535 <xsl:call-template name="inline.charseq"/>
536</xsl:template>
537
538<xsl:template match="guimenu">
539 <xsl:call-template name="inline.charseq"/>
540</xsl:template>
541
542<xsl:template match="guimenuitem">
543 <xsl:call-template name="inline.charseq"/>
544</xsl:template>
545
546<xsl:template match="guisubmenu">
547 <xsl:call-template name="inline.charseq"/>
548</xsl:template>
549
550<xsl:template match="hardware">
551 <xsl:call-template name="inline.charseq"/>
552</xsl:template>
553
554<xsl:template match="interface">
555 <xsl:call-template name="inline.charseq"/>
556</xsl:template>
557
558<xsl:template match="interfacedefinition">
559 <xsl:call-template name="inline.charseq"/>
560</xsl:template>
561
562<xsl:template match="keycap">
563 <xsl:choose>
564 <xsl:when test="@function and normalize-space(.) = ''">
565 <xsl:call-template name="inline.boldseq">
566 <xsl:with-param name="content">
567 <xsl:call-template name="gentext.template">
568 <xsl:with-param name="context" select="'keycap'"/>
569 <xsl:with-param name="name" select="@function"/>
570 </xsl:call-template>
571 </xsl:with-param>
572 </xsl:call-template>
573 </xsl:when>
574 <xsl:otherwise>
575 <xsl:call-template name="inline.boldseq"/>
576 </xsl:otherwise>
577 </xsl:choose>
578</xsl:template>
579
580<xsl:template match="keycode">
581 <xsl:call-template name="inline.charseq"/>
582</xsl:template>
583
584<xsl:template match="keysym">
585 <xsl:call-template name="inline.charseq"/>
586</xsl:template>
587
588<xsl:template match="literal">
589 <xsl:call-template name="inline.monoseq"/>
590</xsl:template>
591
592<xsl:template match="code">
593 <xsl:call-template name="inline.monoseq"/>
594</xsl:template>
595
596<xsl:template match="medialabel">
597 <xsl:call-template name="inline.italicseq"/>
598</xsl:template>
599
600<xsl:template match="shortcut">
601 <xsl:call-template name="inline.boldseq"/>
602</xsl:template>
603
604<xsl:template match="mousebutton">
605 <xsl:call-template name="inline.charseq"/>
606</xsl:template>
607
608<xsl:template match="option">
609 <xsl:call-template name="inline.monoseq"/>
610</xsl:template>
611
612<xsl:template match="package">
613 <xsl:call-template name="inline.charseq"/>
614</xsl:template>
615
616<xsl:template match="parameter">
617 <xsl:call-template name="inline.italicmonoseq"/>
618</xsl:template>
619
620<xsl:template match="property">
621 <xsl:call-template name="inline.charseq"/>
622</xsl:template>
623
624<xsl:template match="prompt">
625 <xsl:call-template name="inline.monoseq"/>
626</xsl:template>
627
628<xsl:template match="replaceable">
629 <xsl:call-template name="inline.italicmonoseq"/>
630</xsl:template>
631
632<xsl:template match="returnvalue">
633 <xsl:call-template name="inline.charseq"/>
634</xsl:template>
635
636<xsl:template match="structfield">
637 <xsl:call-template name="inline.italicmonoseq"/>
638</xsl:template>
639
640<xsl:template match="structname">
641 <xsl:call-template name="inline.charseq"/>
642</xsl:template>
643
644<xsl:template match="symbol">
645 <xsl:call-template name="inline.charseq"/>
646</xsl:template>
647
648<xsl:template match="systemitem">
649 <xsl:call-template name="inline.monoseq"/>
650</xsl:template>
651
652<xsl:template match="token">
653 <xsl:call-template name="inline.charseq"/>
654</xsl:template>
655
656<xsl:template match="type">
657 <xsl:call-template name="inline.charseq"/>
658</xsl:template>
659
660<xsl:template match="userinput">
661 <xsl:call-template name="inline.boldmonoseq"/>
662</xsl:template>
663
664<xsl:template match="abbrev">
665 <xsl:call-template name="inline.charseq"/>
666</xsl:template>
667
668<xsl:template match="acronym">
669 <xsl:call-template name="inline.charseq"/>
670</xsl:template>
671
672<xsl:template match="citerefentry">
673 <xsl:call-template name="inline.charseq"/>
674</xsl:template>
675
676<xsl:template match="citetitle">
677 <xsl:choose>
678 <xsl:when test="@pubwork = 'article'">
679 <xsl:call-template name="gentext.startquote"/>
680 <xsl:call-template name="inline.charseq"/>
681 <xsl:call-template name="gentext.endquote"/>
682 </xsl:when>
683 <xsl:otherwise>
684 <xsl:call-template name="inline.italicseq"/>
685 </xsl:otherwise>
686 </xsl:choose>
687</xsl:template>
688
689<xsl:template match="emphasis">
690 <xsl:variable name="depth">
691 <xsl:call-template name="dot.count">
692 <xsl:with-param name="string">
693 <xsl:number level="multiple"/>
694 </xsl:with-param>
695 </xsl:call-template>
696 </xsl:variable>
697
698 <xsl:choose>
699 <xsl:when test="@role='bold' or @role='strong'">
700 <xsl:call-template name="inline.boldseq"/>
701 </xsl:when>
702 <xsl:when test="@role='underline'">
703 <fo:inline text-decoration="underline">
704 <xsl:call-template name="inline.charseq"/>
705 </fo:inline>
706 </xsl:when>
707 <xsl:when test="@role='strikethrough'">
708 <fo:inline text-decoration="line-through">
709 <xsl:call-template name="inline.charseq"/>
710 </fo:inline>
711 </xsl:when>
712 <xsl:otherwise>
713 <xsl:choose>
714 <xsl:when test="$depth mod 2 = 1">
715 <fo:inline font-style="normal">
716 <xsl:apply-templates/>
717 </fo:inline>
718 </xsl:when>
719 <xsl:otherwise>
720 <xsl:call-template name="inline.italicseq"/>
721 </xsl:otherwise>
722 </xsl:choose>
723 </xsl:otherwise>
724 </xsl:choose>
725</xsl:template>
726
727<xsl:template match="foreignphrase">
728 <xsl:call-template name="inline.italicseq"/>
729</xsl:template>
730
731<xsl:template match="markup">
732 <xsl:call-template name="inline.charseq"/>
733</xsl:template>
734
735<xsl:template match="phrase">
736 <fo:inline>
737 <xsl:call-template name="anchor"/>
738 <xsl:call-template name="inline.charseq"/>
739 </fo:inline>
740</xsl:template>
741
742<xsl:template match="quote">
743 <xsl:variable name="depth">
744 <xsl:call-template name="dot.count">
745 <xsl:with-param name="string"><xsl:number level="multiple"/></xsl:with-param>
746 </xsl:call-template>
747 </xsl:variable>
748 <xsl:variable name="content">
749 <xsl:choose>
750 <xsl:when test="$depth mod 2 = 0">
751 <xsl:call-template name="gentext.startquote"/>
752 <xsl:call-template name="inline.charseq"/>
753 <xsl:call-template name="gentext.endquote"/>
754 </xsl:when>
755 <xsl:otherwise>
756 <xsl:call-template name="gentext.nestedstartquote"/>
757 <xsl:call-template name="inline.charseq"/>
758 <xsl:call-template name="gentext.nestedendquote"/>
759 </xsl:otherwise>
760 </xsl:choose>
761 </xsl:variable>
762
763 <fo:inline>
764 <xsl:call-template name="anchor"/>
765 <xsl:copy-of select="$content"/>
766 </fo:inline>
767
768</xsl:template>
769
770<xsl:template match="varname">
771 <xsl:call-template name="inline.monoseq"/>
772</xsl:template>
773
774<xsl:template match="wordasword">
775 <xsl:call-template name="inline.italicseq"/>
776</xsl:template>
777
778<xsl:template match="lineannotation">
779 <fo:inline font-style="italic">
780 <xsl:call-template name="inline.charseq"/>
781 </fo:inline>
782</xsl:template>
783
784<xsl:template match="superscript">
785 <xsl:call-template name="inline.superscriptseq"/>
786</xsl:template>
787
788<xsl:template match="subscript">
789 <xsl:call-template name="inline.subscriptseq"/>
790</xsl:template>
791
792<xsl:template match="trademark">
793 <xsl:call-template name="inline.charseq"/>
794 <xsl:choose>
795 <xsl:when test="@class = 'copyright'
796 or @class = 'registered'">
797 <xsl:call-template name="dingbat">
798 <xsl:with-param name="dingbat" select="@class"/>
799 </xsl:call-template>
800 </xsl:when>
801 <xsl:when test="@class = 'service'">
802 <xsl:call-template name="inline.superscriptseq">
803 <xsl:with-param name="content" select="'SM'"/>
804 </xsl:call-template>
805 </xsl:when>
806 <xsl:otherwise>
807 <xsl:call-template name="dingbat">
808 <xsl:with-param name="dingbat" select="'trademark'"/>
809 </xsl:call-template>
810 </xsl:otherwise>
811 </xsl:choose>
812</xsl:template>
813
814<xsl:template match="firstterm">
815 <xsl:call-template name="glossterm">
816 <xsl:with-param name="firstterm" select="1"/>
817 </xsl:call-template>
818</xsl:template>
819
820<xsl:template match="glossterm" name="glossterm">
821 <xsl:param name="firstterm" select="0"/>
822
823 <xsl:choose>
824 <xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and @linkend">
825 <xsl:variable name="targets" select="key('id',@linkend)"/>
826 <xsl:variable name="target" select="$targets[1]"/>
827
828 <xsl:choose>
829 <xsl:when test="$target">
830 <fo:basic-link internal-destination="{@linkend}"
831 xsl:use-attribute-sets="xref.properties">
832 <xsl:call-template name="inline.italicseq"/>
833 </fo:basic-link>
834 </xsl:when>
835 <xsl:otherwise>
836 <xsl:call-template name="inline.italicseq"/>
837 </xsl:otherwise>
838 </xsl:choose>
839 </xsl:when>
840
841 <xsl:when test="not(@linkend)
842 and ($firstterm.only.link = 0 or $firstterm = 1)
843 and ($glossterm.auto.link != 0)
844 and $glossary.collection != ''">
845 <xsl:variable name="term">
846 <xsl:choose>
847 <xsl:when test="@baseform"><xsl:value-of select="@baseform"/></xsl:when>
848 <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
849 </xsl:choose>
850 </xsl:variable>
851 <xsl:variable name="cterm"
852 select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/>
853
854 <xsl:choose>
855 <xsl:when test="not($cterm)">
856 <xsl:message>
857 <xsl:text>There's no entry for </xsl:text>
858 <xsl:value-of select="$term"/>
859 <xsl:text> in </xsl:text>
860 <xsl:value-of select="$glossary.collection"/>
861 </xsl:message>
862 <xsl:call-template name="inline.italicseq"/>
863 </xsl:when>
864 <xsl:otherwise>
865 <xsl:variable name="id">
866 <xsl:call-template name="object.id">
867 <xsl:with-param name="object" select="$cterm"/>
868 </xsl:call-template>
869 </xsl:variable>
870 <fo:basic-link internal-destination="{$id}"
871 xsl:use-attribute-sets="xref.properties">
872 <xsl:call-template name="inline.italicseq"/>
873 </fo:basic-link>
874 </xsl:otherwise>
875 </xsl:choose>
876 </xsl:when>
877
878 <xsl:when test="not(@linkend)
879 and ($firstterm.only.link = 0 or $firstterm = 1)
880 and $glossterm.auto.link != 0">
881 <xsl:variable name="term">
882 <xsl:choose>
883 <xsl:when test="@baseform">
884 <xsl:value-of select="normalize-space(@baseform)"/>
885 </xsl:when>
886 <xsl:otherwise>
887 <xsl:value-of select="normalize-space(.)"/>
888 </xsl:otherwise>
889 </xsl:choose>
890 </xsl:variable>
891
892 <xsl:variable name="targets"
893 select="key('glossentries', $term)"/>
894 <xsl:variable name="target" select="$targets[1]"/>
895
896 <xsl:choose>
897 <xsl:when test="count($targets)=0">
898 <xsl:message>
899 <xsl:text>Error: no glossentry for glossterm: </xsl:text>
900 <xsl:value-of select="."/>
901 <xsl:text>.</xsl:text>
902 </xsl:message>
903 <xsl:call-template name="inline.italicseq"/>
904 </xsl:when>
905 <xsl:otherwise>
906 <xsl:variable name="termid">
907 <xsl:call-template name="object.id">
908 <xsl:with-param name="object" select="$target"/>
909 </xsl:call-template>
910 </xsl:variable>
911
912 <fo:basic-link internal-destination="{$termid}"
913 xsl:use-attribute-sets="xref.properties">
914 <xsl:call-template name="inline.italicseq"/>
915 </fo:basic-link>
916 </xsl:otherwise>
917 </xsl:choose>
918 </xsl:when>
919 <xsl:otherwise>
920 <xsl:call-template name="inline.italicseq"/>
921 </xsl:otherwise>
922 </xsl:choose>
923</xsl:template>
924
925<xsl:template match="termdef">
926 <fo:inline>
927 <xsl:call-template name="gentext.template">
928 <xsl:with-param name="context" select="'termdef'"/>
929 <xsl:with-param name="name" select="'prefix'"/>
930 </xsl:call-template>
931 <xsl:apply-templates/>
932 <xsl:call-template name="gentext.template">
933 <xsl:with-param name="context" select="'termdef'"/>
934 <xsl:with-param name="name" select="'suffix'"/>
935 </xsl:call-template>
936 </fo:inline>
937</xsl:template>
938
939<xsl:template match="sgmltag|tag">
940 <xsl:variable name="class">
941 <xsl:choose>
942 <xsl:when test="@class">
943 <xsl:value-of select="@class"/>
944 </xsl:when>
945 <xsl:otherwise>element</xsl:otherwise>
946 </xsl:choose>
947 </xsl:variable>
948
949 <xsl:choose>
950 <xsl:when test="$class='attribute'">
951 <xsl:call-template name="inline.monoseq"/>
952 </xsl:when>
953 <xsl:when test="$class='attvalue'">
954 <xsl:call-template name="inline.monoseq"/>
955 </xsl:when>
956 <xsl:when test="$class='element'">
957 <xsl:call-template name="inline.monoseq"/>
958 </xsl:when>
959 <xsl:when test="$class='endtag'">
960 <xsl:call-template name="inline.monoseq">
961 <xsl:with-param name="content">
962 <xsl:text>&lt;/</xsl:text>
963 <xsl:apply-templates/>
964 <xsl:text>&gt;</xsl:text>
965 </xsl:with-param>
966 </xsl:call-template>
967 </xsl:when>
968 <xsl:when test="$class='genentity'">
969 <xsl:call-template name="inline.monoseq">
970 <xsl:with-param name="content">
971 <xsl:text>&amp;</xsl:text>
972 <xsl:apply-templates/>
973 <xsl:text>;</xsl:text>
974 </xsl:with-param>
975 </xsl:call-template>
976 </xsl:when>
977 <xsl:when test="$class='numcharref'">
978 <xsl:call-template name="inline.monoseq">
979 <xsl:with-param name="content">
980 <xsl:text>&amp;#</xsl:text>
981 <xsl:apply-templates/>
982 <xsl:text>;</xsl:text>
983 </xsl:with-param>
984 </xsl:call-template>
985 </xsl:when>
986 <xsl:when test="$class='paramentity'">
987 <xsl:call-template name="inline.monoseq">
988 <xsl:with-param name="content">
989 <xsl:text>%</xsl:text>
990 <xsl:apply-templates/>
991 <xsl:text>;</xsl:text>
992 </xsl:with-param>
993 </xsl:call-template>
994 </xsl:when>
995 <xsl:when test="$class='pi'">
996 <xsl:call-template name="inline.monoseq">
997 <xsl:with-param name="content">
998 <xsl:text>&lt;?</xsl:text>
999 <xsl:apply-templates/>
1000 <xsl:text>&gt;</xsl:text>
1001 </xsl:with-param>
1002 </xsl:call-template>
1003 </xsl:when>
1004 <xsl:when test="$class='xmlpi'">
1005 <xsl:call-template name="inline.monoseq">
1006 <xsl:with-param name="content">
1007 <xsl:text>&lt;?</xsl:text>
1008 <xsl:apply-templates/>
1009 <xsl:text>?&gt;</xsl:text>
1010 </xsl:with-param>
1011 </xsl:call-template>
1012 </xsl:when>
1013 <xsl:when test="$class='starttag'">
1014 <xsl:call-template name="inline.monoseq">
1015 <xsl:with-param name="content">
1016 <xsl:text>&lt;</xsl:text>
1017 <xsl:apply-templates/>
1018 <xsl:text>&gt;</xsl:text>
1019 </xsl:with-param>
1020 </xsl:call-template>
1021 </xsl:when>
1022 <xsl:when test="$class='emptytag'">
1023 <xsl:call-template name="inline.monoseq">
1024 <xsl:with-param name="content">
1025 <xsl:text>&lt;</xsl:text>
1026 <xsl:apply-templates/>
1027 <xsl:text>/&gt;</xsl:text>
1028 </xsl:with-param>
1029 </xsl:call-template>
1030 </xsl:when>
1031 <xsl:when test="$class='sgmlcomment' or $class='comment'">
1032 <xsl:call-template name="inline.monoseq">
1033 <xsl:with-param name="content">
1034 <xsl:text>&lt;!--</xsl:text>
1035 <xsl:apply-templates/>
1036 <xsl:text>--&gt;</xsl:text>
1037 </xsl:with-param>
1038 </xsl:call-template>
1039 </xsl:when>
1040 <xsl:otherwise>
1041 <xsl:call-template name="inline.charseq"/>
1042 </xsl:otherwise>
1043 </xsl:choose>
1044</xsl:template>
1045
1046<xsl:template match="email">
1047 <xsl:call-template name="inline.monoseq">
1048 <xsl:with-param name="content">
1049 <fo:inline keep-together.within-line="always" hyphenate="false">
1050 <xsl:if test="not($email.delimiters.enabled = 0)">
1051 <xsl:text>&lt;</xsl:text>
1052 </xsl:if>
1053 <xsl:choose>
1054 <xsl:when test="not($email.mailto.enabled = 0)">
1055 <fo:basic-link xsl:use-attribute-sets="xref.properties"
1056 keep-together.within-line="always" hyphenate="false">
1057 <xsl:attribute name="external-destination">
1058 mailto:<xsl:value-of select="string(.)" />
1059 </xsl:attribute>
1060 <xsl:apply-templates/>
1061 </fo:basic-link>
1062 </xsl:when>
1063 <xsl:otherwise>
1064 <xsl:apply-templates/>
1065 </xsl:otherwise>
1066 </xsl:choose>
1067 <xsl:if test="not($email.delimiters.enabled = 0)">
1068 <xsl:text>&gt;</xsl:text>
1069 </xsl:if>
1070 </fo:inline>
1071 </xsl:with-param>
1072 </xsl:call-template>
1073</xsl:template>
1074
1075<xsl:template match="keycombo">
1076 <xsl:variable name="action" select="@action"/>
1077 <xsl:variable name="joinchar">
1078 <xsl:choose>
1079 <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
1080 <xsl:when test="$action='simul'">+</xsl:when>
1081 <xsl:when test="$action='press'">-</xsl:when>
1082 <xsl:when test="$action='click'">-</xsl:when>
1083 <xsl:when test="$action='double-click'">-</xsl:when>
1084 <xsl:when test="$action='other'"></xsl:when>
1085 <xsl:otherwise>+</xsl:otherwise>
1086 </xsl:choose>
1087 </xsl:variable>
1088 <xsl:for-each select="*">
1089 <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
1090 <xsl:apply-templates select="."/>
1091 </xsl:for-each>
1092</xsl:template>
1093
1094<xsl:template match="uri">
1095 <xsl:call-template name="inline.monoseq"/>
1096</xsl:template>
1097
1098<!-- ==================================================================== -->
1099
1100<xsl:template match="menuchoice">
1101 <xsl:variable name="shortcut" select="./shortcut"/>
1102 <xsl:call-template name="process.menuchoice"/>
1103 <xsl:if test="$shortcut">
1104 <xsl:text> (</xsl:text>
1105 <xsl:apply-templates select="$shortcut"/>
1106 <xsl:text>)</xsl:text>
1107 </xsl:if>
1108</xsl:template>
1109
1110<xsl:template name="process.menuchoice">
1111 <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
1112 <xsl:param name="count" select="1"/>
1113
1114 <xsl:variable name="mm.separator">
1115 <xsl:choose>
1116 <xsl:when test="($fop.extensions != 0 or $fop1.extensions != 0 ) and
1117 contains($menuchoice.menu.separator, '&#x2192;')">
1118 <fo:inline font-family="Symbol">
1119 <xsl:copy-of select="$menuchoice.menu.separator"/>
1120 </fo:inline>
1121 </xsl:when>
1122 <xsl:otherwise>
1123 <xsl:copy-of select="$menuchoice.menu.separator"/>
1124 </xsl:otherwise>
1125 </xsl:choose>
1126 </xsl:variable>
1127
1128 <xsl:choose>
1129 <xsl:when test="$count>count($nodelist)"></xsl:when>
1130 <xsl:when test="$count=1">
1131 <xsl:apply-templates select="$nodelist[$count=position()]"/>
1132 <xsl:call-template name="process.menuchoice">
1133 <xsl:with-param name="nodelist" select="$nodelist"/>
1134 <xsl:with-param name="count" select="$count+1"/>
1135 </xsl:call-template>
1136 </xsl:when>
1137 <xsl:otherwise>
1138 <xsl:variable name="node" select="$nodelist[$count=position()]"/>
1139 <xsl:choose>
1140 <xsl:when test="local-name($node)='guimenuitem'
1141 or local-name($node)='guisubmenu'">
1142 <xsl:copy-of select="$mm.separator"/>
1143 </xsl:when>
1144 <xsl:otherwise>
1145 <xsl:copy-of select="$menuchoice.separator"/>
1146 </xsl:otherwise>
1147 </xsl:choose>
1148 <xsl:apply-templates select="$node"/>
1149 <xsl:call-template name="process.menuchoice">
1150 <xsl:with-param name="nodelist" select="$nodelist"/>
1151 <xsl:with-param name="count" select="$count+1"/>
1152 </xsl:call-template>
1153 </xsl:otherwise>
1154 </xsl:choose>
1155</xsl:template>
1156
1157<!-- ==================================================================== -->
1158
1159<xsl:template match="optional">
1160 <xsl:value-of select="$arg.choice.opt.open.str"/>
1161 <xsl:call-template name="inline.charseq"/>
1162 <xsl:value-of select="$arg.choice.opt.close.str"/>
1163</xsl:template>
1164
1165<xsl:template match="citation">
1166 <!-- todo: integrate with bibliography collection -->
1167 <xsl:variable name="targets" select="(//biblioentry | //bibliomixed)[abbrev = string(current())]"/>
1168 <xsl:variable name="target" select="$targets[1]"/>
1169
1170 <xsl:choose>
1171 <!-- try automatic linking based on match to abbrev -->
1172 <xsl:when test="$target and not(xref) and not(link)">
1173
1174 <xsl:text>[</xsl:text>
1175 <fo:basic-link>
1176 <xsl:attribute name="internal-destination">
1177 <xsl:call-template name="object.id">
1178 <xsl:with-param name="object" select="$target"/>
1179 </xsl:call-template>
1180 </xsl:attribute>
1181
1182 <xsl:choose>
1183 <xsl:when test="$bibliography.numbered != 0">
1184 <xsl:apply-templates select="$target" mode="citation"/>
1185 </xsl:when>
1186 <xsl:otherwise>
1187 <xsl:call-template name="inline.charseq"/>
1188 </xsl:otherwise>
1189 </xsl:choose>
1190
1191 </fo:basic-link>
1192 <xsl:text>]</xsl:text>
1193 </xsl:when>
1194
1195 <xsl:otherwise>
1196 <xsl:text>[</xsl:text>
1197 <xsl:call-template name="inline.charseq"/>
1198 <xsl:text>]</xsl:text>
1199 </xsl:otherwise>
1200 </xsl:choose>
1201</xsl:template>
1202
1203<xsl:template match="citebiblioid">
1204 <xsl:variable name="targets" select="//*[biblioid = string(current())]"/>
1205 <xsl:variable name="target" select="$targets[1]"/>
1206
1207 <xsl:choose>
1208 <!-- try automatic linking based on match to parent of biblioid -->
1209 <xsl:when test="$target and not(xref) and not(link)">
1210
1211 <xsl:text>[</xsl:text>
1212 <fo:basic-link>
1213 <xsl:attribute name="internal-destination">
1214 <xsl:call-template name="object.id">
1215 <xsl:with-param name="object" select="$target"/>
1216 </xsl:call-template>
1217 </xsl:attribute>
1218
1219 <xsl:call-template name="inline.charseq"/>
1220
1221 </fo:basic-link>
1222 <xsl:text>]</xsl:text>
1223 </xsl:when>
1224
1225 <xsl:otherwise>
1226 <xsl:text>[</xsl:text>
1227 <xsl:call-template name="inline.charseq"/>
1228 <xsl:text>]</xsl:text>
1229 </xsl:otherwise>
1230 </xsl:choose>
1231</xsl:template>
1232
1233<xsl:template match="biblioentry|bibliomixed" mode="citation">
1234 <xsl:number from="bibliography" count="biblioentry|bibliomixed"
1235 level="any" format="1"/>
1236</xsl:template>
1237
1238<!-- ==================================================================== -->
1239
1240<xsl:template match="comment[&comment.block.parents;]|remark[&comment.block.parents;]">
1241 <xsl:if test="$show.comments != 0">
1242 <fo:block font-style="italic">
1243 <xsl:call-template name="inline.charseq"/>
1244 </fo:block>
1245 </xsl:if>
1246</xsl:template>
1247
1248<xsl:template match="comment|remark">
1249 <xsl:if test="$show.comments != 0">
1250 <fo:inline font-style="italic">
1251 <xsl:call-template name="inline.charseq"/>
1252 </fo:inline>
1253 </xsl:if>
1254</xsl:template>
1255
1256<!-- ==================================================================== -->
1257
1258<xsl:template match="productname">
1259 <xsl:call-template name="inline.charseq"/>
1260 <xsl:if test="@class">
1261 <xsl:call-template name="dingbat">
1262 <xsl:with-param name="dingbat" select="@class"/>
1263 </xsl:call-template>
1264 </xsl:if>
1265</xsl:template>
1266
1267<xsl:template match="productnumber">
1268 <xsl:call-template name="inline.charseq"/>
1269</xsl:template>
1270
1271<!-- ==================================================================== -->
1272
1273<xsl:template match="pob|street|city|state|postcode|country|otheraddr">
1274 <xsl:call-template name="inline.charseq"/>
1275</xsl:template>
1276
1277<xsl:template match="phone|fax">
1278 <xsl:call-template name="inline.charseq"/>
1279</xsl:template>
1280
1281<!-- in Addresses, for example -->
1282<xsl:template match="honorific|firstname|surname|lineage|othername">
1283 <xsl:call-template name="inline.charseq"/>
1284</xsl:template>
1285
1286<!-- ==================================================================== -->
1287
1288<xsl:template match="person">
1289 <xsl:apply-templates select="personname"/>
1290</xsl:template>
1291
1292<xsl:template match="personname">
1293 <xsl:call-template name="simple.xlink">
1294 <xsl:with-param name="content">
1295 <xsl:call-template name="person.name"/>
1296 </xsl:with-param>
1297 </xsl:call-template>
1298</xsl:template>
1299
1300<xsl:template match="jobtitle">
1301 <xsl:call-template name="simple.xlink">
1302 <xsl:with-param name="content">
1303 <xsl:apply-templates/>
1304 </xsl:with-param>
1305 </xsl:call-template>
1306</xsl:template>
1307
1308<!-- ==================================================================== -->
1309
1310<xsl:template match="org">
1311 <xsl:call-template name="inline.charseq"/>
1312</xsl:template>
1313
1314<xsl:template match="orgname">
1315 <xsl:call-template name="inline.charseq"/>
1316</xsl:template>
1317
1318<xsl:template match="orgdiv">
1319 <xsl:call-template name="inline.charseq"/>
1320</xsl:template>
1321
1322<xsl:template match="affiliation">
1323 <xsl:call-template name="inline.charseq"/>
1324</xsl:template>
1325
1326<!-- ==================================================================== -->
1327
1328<xsl:template match="beginpage">
1329 <!-- does nothing; this *is not* markup to force a page break. -->
1330</xsl:template>
1331
1332<xsl:template match="*" mode="simple.xlink.properties">
1333 <!-- Placeholder template to apply properties to links made from
1334 elements other than xref, link, and olink.
1335 This template should generate attributes only, as it is
1336 applied right after the opening <fo:basic-link> tag.
1337 -->
1338 <!-- for example
1339 <xsl:attribute name="color">blue</xsl:attribute>
1340 -->
1341 <!-- Since this is a mode, you can create different
1342 templates with different properties for different linking elements -->
1343</xsl:template>
1344
1345</xsl:stylesheet>
1346
Note: See TracBrowser for help on using the repository browser.