Moving docs tree to docs-xml to make room for generated docs in the release tarball.
[ira/wip.git] / docs-xml / xslt / db2latex-xsl / xsl / inline.mod.xsl
1 <?xml version='1.0'?>
2 <!DOCTYPE xsl:stylesheet [ <!ENTITY % xsldoc.ent SYSTEM "./xsldoc.ent"> %xsldoc.ent; ]>
3 <!--############################################################################# 
4 |       $Id: inline.mod.xsl,v 1.21 2004/01/05 09:58:47 j-devenish Exp $
5 |- #############################################################################
6 |       $Author: j-devenish $
7 + ############################################################################## -->
8 <xsl:stylesheet
9         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
10         xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
11         exclude-result-prefixes="doc" version='1.0'>
12
13         <doc:reference id="inline" xmlns="">
14                 <referenceinfo>
15                         <releaseinfo role="meta">
16                                 $Id: inline.mod.xsl,v 1.21 2004/01/05 09:58:47 j-devenish Exp $
17                         </releaseinfo>
18                         <authorgroup>
19                                 &ramon;
20                                 &james;
21                         </authorgroup>
22                         <copyright>
23                                 <year>2000</year><year>2001</year><year>2002</year><year>2003</year><year>2004</year>
24                                 <holder>Ramon Casellas</holder>
25                         </copyright>
26                         <revhistory>
27                                 <doc:revision rcasver="1.16">&rev_2003_05;</doc:revision>
28                         </revhistory>
29                 </referenceinfo>
30                 <title>Inline Elements <filename>inline.mod.xsl</filename></title>
31                 <partintro>
32                         <para>
33                         
34                         
35                         
36                         </para>
37                 </partintro>
38         </doc:reference>
39
40         <doc:template xmlns="">
41                 <refpurpose>Process regular text</refpurpose>
42                 <doc:description>
43                         <para>
44                                 Applies templates.
45                         </para>
46                 </doc:description>
47                 <doc:variables>
48                         &no_var;
49                 </doc:variables>
50                 <doc:seealso>
51                         <itemizedlist>
52                                 <listitem><simpara><xref linkend="normalize-scape"/></simpara></listitem>
53                                 <listitem><simpara><xref linkend="scape"/></simpara></listitem>
54                         </itemizedlist>
55                 </doc:seealso>
56         </doc:template>
57         <xsl:template name="inline.charseq">
58                 <xsl:param name="content">
59                         <xsl:apply-templates/>
60                 </xsl:param>
61                 <xsl:copy-of select="$content"/>
62         </xsl:template>
63
64         <doc:template xmlns="">
65                 <refpurpose>Process monospace text</refpurpose>
66                 <doc:description>
67                         <para>
68                                 Applies templates within a &LaTeX;
69                                 <function condition="latex">texttt</function> command.
70                         </para>
71                 </doc:description>
72                 <doc:variables>
73                         <itemizedlist>
74                                 <listitem><simpara><xref linkend="param.latex.hyphenation.tttricks"/></simpara></listitem>
75                         </itemizedlist>
76                 </doc:variables>
77                 <doc:seealso>
78                         <itemizedlist>
79                                 <listitem><simpara><xref linkend="normalize-scape"/></simpara></listitem>
80                                 <listitem><simpara><xref linkend="scape"/></simpara></listitem>
81                         </itemizedlist>
82                 </doc:seealso>
83         </doc:template>
84         <xsl:template name="inline.monoseq">
85                 <xsl:param name="hyphenation">\docbookhyphenatedot</xsl:param>
86                 <xsl:param name="content">
87                         <xsl:apply-templates/>
88                 </xsl:param>
89                 <xsl:text>{\texttt{</xsl:text>
90                 <xsl:if test="$latex.hyphenation.tttricks='1'"><xsl:value-of select="$hyphenation" /></xsl:if>
91                 <xsl:text>{</xsl:text>
92                 <xsl:copy-of select="$content"/>
93                 <xsl:text>}}}</xsl:text>
94         </xsl:template>
95
96         <doc:template xmlns="">
97                 <refpurpose>Process bold text</refpurpose>
98                 <doc:description>
99                         <para>
100                                 Applies templates within a &LaTeX;
101                                 <function condition="latex">bfseries</function> command.
102                         </para>
103                 </doc:description>
104                 <doc:variables>
105                         &no_var;
106                 </doc:variables>
107                 <doc:seealso>
108                         <itemizedlist>
109                                 <listitem><simpara><xref linkend="normalize-scape"/></simpara></listitem>
110                                 <listitem><simpara><xref linkend="scape"/></simpara></listitem>
111                         </itemizedlist>
112                 </doc:seealso>
113         </doc:template>
114         <xsl:template name="inline.boldseq">
115                 <xsl:param name="content">
116                         <xsl:apply-templates/>
117                 </xsl:param>
118                 <xsl:text>{\bfseries{</xsl:text>
119                 <xsl:copy-of select="$content"/>
120                 <xsl:text>}}</xsl:text>
121         </xsl:template>
122
123         <doc:template xmlns="">
124                 <refpurpose>Process italic text</refpurpose>
125                 <doc:description>
126                         <para>
127                                 Applies templates within a &LaTeX;
128                                 <function condition="latex">em</function> command.
129                         </para>
130                 </doc:description>
131                 <doc:variables>
132                         &no_var;
133                 </doc:variables>
134                 <doc:seealso>
135                         <itemizedlist>
136                                 <listitem><simpara><xref linkend="normalize-scape"/></simpara></listitem>
137                                 <listitem><simpara><xref linkend="scape"/></simpara></listitem>
138                         </itemizedlist>
139                 </doc:seealso>
140         </doc:template>
141         <xsl:template name="inline.italicseq">
142                 <xsl:param name="content">
143                         <xsl:apply-templates/>
144                 </xsl:param>
145                 <xsl:text>{\em{</xsl:text>
146                 <xsl:copy-of select="$content"/>
147                 <xsl:text>}}</xsl:text>
148         </xsl:template>
149
150         <doc:template xmlns="">
151                 <refpurpose>Process bold monospace text</refpurpose>
152                 <doc:description>
153                         <para>
154                                 Applies templates within &LaTeX;
155                                 <function condition="latex">ttfamily</function>
156                                 and
157                                 <function condition="latex">bfseries</function>
158                                 commands.
159                         </para>
160                 </doc:description>
161                 <doc:variables>
162                         <itemizedlist>
163                                 <listitem><simpara><xref linkend="param.latex.hyphenation.tttricks"/></simpara></listitem>
164                         </itemizedlist>
165                 </doc:variables>
166                 <doc:seealso>
167                         <itemizedlist>
168                                 <listitem><simpara><xref linkend="normalize-scape"/></simpara></listitem>
169                                 <listitem><simpara><xref linkend="scape"/></simpara></listitem>
170                         </itemizedlist>
171                 </doc:seealso>
172         </doc:template>
173         <xsl:template name="inline.boldmonoseq">
174                 <xsl:param name="hyphenation">\docbookhyphenatedot</xsl:param>
175                 <xsl:param name="content">
176                         <xsl:apply-templates/>
177                 </xsl:param>
178                 <xsl:text>{\ttfamily\bfseries{</xsl:text>
179                 <xsl:if test="$latex.hyphenation.tttricks='1'"><xsl:value-of select="$hyphenation" /></xsl:if>
180                 <xsl:text>{</xsl:text>
181                 <xsl:copy-of select="$content"/>
182                 <xsl:text>}}}</xsl:text>
183         </xsl:template>
184
185         <doc:template xmlns="">
186                 <refpurpose>Process italic monospace text</refpurpose>
187                 <doc:description>
188                         <para>
189                                 Applies templates within &LaTeX;
190                                 <function condition="latex">ttfamily</function>
191                                 and
192                                 <function condition="latex">itshape</function>
193                                 commands.
194                         </para>
195                 </doc:description>
196                 <doc:variables>
197                         <itemizedlist>
198                                 <listitem><simpara><xref linkend="param.latex.hyphenation.tttricks"/></simpara></listitem>
199                         </itemizedlist>
200                 </doc:variables>
201                 <doc:seealso>
202                         <itemizedlist>
203                                 <listitem><simpara><xref linkend="normalize-scape"/></simpara></listitem>
204                                 <listitem><simpara><xref linkend="scape"/></simpara></listitem>
205                         </itemizedlist>
206                 </doc:seealso>
207         </doc:template>
208         <xsl:template name="inline.italicmonoseq">
209                 <xsl:param name="hyphenation">\docbookhyphenatedot</xsl:param>
210                 <xsl:param name="content">
211                         <xsl:apply-templates/>
212                 </xsl:param>
213                 <xsl:text>{\ttfamily\itshape{</xsl:text>
214                 <xsl:if test="$latex.hyphenation.tttricks='1'"><xsl:value-of select="$hyphenation" /></xsl:if>
215                 <xsl:text>{</xsl:text>
216                 <xsl:copy-of select="$content"/>
217                 <xsl:text>}}}</xsl:text>
218         </xsl:template>
219
220         <doc:template xmlns="">
221                 <refpurpose>Process superscript text</refpurpose>
222                 <doc:description>
223                         <para>
224                                 Applies templates within a &LaTeX;
225                                 <function condition="latex">text</function>
226                                 command within an inline mathematics environment.
227                         </para>
228                 </doc:description>
229                 <doc:variables>
230                         &no_var;
231                 </doc:variables>
232                 <doc:seealso>
233                         <itemizedlist>
234                                 <listitem><simpara><xref linkend="normalize-scape"/></simpara></listitem>
235                                 <listitem><simpara><xref linkend="scape"/></simpara></listitem>
236                         </itemizedlist>
237                 </doc:seealso>
238         </doc:template>
239         <xsl:template name="inline.superscriptseq">
240                 <xsl:param name="content">
241                         <xsl:apply-templates/>
242                 </xsl:param>
243                 <xsl:text>$^\text{</xsl:text>
244                 <xsl:copy-of select="$content"/>
245                 <xsl:text>}$</xsl:text>
246         </xsl:template>
247
248         <doc:template xmlns="">
249                 <refpurpose>Process subscript text</refpurpose>
250                 <doc:description>
251                         <para>
252                                 Applies templates within a &LaTeX;
253                                 <function condition="latex">text</function>
254                                 command within an inline mathematics environment.
255                         </para>
256                 </doc:description>
257                 <doc:variables>
258                         &no_var;
259                 </doc:variables>
260                 <doc:seealso>
261                         <itemizedlist>
262                                 <listitem><simpara><xref linkend="normalize-scape"/></simpara></listitem>
263                                 <listitem><simpara><xref linkend="scape"/></simpara></listitem>
264                         </itemizedlist>
265                 </doc:seealso>
266         </doc:template>
267         <xsl:template name="inline.subscriptseq">
268                 <xsl:param name="content">
269                         <xsl:apply-templates/>
270                 </xsl:param>
271                 <xsl:text>$_\text{</xsl:text>
272                 <xsl:copy-of select="$content"/>
273                 <xsl:text>}$</xsl:text>
274         </xsl:template>
275
276         <doc:template xmlns="">
277                 <refpurpose>Process <doc:db>accel</doc:db> elements</refpurpose>
278                 <doc:description>
279                         <para>
280                                 Invokes <xref linkend="template.inline.charseq"/>.
281                         </para>
282                 </doc:description>
283                 <doc:variables>
284                         &no_var;
285                 </doc:variables>
286         </doc:template>
287         <xsl:template match="accel">
288                 <xsl:call-template name="inline.charseq"/>
289         </xsl:template>
290
291         <doc:template xmlns="">
292                 <refpurpose>Process <doc:db>action</doc:db> elements</refpurpose>
293                 <doc:description>
294                         <para>
295                                 Invokes <xref linkend="template.inline.charseq"/>.
296                         </para>
297                 </doc:description>
298                 <doc:variables>
299                         &no_var;
300                 </doc:variables>
301         </doc:template>
302         <xsl:template match="action">
303                 <xsl:call-template name="inline.charseq"/>
304         </xsl:template>
305
306         <doc:template xmlns="">
307                 <refpurpose>Process name-type elements</refpurpose>
308                 <doc:description>
309                         <para>
310                                 Invokes <xref linkend="template.inline.charseq"/>.
311                         </para>
312                 </doc:description>
313                 <doc:variables>
314                         &no_var;
315                 </doc:variables>
316         </doc:template>
317         <xsl:template match="honorific|firstname|surname|lineage|othername">
318                 <xsl:call-template name="inline.charseq"/>
319         </xsl:template>
320
321         <doc:template xmlns="">
322                 <refpurpose>Process <doc:db>application</doc:db> elements</refpurpose>
323                 <doc:description>
324                         <para>
325                                 Invokes <xref linkend="template.inline.charseq"/>.
326                         </para>
327                 </doc:description>
328                 <doc:variables>
329                         &no_var;
330                 </doc:variables>
331         </doc:template>
332         <xsl:template match="application">
333                 <xsl:call-template name="inline.charseq"/>
334         </xsl:template>
335
336         <doc:template xmlns="">
337                 <refpurpose>Process <doc:db>classname</doc:db> elements</refpurpose>
338                 <doc:description>
339                         <para>
340                                 Invokes <xref linkend="template.inline.monoseq"/>.
341                         </para>
342                 </doc:description>
343                 <doc:variables>
344                         &no_var;
345                 </doc:variables>
346         </doc:template>
347         <xsl:template match="classname">
348                 <xsl:call-template name="inline.monoseq"/>
349         </xsl:template>
350
351         <doc:template basename="copyright" xmlns="">
352                 <refpurpose>Process <doc:db>copyright</doc:db> elements</refpurpose>
353                 <doc:description>
354                         <para>
355                                 Applies templates with a copyright dingbat.
356                         </para>
357                 </doc:description>
358                 <doc:variables>
359                         &no_var;
360                 </doc:variables>
361         </doc:template>
362         <xsl:template match="copyright" name="copyright">
363                 <xsl:call-template name="gentext.element.name"/>
364                 <xsl:call-template name='gentext.space'/>
365                 <xsl:call-template name="dingbat">
366                         <xsl:with-param name="dingbat">copyright</xsl:with-param>
367                 </xsl:call-template>
368                 <xsl:call-template name='gentext.space'/>
369                 <xsl:apply-templates select="year"/>
370                 <xsl:call-template name='gentext.space'/>
371                 <xsl:apply-templates select="holder"/>
372         </xsl:template>
373
374         <doc:template xmlns="">
375                 <refpurpose>Process a <doc:db>copyright</doc:db>'s <doc:db>holder</doc:db> elements</refpurpose>
376                 <doc:description>
377                         <para>
378                                 Applies templates.
379                         </para>
380                 </doc:description>
381                 <doc:variables>
382                         &no_var;
383                 </doc:variables>
384         </doc:template>
385         <xsl:template match="copyright/holder">
386                 <xsl:apply-templates />
387         </xsl:template>
388
389         <xsl:template match="copyright/year[position()&lt;last()-1]">
390                 <xsl:apply-templates />
391                 <xsl:text>, </xsl:text>
392         </xsl:template>
393
394         <!-- RCAS 2003/03/11 FIXME : "and" -->
395         <xsl:template match="copyright/year[position()=last()-1]">
396                 <xsl:apply-templates />
397                 <xsl:text>, </xsl:text>
398         </xsl:template>
399
400         <xsl:template match="copyright/year[position()=last()]">
401                 <xsl:apply-templates />
402         </xsl:template>
403
404         <doc:template xmlns="">
405                 <refpurpose>Process <doc:db>exceptionname</doc:db> elements</refpurpose>
406                 <doc:description>
407                         <para>
408                                 Invokes <xref linkend="template.inline.monoseq"/>.
409                         </para>
410                 </doc:description>
411                 <doc:variables>
412                         &no_var;
413                 </doc:variables>
414         </doc:template>
415         <xsl:template match="exceptionname">
416                 <xsl:call-template name="inline.monoseq"/>
417         </xsl:template>
418
419         <doc:template xmlns="">
420                 <refpurpose>Process <doc:db>interfacename</doc:db> elements</refpurpose>
421                 <doc:description>
422                         <para>
423                                 Invokes <xref linkend="template.inline.monoseq"/>.
424                         </para>
425                 </doc:description>
426                 <doc:variables>
427                         &no_var;
428                 </doc:variables>
429         </doc:template>
430         <xsl:template match="interfacename">
431                 <xsl:call-template name="inline.monoseq"/>
432         </xsl:template>
433
434         <doc:template xmlns="">
435                 <refpurpose>Process <doc:db>methodname</doc:db> elements</refpurpose>
436                 <doc:description>
437                         <para>
438                                 Invokes <xref linkend="template.inline.monoseq"/>.
439                         </para>
440                 </doc:description>
441                 <doc:variables>
442                         &no_var;
443                 </doc:variables>
444         </doc:template>
445         <xsl:template match="methodname">
446                 <xsl:call-template name="inline.monoseq"/>
447         </xsl:template>
448
449         <doc:template xmlns="">
450                 <refpurpose>Process <doc:db>command</doc:db> elements</refpurpose>
451                 <doc:description>
452                         <para>
453                                 Invokes <xref linkend="template.inline.boldseq"/>.
454                         </para>
455                 </doc:description>
456                 <doc:variables>
457                         &no_var;
458                 </doc:variables>
459         </doc:template>
460         <xsl:template match="command">
461                 <xsl:call-template name="inline.boldseq"/>
462         </xsl:template>
463
464         <doc:template xmlns="">
465                 <refpurpose>Process <doc:db>computeroutput</doc:db> elements</refpurpose>
466                 <doc:description>
467                         <para>
468                                 Invokes <xref linkend="template.inline.monoseq"/>.
469                         </para>
470                 </doc:description>
471                 <doc:variables>
472                         &no_var;
473                 </doc:variables>
474         </doc:template>
475         <xsl:template match="computeroutput">
476                 <xsl:call-template name="inline.monoseq"/>
477         </xsl:template>
478
479         <doc:template xmlns="">
480                 <refpurpose>Process <doc:db>constant</doc:db> elements</refpurpose>
481                 <doc:description>
482                         <para>
483                                 Invokes <xref linkend="template.inline.monoseq"/>.
484                         </para>
485                 </doc:description>
486                 <doc:variables>
487                         &no_var;
488                 </doc:variables>
489         </doc:template>
490         <xsl:template match="constant">
491                 <xsl:call-template name="inline.monoseq"/>
492         </xsl:template>
493
494         <doc:template xmlns="">
495                 <refpurpose>Process <doc:db>database</doc:db> elements</refpurpose>
496                 <doc:description>
497                         <para>
498                                 Invokes <xref linkend="template.inline.charseq"/>.
499                         </para>
500                 </doc:description>
501                 <doc:variables>
502                         &no_var;
503                 </doc:variables>
504         </doc:template>
505         <xsl:template match="database">
506                 <xsl:call-template name="inline.charseq"/>
507         </xsl:template>
508
509         <doc:template xmlns="">
510                 <refpurpose>Process <doc:db>errorcode</doc:db> elements</refpurpose>
511                 <doc:description>
512                         <para>
513                                 Invokes <xref linkend="template.inline.charseq"/>.
514                         </para>
515                 </doc:description>
516                 <doc:variables>
517                         &no_var;
518                 </doc:variables>
519         </doc:template>
520         <xsl:template match="errorcode">
521                 <xsl:call-template name="inline.charseq"/>
522         </xsl:template>
523
524         <doc:template xmlns="">
525                 <refpurpose>Process <doc:db>errorname</doc:db> elements</refpurpose>
526                 <doc:description>
527                         <para>
528                                 Invokes <xref linkend="template.inline.charseq"/>.
529                         </para>
530                 </doc:description>
531                 <doc:variables>
532                         &no_var;
533                 </doc:variables>
534         </doc:template>
535         <xsl:template match="errorname">
536                 <xsl:call-template name="inline.charseq"/>
537         </xsl:template>
538
539         <doc:template xmlns="">
540                 <refpurpose>Process <doc:db>errortype</doc:db> elements</refpurpose>
541                 <doc:description>
542                         <para>
543                                 Invokes <xref linkend="template.inline.charseq"/>.
544                         </para>
545                 </doc:description>
546                 <doc:variables>
547                         &no_var;
548                 </doc:variables>
549         </doc:template>
550         <xsl:template match="errortype">
551                 <xsl:call-template name="inline.charseq"/>
552         </xsl:template>
553
554         <doc:template xmlns="">
555                 <refpurpose>Process <doc:db>envar</doc:db> elements</refpurpose>
556                 <doc:description>
557                         <para>
558                                 Invokes <xref linkend="template.inline.monoseq"/>.
559                         </para>
560                 </doc:description>
561                 <doc:variables>
562                         &no_var;
563                 </doc:variables>
564         </doc:template>
565         <xsl:template match="envar">
566                 <xsl:call-template name="inline.monoseq"/>
567         </xsl:template>
568
569         <doc:template xmlns="">
570                 <refpurpose>Process <doc:db>filename</doc:db> elements</refpurpose>
571                 <doc:description>
572                         <para>
573                                 Invokes <xref linkend="template.inline.monoseq"/>.
574                         </para>
575                 </doc:description>
576                 <doc:variables>
577                         &no_var;
578                 </doc:variables>
579         </doc:template>
580         <xsl:template match="filename">
581                 <xsl:call-template name="inline.monoseq">
582                         <xsl:with-param name="hyphenation">\docbookhyphenatefilename</xsl:with-param>
583                 </xsl:call-template>
584         </xsl:template>
585
586         <doc:template xmlns="">
587                 <refpurpose>Process <doc:db>function</doc:db> elements</refpurpose>
588                 <doc:description>
589                         <para>
590                                 Invokes <xref linkend="template.inline.monoseq"/>.
591                         </para>
592                 </doc:description>
593                 <doc:variables>
594                         &no_var;
595                 </doc:variables>
596                 <doc:notes>
597                         <para>
598                                 <doc:todo>Insert documentation here.</doc:todo>
599                         </para>
600                 </doc:notes>
601         </doc:template>
602         <xsl:template match="function">
603                 <xsl:choose>
604                         <xsl:when test="$function.parens = 1 or parameter or function or replaceable">
605                                 <xsl:variable name="nodes" select="text()|*"/>
606                                 <xsl:call-template name="inline.monoseq">
607                                         <xsl:with-param name="content">
608                                         <xsl:apply-templates select="$nodes[1]"/>
609                                         </xsl:with-param>
610                                 </xsl:call-template>
611                                 <xsl:text>(</xsl:text>
612                                 <xsl:apply-templates select="$nodes[position()>1]"/>
613                                 <xsl:text>)</xsl:text>
614                         </xsl:when>
615                         <xsl:otherwise>
616                                 <xsl:call-template name="inline.monoseq"/>
617                         </xsl:otherwise>
618                 </xsl:choose>
619         </xsl:template>
620
621         <doc:template xmlns="">
622                 <refpurpose>Process a <doc:db>function</doc:db>'s <doc:db>parameter</doc:db> elements</refpurpose>
623                 <doc:description>
624                         <para>
625                                 Invokes <xref linkend="template.inline.italicmonoseq"/> and
626                                 separates subsequent <doc:db
627                                 basename="replaceable">replaceables</doc:db> with commas.
628                         </para>
629                 </doc:description>
630                 <doc:variables>
631                         &no_var;
632                 </doc:variables>
633         </doc:template>
634         <xsl:template match="function/parameter" priority="2">
635                 <xsl:call-template name="inline.italicmonoseq"/>
636                 <xsl:if test="following-sibling::*">
637                         <xsl:text>, </xsl:text>
638                 </xsl:if>
639         </xsl:template>
640
641         <doc:template xmlns="">
642                 <refpurpose>Process a <doc:db>function</doc:db>'s <doc:db>replaceable</doc:db> elements</refpurpose>
643                 <doc:description>
644                         <para>
645                                 Invokes <xref linkend="template.inline.italicmonoseq"/> and
646                                 separates subsequent <doc:db
647                                 basename="replaceable">replaceables</doc:db> with commas.
648                         </para>
649                 </doc:description>
650                 <doc:variables>
651                         &no_var;
652                 </doc:variables>
653         </doc:template>
654         <xsl:template match="function/replaceable" priority="2">
655                 <xsl:call-template name="inline.italicmonoseq"/>
656                 <xsl:if test="following-sibling::*">
657                         <xsl:text>, </xsl:text>
658                 </xsl:if>
659         </xsl:template>
660
661         <doc:template xmlns="">
662                 <refpurpose>Process GUI-type elements</refpurpose>
663                 <doc:description>
664                         <para>
665                                 Invokes <xref linkend="template.inline.charseq"/>
666                                 within a &LaTeX; <function condition="latex">sffamily</function>
667                                 and <function condition="latex">bfseries</function> commands.
668                         </para>
669                 </doc:description>
670                 <doc:variables>
671                         &no_var;
672                 </doc:variables>
673         </doc:template>
674         <xsl:template match="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface">
675                 <xsl:text>{\sffamily \bfseries </xsl:text>
676                 <xsl:call-template name="inline.charseq" />
677                 <xsl:text>}</xsl:text>
678         </xsl:template>
679
680         <doc:template xmlns="">
681                 <refpurpose>Process <doc:db>hardware</doc:db> elements</refpurpose>
682                 <doc:description>
683                         <para>
684                                 Invokes <xref linkend="template.inline.charseq"/>.
685                         </para>
686                 </doc:description>
687                 <doc:variables>
688                         &no_var;
689                 </doc:variables>
690         </doc:template>
691         <xsl:template match="hardware">
692                 <xsl:call-template name="inline.charseq"/>
693         </xsl:template>
694
695         <doc:template xmlns="">
696                 <refpurpose>Process <doc:db>interfacedefinition</doc:db> elements</refpurpose>
697                 <doc:description>
698                         <para>
699                                 Invokes <xref linkend="template.inline.charseq"/>.
700                         </para>
701                 </doc:description>
702                 <doc:variables>
703                         &no_var;
704                 </doc:variables>
705         </doc:template>
706         <xsl:template match="interfacedefinition">
707                 <xsl:call-template name="inline.charseq"/>
708         </xsl:template>
709
710         <doc:template xmlns="">
711                 <refpurpose>Process <doc:db>keycap</doc:db> and <doc:db>keysym</doc:db> elements</refpurpose>
712                 <doc:description>
713                         <para>
714                                 Invokes <xref linkend="template.inline.boldseq"/>.
715                         </para>
716                 </doc:description>
717                 <doc:variables>
718                         &no_var;
719                 </doc:variables>
720         </doc:template>
721         <xsl:template match="keycap|keysym">
722                 <xsl:call-template name="inline.boldseq" />
723         </xsl:template>
724
725         <doc:template xmlns="">
726                 <refpurpose>Process <doc:db>keycode</doc:db> elements</refpurpose>
727                 <doc:description>
728                         <para>
729                                 Invokes <xref linkend="template.inline.charseq"/>.
730                         </para>
731                 </doc:description>
732                 <doc:variables>
733                         &no_var;
734                 </doc:variables>
735         </doc:template>
736         <xsl:template match="keycode">
737                 <xsl:call-template name="inline.charseq"/>
738         </xsl:template>
739
740         <doc:template xmlns="">
741                 <refpurpose>Process <doc:db>literal</doc:db> elements</refpurpose>
742                 <doc:description>
743                         <para>
744                                 Invokes <xref linkend="template.inline.monoseq"/>.
745                         </para>
746                 </doc:description>
747                 <doc:variables>
748                         &no_var;
749                 </doc:variables>
750         </doc:template>
751         <xsl:template match="literal">
752                 <xsl:call-template name="inline.monoseq"/>
753         </xsl:template>
754
755         <doc:template xmlns="">
756                 <refpurpose>Process <doc:db>medialabel</doc:db> elements</refpurpose>
757                 <doc:description>
758                         <para>
759                                 Invokes <xref linkend="template.inline.italicseq"/>.
760                         </para>
761                 </doc:description>
762                 <doc:variables>
763                         &no_var;
764                 </doc:variables>
765         </doc:template>
766         <xsl:template match="medialabel">
767                 <xsl:call-template name="inline.italicseq"/>
768         </xsl:template>
769
770         <doc:template xmlns="">
771                 <refpurpose>Process <doc:db>shortcut</doc:db> elements</refpurpose>
772                 <doc:description>
773                         <para>
774                                 Applies templates.
775                         </para>
776                 </doc:description>
777                 <doc:variables>
778                         &no_var;
779                 </doc:variables>
780         </doc:template>
781         <xsl:template match="shortcut">
782                 <xsl:apply-templates/>
783         </xsl:template>
784
785         <doc:template xmlns="">
786                 <refpurpose>Process <doc:db>mousebutton</doc:db> elements</refpurpose>
787                 <doc:description>
788                         <para>
789                                 Invokes <xref linkend="template.inline.charseq"/>.
790                         </para>
791                 </doc:description>
792                 <doc:variables>
793                         &no_var;
794                 </doc:variables>
795         </doc:template>
796         <xsl:template match="mousebutton">
797                 <xsl:call-template name="inline.charseq"/>
798         </xsl:template>
799
800         <doc:template xmlns="">
801                 <refpurpose>Process <doc:db>option</doc:db> elements</refpurpose>
802                 <doc:description>
803                         <para>
804                                 Invokes <xref linkend="template.inline.monoseq"/>.
805                         </para>
806                 </doc:description>
807                 <doc:variables>
808                         &no_var;
809                 </doc:variables>
810         </doc:template>
811         <xsl:template match="option">
812                 <xsl:call-template name="inline.monoseq"/>
813         </xsl:template>
814
815         <doc:template xmlns="">
816                 <refpurpose>Process <doc:db>parameter</doc:db> elements</refpurpose>
817                 <doc:description>
818                         <para>
819                                 Invokes <xref linkend="template.inline.italicmonoseq"/>.
820                         </para>
821                 </doc:description>
822                 <doc:variables>
823                         &no_var;
824                 </doc:variables>
825         </doc:template>
826         <xsl:template match="parameter" priority="1">
827                 <xsl:call-template name="inline.italicmonoseq"/>
828         </xsl:template>
829
830         <doc:template xmlns="">
831                 <refpurpose>Process <doc:db>property</doc:db> elements</refpurpose>
832                 <doc:description>
833                         <para>
834                                 Invokes <xref linkend="template.inline.charseq"/>.
835                         </para>
836                 </doc:description>
837                 <doc:variables>
838                         &no_var;
839                 </doc:variables>
840         </doc:template>
841         <xsl:template match="property">
842                 <xsl:call-template name="inline.charseq"/>
843         </xsl:template>
844
845         <doc:template xmlns="">
846                 <refpurpose>Process <doc:db>prompt</doc:db> elements</refpurpose>
847                 <doc:description>
848                         <para>
849                                 Invokes <xref linkend="template.inline.monoseq"/>.
850                         </para>
851                 </doc:description>
852                 <doc:variables>
853                         &no_var;
854                 </doc:variables>
855         </doc:template>
856         <xsl:template match="prompt">
857                 <xsl:call-template name="inline.monoseq"/>
858         </xsl:template>
859
860         <doc:template xmlns="">
861                 <refpurpose>Process <doc:db>replaceable</doc:db> elements</refpurpose>
862                 <doc:description>
863                         <para>
864                                 Invokes <xref linkend="template.inline.italicmonoseq"/>.
865                         </para>
866                 </doc:description>
867                 <doc:variables>
868                         &no_var;
869                 </doc:variables>
870         </doc:template>
871         <xsl:template match="replaceable" priority="1">
872                 <xsl:call-template name="inline.italicmonoseq"/>
873         </xsl:template>
874
875         <doc:template xmlns="">
876                 <refpurpose>Process <doc:db>returnvalue</doc:db> elements</refpurpose>
877                 <doc:description>
878                         <para>
879                                 Invokes <xref linkend="template.inline.charseq"/>.
880                         </para>
881                 </doc:description>
882                 <doc:variables>
883                         &no_var;
884                 </doc:variables>
885         </doc:template>
886         <xsl:template match="returnvalue">
887                 <xsl:call-template name="inline.charseq"/>
888         </xsl:template>
889
890         <doc:template xmlns="">
891                 <refpurpose>Process <doc:db>structfield</doc:db> elements</refpurpose>
892                 <doc:description>
893                         <para>
894                                 Invokes <xref linkend="template.inline.italicmonoseq"/>.
895                         </para>
896                 </doc:description>
897                 <doc:variables>
898                         &no_var;
899                 </doc:variables>
900         </doc:template>
901         <xsl:template match="structfield">
902                 <xsl:call-template name="inline.italicmonoseq"/>
903         </xsl:template>
904
905         <doc:template xmlns="">
906                 <refpurpose>Process <doc:db>structname</doc:db> elements</refpurpose>
907                 <doc:description>
908                         <para>
909                                 Invokes <xref linkend="template.inline.charseq"/>.
910                         </para>
911                 </doc:description>
912                 <doc:variables>
913                         &no_var;
914                 </doc:variables>
915         </doc:template>
916         <xsl:template match="structname">
917                 <xsl:call-template name="inline.charseq"/>
918         </xsl:template>
919
920         <doc:template xmlns="">
921                 <refpurpose>Process <doc:db>symbol</doc:db> elements</refpurpose>
922                 <doc:description>
923                         <para>
924                                 Invokes <xref linkend="template.inline.charseq"/>.
925                         </para>
926                 </doc:description>
927                 <doc:variables>
928                         &no_var;
929                 </doc:variables>
930         </doc:template>
931         <xsl:template match="symbol">
932                 <xsl:call-template name="inline.charseq"/>
933         </xsl:template>
934
935         <doc:template xmlns="">
936                 <refpurpose>Process <doc:db>systemitem</doc:db> elements</refpurpose>
937                 <doc:description>
938                         <para>
939                                 Invokes <xref linkend="template.inline.monoseq"/>.
940                         </para>
941                 </doc:description>
942                 <doc:variables>
943                         &no_var;
944                 </doc:variables>
945         </doc:template>
946         <xsl:template match="systemitem">
947                 <xsl:call-template name="inline.monoseq"/>
948         </xsl:template>
949
950         <doc:template xmlns="">
951                 <refpurpose>Process <doc:db>token</doc:db> elements</refpurpose>
952                 <doc:description>
953                         <para>
954                                 Invokes <xref linkend="template.inline.charseq"/>.
955                         </para>
956                 </doc:description>
957                 <doc:variables>
958                         &no_var;
959                 </doc:variables>
960         </doc:template>
961         <xsl:template match="token">
962                 <xsl:call-template name="inline.charseq"/>
963         </xsl:template>
964
965         <doc:template xmlns="">
966                 <refpurpose>Process <doc:db>type</doc:db> elements</refpurpose>
967                 <doc:description>
968                         <para>
969                                 Invokes <xref linkend="template.inline.charseq"/>.
970                         </para>
971                 </doc:description>
972                 <doc:variables>
973                         &no_var;
974                 </doc:variables>
975         </doc:template>
976         <xsl:template match="type">
977                 <xsl:call-template name="inline.charseq"/>
978         </xsl:template>
979
980         <doc:template xmlns="">
981                 <refpurpose>Process <doc:db>userinput</doc:db> elements</refpurpose>
982                 <doc:description>
983                         <para>
984                                 Invokes <xref linkend="template.inline.boldmonoseq"/>.
985                         </para>
986                 </doc:description>
987                 <doc:variables>
988                         &no_var;
989                 </doc:variables>
990         </doc:template>
991         <xsl:template match="userinput">
992                 <xsl:call-template name="inline.boldmonoseq"/>
993         </xsl:template>
994
995         <doc:template xmlns="">
996                 <refpurpose>Process <doc:db>abbrev</doc:db> elements</refpurpose>
997                 <doc:description>
998                         <para>
999                                 Invokes <xref linkend="template.inline.charseq"/>.
1000                         </para>
1001                 </doc:description>
1002                 <doc:variables>
1003                         &no_var;
1004                 </doc:variables>
1005                 <doc:notes>
1006                         <para>
1007                                 <doc:todo>It would be useful if a terminating full stop
1008                                 were not to induce sentence-end whitespace spacing.</doc:todo>
1009                         </para>
1010                 </doc:notes>
1011         </doc:template>
1012         <xsl:template match="abbrev">
1013                 <xsl:call-template name="inline.charseq"/>
1014         </xsl:template>
1015
1016         <doc:template xmlns="">
1017                 <refpurpose>Process <doc:db>acronym</doc:db> elements</refpurpose>
1018                 <doc:description>
1019                         <para>
1020                                 Invokes <xref linkend="template.inline.charseq"/>.
1021                         </para>
1022                 </doc:description>
1023                 <doc:variables>
1024                         &no_var;
1025                 </doc:variables>
1026         </doc:template>
1027         <xsl:template match="acronym">
1028                 <xsl:call-template name="inline.charseq"/>
1029         </xsl:template>
1030
1031         <doc:template xmlns="">
1032                 <refpurpose>Process <doc:db>citerefentry</doc:db> elements</refpurpose>
1033                 <doc:description>
1034                         <para>
1035                                 Invokes <xref linkend="template.inline.charseq"/>.
1036                         </para>
1037                 </doc:description>
1038                 <doc:variables>
1039                         &no_var;
1040                 </doc:variables>
1041         </doc:template>
1042         <xsl:template match="citerefentry">
1043                 <xsl:call-template name="inline.charseq"/>
1044         </xsl:template>
1045
1046         <doc:template xmlns="">
1047                 <refpurpose>Process <doc:db>citetitle</doc:db> elements</refpurpose>
1048                 <doc:description>
1049                         <para>
1050                                 Invokes <xref linkend="template.inline.italicseq"/>.
1051                         </para>
1052                 </doc:description>
1053                 <doc:variables>
1054                         &no_var;
1055                 </doc:variables>
1056         </doc:template>
1057         <xsl:template match="citetitle">
1058                 <xsl:call-template name="inline.italicseq"/>
1059         </xsl:template>
1060
1061         <doc:template xmlns="">
1062                 <refpurpose>Process <doc:db>corpauthor</doc:db> elements</refpurpose>
1063                 <doc:description>
1064                         <para>
1065                                 Applies templates.
1066                         </para>
1067                 </doc:description>
1068                 <doc:variables>
1069                         &no_var;
1070                 </doc:variables>
1071         </doc:template>
1072         <xsl:template match="corpauthor">
1073                 <xsl:apply-templates/>
1074         </xsl:template>
1075
1076         <doc:template xmlns="">
1077                 <refpurpose>Process <doc:db>emphasis</doc:db> elements</refpurpose>
1078                 <doc:description>
1079                         <para>
1080                                 Invokes <xref linkend="template.inline.italicseq"/>.
1081                         </para>
1082                 </doc:description>
1083                 <doc:variables>
1084                         &no_var;
1085                 </doc:variables>
1086         </doc:template>
1087         <xsl:template match="emphasis">
1088                 <xsl:call-template name="inline.italicseq"/>
1089         </xsl:template>
1090
1091         <doc:template xmlns="" basename="emphasis">
1092                 <refpurpose>Process <doc:db>emphasis</doc:db> elements with <quote>bold</quote> role</refpurpose>
1093                 <doc:description>
1094                         <para>
1095                                 Invokes <xref linkend="template.inline.boldseq"/>.
1096                         </para>
1097                 </doc:description>
1098                 <doc:variables>
1099                         &no_var;
1100                 </doc:variables>
1101         </doc:template>
1102         <xsl:template match="emphasis[@role='bold']">
1103                 <xsl:call-template name="inline.boldseq"/>
1104         </xsl:template>
1105
1106         <doc:template xmlns="">
1107                 <refpurpose>Process <doc:db>foreignphrase</doc:db> elements</refpurpose>
1108                 <doc:description>
1109                         <para>
1110                                 Invokes <xref linkend="template.inline.italicseq"/>.
1111                         </para>
1112                 </doc:description>
1113                 <doc:variables>
1114                         &no_var;
1115                 </doc:variables>
1116         </doc:template>
1117         <xsl:template match="foreignphrase">
1118                 <xsl:call-template name="inline.italicseq"/>
1119         </xsl:template>
1120
1121         <doc:template xmlns="">
1122                 <refpurpose>Process <doc:db>jobtitle</doc:db> elements</refpurpose>
1123                 <doc:description>
1124                         <para>
1125                                 Applies templates.
1126                         </para>
1127                 </doc:description>
1128                 <doc:variables>
1129                         &no_var;
1130                 </doc:variables>
1131         </doc:template>
1132         <xsl:template match="jobtitle">
1133                 <xsl:apply-templates/>
1134         </xsl:template>
1135
1136         <doc:template xmlns="">
1137                 <refpurpose>Process <doc:db>markup</doc:db> elements</refpurpose>
1138                 <doc:description>
1139                         <para>
1140                                 Applies template using the <literal>latex.verbatim</literal>
1141                                 mode.
1142                         </para>
1143                 </doc:description>
1144                 <doc:variables>
1145                         &no_var;
1146                 </doc:variables>
1147         </doc:template>
1148         <xsl:template match="markup">
1149                 <xsl:apply-templates mode="latex.verbatim"/>
1150         </xsl:template>
1151
1152         <doc:template xmlns="">
1153                 <refpurpose>Process <doc:db>orgdiv</doc:db> elements</refpurpose>
1154                 <doc:description>
1155                         <para>
1156                                 Applies templates.
1157                         </para>
1158                 </doc:description>
1159                 <doc:variables>
1160                         &no_var;
1161                 </doc:variables>
1162         </doc:template>
1163         <xsl:template match="orgdiv">
1164                 <xsl:apply-templates/>
1165         </xsl:template>
1166
1167         <doc:template xmlns="">
1168                 <refpurpose>Process <doc:db>orgname</doc:db> elements</refpurpose>
1169                 <doc:description>
1170                         <para>
1171                                 Applies templates.
1172                         </para>
1173                 </doc:description>
1174                 <doc:variables>
1175                         &no_var;
1176                 </doc:variables>
1177         </doc:template>
1178         <xsl:template match="orgname">
1179                 <xsl:apply-templates/>
1180         </xsl:template>
1181
1182         <doc:template xmlns="">
1183                 <refpurpose>Process <doc:db>phrase</doc:db> elements</refpurpose>
1184                 <doc:description>
1185                         <para>
1186                                 Invokes <xref linkend="template.inline.charseq"/>.
1187                         </para>
1188                 </doc:description>
1189                 <doc:variables>
1190                         &no_var;
1191                 </doc:variables>
1192                 <doc:notes>
1193                         <para>
1194                                 Normally, <xref linkend="template.inline.charseq"/> is used.
1195                                 However, the use of <quote>latex</quote> or <quote>tex</quote>
1196                                 for the <sgmltag class="attribute">role</sgmltag> attribute
1197                                 will convert the contents to plain text without &LaTeX;
1198                                 active-character escaping.
1199                         </para>
1200                 </doc:notes>
1201         </doc:template>
1202         <xsl:template match="phrase">
1203                 <xsl:choose>
1204                         <xsl:when test="@role='tex' or @role='latex'">
1205                                 <xsl:value-of select="."/>
1206                         </xsl:when>
1207                         <xsl:otherwise>
1208                                 <xsl:call-template name="inline.charseq"/>
1209                         </xsl:otherwise>
1210                 </xsl:choose>
1211         </xsl:template>
1212
1213         <doc:template xmlns="">
1214                 <refpurpose>Process <doc:db>quote</doc:db> elements</refpurpose>
1215                 <doc:description>
1216                         <para>
1217                                 Invokes <xref linkend="template.inline.charseq"/>.
1218                         </para>
1219                 </doc:description>
1220                 <doc:variables>
1221                         &no_var;
1222                 </doc:variables>
1223                 <doc:notes>
1224                         <para>
1225                                 The contents will be enclosed in quotation marks,
1226                                 using <literal>gentext.startquote</literal>
1227                                 and <literal>gentext.nestedstartquote</literal>
1228                                 alternating according to the <doc:db>quote</doc:db>
1229                                 nesting level.
1230                         </para>
1231                 </doc:notes>
1232         </doc:template>
1233         <xsl:template match="quote">
1234                 <xsl:choose>
1235                         <xsl:when test="count(ancestor::quote) mod 2=0">
1236                                 <xsl:call-template name="gentext.startquote"/>
1237                                 <xsl:call-template name="inline.charseq"/>
1238                                 <xsl:call-template name="gentext.endquote"/>
1239                         </xsl:when>
1240                         <xsl:otherwise>
1241                                 <xsl:call-template name="gentext.nestedstartquote"/>
1242                                 <xsl:call-template name="inline.charseq"/>
1243                                 <xsl:call-template name="gentext.nestedendquote"/>
1244                         </xsl:otherwise>
1245                 </xsl:choose>
1246         </xsl:template>
1247
1248         <doc:template xmlns="">
1249                 <refpurpose>Process <doc:db>varname</doc:db> elements</refpurpose>
1250                 <doc:description>
1251                         <para>
1252                                 Invokes <xref linkend="template.inline.monoseq"/>.
1253                         </para>
1254                 </doc:description>
1255                 <doc:variables>
1256                         &no_var;
1257                 </doc:variables>
1258         </doc:template>
1259         <xsl:template match="varname">
1260                 <xsl:call-template name="inline.monoseq"/>
1261         </xsl:template>
1262
1263         <doc:template xmlns="">
1264                 <refpurpose>Process <doc:db>wordasword</doc:db> elements</refpurpose>
1265                 <doc:description>
1266                         <para>
1267                                 Invokes <xref linkend="template.inline.italicseq"/>.
1268                         </para>
1269                 </doc:description>
1270                 <doc:variables>
1271                         &no_var;
1272                 </doc:variables>
1273         </doc:template>
1274         <xsl:template match="wordasword">
1275                 <xsl:call-template name="inline.italicseq"/>
1276         </xsl:template>
1277
1278         <doc:template xmlns="">
1279                 <refpurpose>Process <doc:db>lineannotation</doc:db> elements</refpurpose>
1280                 <doc:description>
1281                         <para>
1282                                 Invokes <xref linkend="template.inline.charseq"/>.
1283                         </para>
1284                 </doc:description>
1285                 <doc:variables>
1286                         &no_var;
1287                 </doc:variables>
1288         </doc:template>
1289         <xsl:template match="lineannotation">
1290                 <xsl:call-template name="inline.charseq"/>
1291         </xsl:template>
1292
1293         <doc:template xmlns="">
1294                 <refpurpose>Process <doc:db>superscript</doc:db> elements</refpurpose>
1295                 <doc:description>
1296                         <para>
1297                                 Invokes <xref linkend="template.inline.superscriptseq"/>.
1298                         </para>
1299                 </doc:description>
1300                 <doc:variables>
1301                         &no_var;
1302                 </doc:variables>
1303         </doc:template>
1304         <xsl:template match="superscript">
1305                 <xsl:call-template name="inline.superscriptseq"/>
1306         </xsl:template>
1307
1308         <doc:template xmlns="">
1309                 <refpurpose>Process <doc:db>subscript</doc:db> elements</refpurpose>
1310                 <doc:description>
1311                         <para>
1312                                 Invokes <xref linkend="template.inline.subscriptseq"/>.
1313                         </para>
1314                 </doc:description>
1315                 <doc:variables>
1316                         &no_var;
1317                 </doc:variables>
1318         </doc:template>
1319         <xsl:template match="subscript">
1320                 <xsl:call-template name="inline.subscriptseq"/>
1321         </xsl:template>
1322
1323         <doc:template xmlns="">
1324                 <refpurpose>Process <doc:db>trademark</doc:db> elements</refpurpose>
1325                 <doc:description>
1326                         <para>
1327                                 Invokes <xref linkend="template.inline.charseq"/>,
1328                                 then appends a <quote>trademark</quote> dingbat.
1329                         </para>
1330                 </doc:description>
1331                 <doc:variables>
1332                         &no_var;
1333                 </doc:variables>
1334                 <doc:seealso>
1335                         <itemizedlist>
1336                                 <listitem><simpara><xref linkend="template.dingbat"/></simpara></listitem>
1337                         </itemizedlist>
1338                 </doc:seealso>
1339         </doc:template>
1340         <xsl:template match="trademark">
1341                 <xsl:call-template name="inline.charseq"/>
1342                 <xsl:call-template name="dingbat">
1343                         <xsl:with-param name="dingbat">trademark</xsl:with-param>
1344                 </xsl:call-template>
1345         </xsl:template>
1346
1347         <doc:template xmlns="">
1348                 <refpurpose>Process <doc:db>firstterm</doc:db> elements</refpurpose>
1349                 <doc:description>
1350                         <para>
1351                                 Invokes <xref linkend="template.inline.italicseq"/>.
1352                         </para>
1353                 </doc:description>
1354                 <doc:variables>
1355                         &no_var;
1356                 </doc:variables>
1357         </doc:template>
1358     <xsl:template match="firstterm">
1359         <xsl:call-template name="inline.italicseq"/>
1360     </xsl:template>
1361
1362         <doc:template xmlns="">
1363                 <refpurpose>Process <doc:db>glossterm</doc:db> elements</refpurpose>
1364                 <doc:description>
1365                         <para>
1366                                 Invokes <xref linkend="template.inline.charseq"/>.
1367                         </para>
1368                 </doc:description>
1369                 <doc:variables>
1370                         &no_var;
1371                 </doc:variables>
1372         </doc:template>
1373         <xsl:template match="glossterm">
1374                 <xsl:call-template name="inline.charseq"/>
1375         </xsl:template>
1376
1377         <doc:template xmlns="">
1378                 <refpurpose>Process <doc:db>keycombo</doc:db> elements</refpurpose>
1379                 <doc:description>
1380                         <para>
1381                                 Formats a key combination using conjugation characters.
1382                         </para>
1383                 </doc:description>
1384                 <doc:variables>
1385                         &no_var;
1386                 </doc:variables>
1387                 <doc:notes>
1388                         <para>
1389                                 Templates are applied for all children, with comjugation
1390                                 characters based upon the <sgmltag
1391                                 class="attribute">action</sgmltag> attribute.
1392                         </para>
1393                         <para>
1394                                 For <quote>seq</quote> actions, a space character is used.
1395                                 For <quote>simul</quote> actions, a plus sign (+) is used.
1396                                 For <quote>other</quote> actions, no conjugation character is
1397                                 used (children will be abutting).
1398                                 For all other actions, an en-dash is used.
1399                         </para>
1400                 </doc:notes>
1401         </doc:template>
1402         <xsl:template match="keycombo">
1403                 <xsl:variable name="action" select="@action"/>
1404                 <xsl:variable name="joinchar">
1405                         <xsl:choose>
1406                         <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
1407                         <xsl:when test="$action='simul'">+</xsl:when>
1408                         <xsl:when test="$action='press'">--</xsl:when>
1409                         <xsl:when test="$action='click'">--</xsl:when>
1410                         <xsl:when test="$action='double-click'">--</xsl:when>
1411                         <xsl:when test="$action='other'"></xsl:when>
1412                         <xsl:otherwise>--</xsl:otherwise>
1413                         </xsl:choose>
1414                 </xsl:variable>
1415                 <xsl:for-each select="./*">
1416                         <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
1417                         <xsl:apply-templates select="."/>
1418                 </xsl:for-each>
1419         </xsl:template>
1420
1421         <doc:template xmlns="">
1422                 <refpurpose>Process <doc:db>menuchoice</doc:db> elements</refpurpose>
1423                 <doc:description>
1424                         <para>
1425                                 Invokes templates for non-shortcut children, then formats any
1426                                 <doc:db basename="shortcut">shortcuts</doc:db> in parentheses.
1427                         </para>
1428                 </doc:description>
1429                 <doc:variables>
1430                         &no_var;
1431                 </doc:variables>
1432                 <doc:seealso>
1433                         <itemizedlist>
1434                                 <listitem><simpara><xref linkend="template.process.menuchoice"/></simpara></listitem>
1435                         </itemizedlist>
1436                 </doc:seealso>
1437         </doc:template>
1438         <xsl:template match="menuchoice">
1439                 <xsl:variable name="shortcut" select="./shortcut"/>
1440                 <xsl:call-template name="process.menuchoice"/>
1441                 <xsl:if test="$shortcut">
1442                         <xsl:text> (</xsl:text>
1443                         <xsl:apply-templates select="$shortcut"/>
1444                         <xsl:text>)</xsl:text>
1445                 </xsl:if>
1446         </xsl:template>
1447
1448         <doc:template xmlns="">
1449                 <refpurpose>Process <doc:db>menuchoice</doc:db> children (not shortcut) </refpurpose>
1450                 <doc:description>
1451                         <para>
1452                                 Applies templates.
1453                         </para>
1454                 </doc:description>
1455                 <doc:variables>
1456                         &no_var;
1457                 </doc:variables>
1458                 <doc:notes>
1459                         <para>
1460                                 Selects children of the current node (does not select <doc:db>shortcut</doc:db> elements).
1461                                 Subsequent children are delimited by a plug sign, in general, or an arrow,
1462                                 for <doc:db>guimenuitem</doc:db> and <doc:db>guisubmenu</doc:db>.
1463                         </para>
1464                 </doc:notes>
1465         </doc:template>
1466         <xsl:template name="process.menuchoice">
1467                 <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
1468                 <xsl:param name="count" select="1"/>
1469                 <xsl:choose>
1470                         <xsl:when test="$count>count($nodelist)"/>
1471                         <xsl:when test="$count=1">
1472                                 <xsl:apply-templates select="$nodelist[$count=position()]"/>
1473                                 <xsl:call-template name="process.menuchoice">
1474                                         <xsl:with-param name="nodelist" select="$nodelist"/>
1475                                         <xsl:with-param name="count" select="$count+1"/>
1476                                 </xsl:call-template>
1477                         </xsl:when>
1478                         <xsl:otherwise>
1479                                 <xsl:variable name="node" select="$nodelist[$count=position()]"/>
1480                                 <xsl:choose>
1481                                         <xsl:when test="name($node)='guimenuitem' or name($node)='guisubmenu'">
1482                                         <xsl:text> $\to$ </xsl:text>
1483                                         </xsl:when>
1484                                         <xsl:otherwise>+</xsl:otherwise>
1485                                 </xsl:choose>
1486                                 <xsl:apply-templates select="$node"/>
1487                                 <xsl:call-template name="process.menuchoice">
1488                                         <xsl:with-param name="nodelist" select="$nodelist"/>
1489                                         <xsl:with-param name="count" select="$count+1"/>
1490                                 </xsl:call-template>
1491                         </xsl:otherwise>
1492                 </xsl:choose>
1493         </xsl:template>
1494
1495         <doc:template xmlns="">
1496                 <refpurpose>Process <doc:db>optional</doc:db> elements</refpurpose>
1497                 <doc:description>
1498                         <para>
1499                                 Invokes <xref linkend="template.inline.charseq"/>,
1500                                 surrounded by $arg.choice.opt.open.str and
1501                                 $arg.choice.opt.close.str.
1502                         </para>
1503                 </doc:description>
1504                 <doc:variables>
1505                         &no_var;
1506                 </doc:variables>
1507         </doc:template>
1508         <xsl:template match="optional">
1509                 <xsl:value-of select="$arg.choice.opt.open.str"/>
1510                 <xsl:call-template name="inline.charseq"/>
1511                 <xsl:value-of select="$arg.choice.opt.close.str"/>
1512         </xsl:template>
1513
1514         <doc:template xmlns="">
1515                 <refpurpose>Process <doc:db>remark</doc:db> elements</refpurpose>
1516                 <doc:description>
1517                         <para>
1518                                 Applies templates as a margin note.
1519                         </para>
1520                 </doc:description>
1521                 <doc:variables>
1522                         <itemizedlist>
1523                                 <listitem><simpara><xref linkend="param.show.comments"/></simpara></listitem>
1524                         </itemizedlist>
1525                 </doc:variables>
1526                 <doc:notes>
1527                         <para>When <xref linkend="param.show.comments"/> is set,
1528                         templates will be applied within a &LaTeX;
1529                         <function condition="latex">marginpar</function> command,
1530                         using <function condition="latex">footnotesize</function>.</para>
1531                         <para>If <xref linkend="param.show.comments"/> is not set,
1532                         then content is suppressed.</para>
1533                 </doc:notes>
1534         </doc:template>
1535         <xsl:template match="comment|remark">
1536                 <xsl:if test="$show.comments=1">
1537                         <xsl:text>\marginpar{\footnotesize{</xsl:text>
1538                         <xsl:apply-templates/>
1539                         <xsl:text>}}</xsl:text>
1540                 </xsl:if>
1541         </xsl:template>
1542
1543         <doc:template xmlns="">
1544                 <refpurpose>Process <doc:db>productname</doc:db> elements</refpurpose>
1545                 <doc:description>
1546                         <para>
1547                                 Invokes <xref linkend="template.inline.charseq"/>.
1548                         </para>
1549                 </doc:description>
1550                 <doc:variables>
1551                         &no_var;
1552                 </doc:variables>
1553         </doc:template>
1554         <xsl:template match="productname">
1555                 <xsl:call-template name="inline.charseq"/>
1556         </xsl:template>
1557
1558         <doc:template xmlns="">
1559                 <refpurpose>Process <doc:db>productnumber</doc:db> elements</refpurpose>
1560                 <doc:description>
1561                         <para>
1562                                 Invokes <xref linkend="template.inline.charseq"/>.
1563                         </para>
1564                 </doc:description>
1565                 <doc:variables>
1566                         &no_var;
1567                 </doc:variables>
1568         </doc:template>
1569         <xsl:template match="productnumber">
1570                 <xsl:call-template name="inline.charseq"/>
1571         </xsl:template>
1572
1573         <doc:template xmlns="">
1574                 <refpurpose>Process address-like elements</refpurpose>
1575                 <doc:description>
1576                         <para>
1577                                 Invokes <xref linkend="template.inline.charseq"/>.
1578                         </para>
1579                 </doc:description>
1580                 <doc:variables>
1581                         &no_var;
1582                 </doc:variables>
1583         </doc:template>
1584         <xsl:template match="pob|street|city|state|postcode|country|phone|fax|otheraddr">
1585                 <xsl:call-template name="inline.charseq"/>
1586         </xsl:template>
1587
1588         <doc:template xmlns="">
1589                 <refpurpose>Process <doc:db>beginpage</doc:db> elements</refpurpose>
1590                 <doc:description>
1591                         <para>
1592                                 Suppressed.
1593                         </para>
1594                 </doc:description>
1595                 <doc:variables>
1596                         &no_var;
1597                 </doc:variables>
1598         </doc:template>
1599         <xsl:template match="beginpage"/>
1600
1601 </xsl:stylesheet>
1602