2 <!--#############################################################################
3 | $Id: latex.mapping.xsl,v 1.1 2003/04/30 21:39:49 ab Exp $
4 |- #############################################################################
8 + ############################################################################## -->
11 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
12 xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
13 exclude-result-prefixes="doc" version='1.0'>
15 <xsl:variable name="latex.mapping.xml" select="document('latex.mapping.xml')"/>
18 <!--############################################################################# -->
19 <!-- DOCUMENTATION -->
20 <doc:reference id="glossary" xmlns="">
22 <releaseinfo role="meta">
23 $Id: latex.mapping.xsl,v 1.1 2003/04/30 21:39:49 ab Exp $
26 <firstname>Ramon</firstname><surname>Casellas</surname>
29 <year>2000</year> <year>2001</year> <year>2002</year> <year>2003</year>
30 <holder>Ramon Casellas</holder>
33 <title>The DB2LaTeX mapping system <filename>latex.mapping.xsl</filename></title>
35 <section><title>Introduction</title>
36 <para>The DB2LaTeX mapping system centralizes mapping docbook tags (e.g. <sgmltag>chapter</sgmltag>)
37 to LaTeX commands <literal>\chapter</literal>. It used an auxiliary file, <filename>latex.mapping.xml</filename>
38 that defines how the mapping is to be done.</para>
42 <!--############################################################################# -->
45 <!--############################################################################# -->
46 <!-- DOCUMENTATION -->
47 <doc:template name="latex.mapping" xmlns="">
48 <refpurpose></refpurpose>
51 <formalpara><title>Remarks and Bugs</title>
55 <formalpara><title>Default Behaviour</title>
60 <!--############################################################################# -->
64 <xsl:template name="latex.mapping">
65 <xsl:param name="object" select="."/>
66 <xsl:param name="keyword" select="local-name($object)"/>
67 <xsl:param name="role" select="begin"/>
68 <xsl:param name="string">
69 <xsl:call-template name="extract.object.title">
70 <xsl:with-param name="object" select="$object"/>
73 <xsl:param name="use.label" select="1"/>
74 <xsl:param name="use.hypertarget" select="1"/>
75 <xsl:variable name="id">
77 <xsl:when test="$object/@id"> <xsl:value-of select="$object/@id"/> </xsl:when>
78 <xsl:otherwise> <xsl:value-of select="generate-id($object)"/> </xsl:otherwise>
81 <xsl:variable name="title">
83 <xsl:when test="$string=''">
84 <xsl:call-template name="gentext.element.name"/>
87 <xsl:value-of select="normalize-space($string)"/>
91 <xsl:variable name="latex.mapping.node"
92 select="($latex.mapping.xml/latexbindings/latexmapping[@role=$role]/mapping[@key=$keyword])"/>
94 <xsl:when test="$latex.mapping.node/@text!=''">
95 <xsl:call-template name="string-replace">
96 <xsl:with-param name="to"><xsl:value-of select="$id"/></xsl:with-param>
97 <xsl:with-param name="from">%id</xsl:with-param>
98 <xsl:with-param name="string">
99 <xsl:call-template name="string-replace">
100 <xsl:with-param name="to"><xsl:value-of select="$title"/></xsl:with-param>
101 <xsl:with-param name="from">%title</xsl:with-param>
102 <xsl:with-param name="string">
103 <xsl:value-of select="$latex.mapping.node/@text"/>
110 <xsl:for-each select="$latex.mapping.node/line">
111 <xsl:call-template name="string-replace">
112 <xsl:with-param name="to"><xsl:value-of select="$id"/></xsl:with-param>
113 <xsl:with-param name="from">%id</xsl:with-param>
114 <xsl:with-param name="string">
115 <xsl:call-template name="string-replace">
116 <xsl:with-param name="to"><xsl:value-of select="$title"/></xsl:with-param>
117 <xsl:with-param name="from">%title</xsl:with-param>
118 <xsl:with-param name="string" select="."/>
130 <xsl:template name="map.begin">
131 <xsl:param name="object" select="."/>
132 <xsl:param name="keyword" select="local-name($object)"/>
133 <xsl:param name="string">
134 <xsl:call-template name="extract.object.title">
135 <xsl:with-param name="object" select="$object"/>
138 <xsl:call-template name="latex.mapping">
139 <xsl:with-param name="keyword" select="$keyword"/>
140 <xsl:with-param name="role">begin</xsl:with-param>
141 <xsl:with-param name="string" select="$string"/>
145 <xsl:template name="map.end">
146 <xsl:param name="object" select="."/>
147 <xsl:param name="keyword" select="local-name($object)"/>
148 <xsl:param name="role" select="begin"/>
149 <xsl:param name="string">
150 <xsl:call-template name="extract.object.title">
151 <xsl:with-param name="object" select="$object"/>
154 <xsl:call-template name="latex.mapping">
155 <xsl:with-param name="keyword" select="$keyword"/>
156 <xsl:with-param name="string" select="$string"/>
157 <xsl:with-param name="role">end</xsl:with-param>
161 <xsl:template match="title" mode="latex"><xsl:apply-templates/></xsl:template>
163 <xsl:template name="extract.object.title">
164 <xsl:param name="object" select="."/>
166 <xsl:when test="$latex.apply.title.templates='1'">
167 <xsl:apply-templates select="$object/title" mode="latex"/>
170 <xsl:call-template name="normalize-scape">
171 <xsl:with-param name="string" select="$object/title"/>