| 1 | <?xml version="1.0" encoding="ASCII"?>
 | 
|---|
| 2 | <!--This file was created automatically by html2xhtml-->
 | 
|---|
| 3 | <!--from the HTML stylesheets.-->
 | 
|---|
| 4 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:stext="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.TextFactory" xmlns:simg="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.ImageIntrinsics" xmlns:ximg="xalan://com.nwalsh.xalan.ImageIntrinsics" xmlns:xtext="xalan://com.nwalsh.xalan.Text" xmlns:lxslt="http://xml.apache.org/xslt" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink stext xtext lxslt simg ximg" extension-element-prefixes="stext xtext" version="1.0">
 | 
|---|
| 5 | 
 | 
|---|
| 6 | <!-- ********************************************************************
 | 
|---|
| 7 |      $Id$
 | 
|---|
| 8 |      ********************************************************************
 | 
|---|
| 9 | 
 | 
|---|
| 10 |      This file is part of the XSL DocBook Stylesheet distribution.
 | 
|---|
| 11 |      See ../README or http://docbook.sf.net/release/xsl/current/ for
 | 
|---|
| 12 |      copyright and other information.
 | 
|---|
| 13 | 
 | 
|---|
| 14 |      Contributors:
 | 
|---|
| 15 |      Colin Paul Adams, <colin@colina.demon.co.uk>
 | 
|---|
| 16 | 
 | 
|---|
| 17 |      ******************************************************************** -->
 | 
|---|
| 18 | 
 | 
|---|
| 19 | <lxslt:component prefix="xtext" elements="insertfile"/>
 | 
|---|
| 20 | <lxslt:component prefix="ximg" functions="new getWidth getDepth"/>
 | 
|---|
| 21 | 
 | 
|---|
| 22 | <!-- ==================================================================== -->
 | 
|---|
| 23 | <!-- Graphic format tests for the HTML backend -->
 | 
|---|
| 24 | 
 | 
|---|
| 25 | <xsl:template name="is.graphic.format">
 | 
|---|
| 26 |   <xsl:param name="format"/>
 | 
|---|
| 27 |   <xsl:if test="$format = 'SVG'                 or $format = 'PNG'                 or $format = 'JPG'                 or $format = 'JPEG'                 or $format = 'linespecific'                 or $format = 'GIF'                 or $format = 'GIF87a'                 or $format = 'GIF89a'                 or $format = 'BMP'">1</xsl:if>
 | 
|---|
| 28 | </xsl:template>
 | 
|---|
| 29 | 
 | 
|---|
| 30 | <xsl:template name="is.graphic.extension">
 | 
|---|
| 31 |   <xsl:param name="ext"/>
 | 
|---|
| 32 |   <xsl:variable name="lcext" select="translate($ext,                                        'ABCDEFGHIJKLMNOPQRSTUVWXYZ',                                        'abcdefghijklmnopqrstuvwxyz')"/>
 | 
|---|
| 33 |   <xsl:if test="$lcext = 'svg'              or $lcext = 'png'              or $lcext = 'jpeg'              or $lcext = 'jpg'              or $lcext = 'avi'              or $lcext = 'mpg'              or $lcext = 'mpeg'              or $lcext = 'qt'              or $lcext = 'gif'              or $lcext = 'bmp'">1</xsl:if>
 | 
|---|
| 34 | </xsl:template>
 | 
|---|
| 35 | 
 | 
|---|
| 36 | <!-- ==================================================================== -->
 | 
|---|
| 37 | 
 | 
|---|
| 38 | <xsl:template match="screenshot">
 | 
|---|
| 39 |   <div>
 | 
|---|
| 40 |     <xsl:apply-templates select="." mode="class.attribute"/>
 | 
|---|
| 41 |     <xsl:apply-templates/>
 | 
|---|
| 42 |   </div>
 | 
|---|
| 43 | </xsl:template>
 | 
|---|
| 44 | 
 | 
|---|
| 45 | <xsl:template match="screeninfo">
 | 
|---|
| 46 | </xsl:template>
 | 
|---|
| 47 | 
 | 
|---|
| 48 | <!-- ==================================================================== -->
 | 
|---|
| 49 | 
 | 
|---|
| 50 | <xsl:template name="process.image">
 | 
|---|
| 51 |   <!-- When this template is called, the current node should be  -->
 | 
|---|
| 52 |   <!-- a graphic, inlinegraphic, imagedata, or videodata. All    -->
 | 
|---|
| 53 |   <!-- those elements have the same set of attributes, so we can -->
 | 
|---|
| 54 |   <!-- handle them all in one place.                             -->
 | 
|---|
| 55 |   <xsl:param name="tag" select="'img'"/>
 | 
|---|
| 56 |   <xsl:param name="alt"/>
 | 
|---|
| 57 |   <xsl:param name="longdesc"/>
 | 
|---|
| 58 | 
 | 
|---|
| 59 |   <!-- The HTML img element only supports the notion of content-area
 | 
|---|
| 60 |        scaling; it doesn't support the distinction between a
 | 
|---|
| 61 |        content-area and a viewport-area, so we have to make some
 | 
|---|
| 62 |        compromises.
 | 
|---|
| 63 | 
 | 
|---|
| 64 |        1. If only the content-area is specified, everything is fine.
 | 
|---|
| 65 |           (If you ask for a three inch image, that's what you'll get.)
 | 
|---|
| 66 | 
 | 
|---|
| 67 |        2. If only the viewport-area is provided:
 | 
|---|
| 68 |           - If scalefit=1, treat it as both the content-area and
 | 
|---|
| 69 |             the viewport-area. (If you ask for an image in a five inch
 | 
|---|
| 70 |             area, we'll make the image five inches to fill that area.)
 | 
|---|
| 71 |           - If scalefit=0, ignore the viewport-area specification.
 | 
|---|
| 72 | 
 | 
|---|
| 73 |           Note: this is not quite the right semantic and has the additional
 | 
|---|
| 74 |           problem that it can result in anamorphic scaling, which scalefit
 | 
|---|
| 75 |           should never cause.
 | 
|---|
| 76 | 
 | 
|---|
| 77 |        3. If both the content-area and the viewport-area is specified
 | 
|---|
| 78 |           on a graphic element, ignore the viewport-area.
 | 
|---|
| 79 |           (If you ask for a three inch image in a five inch area, we'll assume
 | 
|---|
| 80 |            it's better to give you a three inch image in an unspecified area
 | 
|---|
| 81 |            than a five inch image in a five inch area.
 | 
|---|
| 82 | 
 | 
|---|
| 83 |        Relative units also cause problems. As a general rule, the stylesheets
 | 
|---|
| 84 |        are operating too early and too loosely coupled with the rendering engine
 | 
|---|
| 85 |        to know things like the current font size or the actual dimensions of
 | 
|---|
| 86 |        an image. Therefore:
 | 
|---|
| 87 | 
 | 
|---|
| 88 |        1. We use a fixed size for pixels, $pixels.per.inch
 | 
|---|
| 89 | 
 | 
|---|
| 90 |        2. We use a fixed size for "em"s, $points.per.em
 | 
|---|
| 91 | 
 | 
|---|
| 92 |        Percentages are problematic. In the following discussion, we speak
 | 
|---|
| 93 |        of width and contentwidth, but the same issues apply to depth and
 | 
|---|
| 94 |        contentdepth
 | 
|---|
| 95 | 
 | 
|---|
| 96 |        1. A width of 50% means "half of the available space for the image."
 | 
|---|
| 97 |           That's fine. But note that in HTML, this is a dynamic property and
 | 
|---|
| 98 |           the image size will vary if the browser window is resized.
 | 
|---|
| 99 | 
 | 
|---|
| 100 |        2. A contentwidth of 50% means "half of the actual image width". But
 | 
|---|
| 101 |           the stylesheets have no way to assess the image's actual size. Treating
 | 
|---|
| 102 |           this as a width of 50% is one possibility, but it produces behavior
 | 
|---|
| 103 |           (dynamic scaling) that seems entirely out of character with the
 | 
|---|
| 104 |           meaning.
 | 
|---|
| 105 | 
 | 
|---|
| 106 |           Instead, the stylesheets define a $nominal.image.width
 | 
|---|
| 107 |           and convert percentages to actual values based on that nominal size.
 | 
|---|
| 108 | 
 | 
|---|
| 109 |        Scale can be problematic. Scale applies to the contentwidth, so
 | 
|---|
| 110 |        a scale of 50 when a contentwidth is not specified is analagous to a
 | 
|---|
| 111 |        width of 50%. (If a contentwidth is specified, the scaling factor can
 | 
|---|
| 112 |        be applied to that value and no problem exists.)
 | 
|---|
| 113 | 
 | 
|---|
| 114 |        If scale is specified but contentwidth is not supplied, the
 | 
|---|
| 115 |        nominal.image.width is used to calculate a base size
 | 
|---|
| 116 |        for scaling.
 | 
|---|
| 117 | 
 | 
|---|
| 118 |        Warning: as a consequence of these decisions, unless the aspect ratio
 | 
|---|
| 119 |        of your image happens to be exactly the same as (nominal width / nominal height),
 | 
|---|
| 120 |        specifying contentwidth="50%" and contentdepth="50%" is NOT going to
 | 
|---|
| 121 |        scale the way you expect (or really, the way it should).
 | 
|---|
| 122 | 
 | 
|---|
| 123 |        Don't do that. In fact, a percentage value is not recommended for content
 | 
|---|
| 124 |        size at all. Use scale instead.
 | 
|---|
| 125 | 
 | 
|---|
| 126 |        Finally, align and valign are troublesome. Horizontal alignment is now
 | 
|---|
| 127 |        supported by wrapping the image in a <div align="{@align}"> (in block
 | 
|---|
| 128 |        contexts!). I can't think of anything (practical) to do about vertical
 | 
|---|
| 129 |        alignment.
 | 
|---|
| 130 |   -->
 | 
|---|
| 131 | 
 | 
|---|
| 132 |   <xsl:variable name="width-units">
 | 
|---|
| 133 |     <xsl:choose>
 | 
|---|
| 134 |       <xsl:when test="$ignore.image.scaling != 0"/>
 | 
|---|
| 135 |       <xsl:when test="@width">
 | 
|---|
| 136 |         <xsl:call-template name="length-units">
 | 
|---|
| 137 |           <xsl:with-param name="length" select="@width"/>
 | 
|---|
| 138 |         </xsl:call-template>
 | 
|---|
| 139 |       </xsl:when>
 | 
|---|
| 140 |       <xsl:when test="not(@depth) and $default.image.width != ''">
 | 
|---|
| 141 |         <xsl:call-template name="length-units">
 | 
|---|
| 142 |           <xsl:with-param name="length" select="$default.image.width"/>
 | 
|---|
| 143 |         </xsl:call-template>
 | 
|---|
| 144 |       </xsl:when>
 | 
|---|
| 145 |     </xsl:choose>
 | 
|---|
| 146 |   </xsl:variable>
 | 
|---|
| 147 | 
 | 
|---|
| 148 |   <xsl:variable name="width">
 | 
|---|
| 149 |     <xsl:choose>
 | 
|---|
| 150 |       <xsl:when test="$ignore.image.scaling != 0"/>
 | 
|---|
| 151 |       <xsl:when test="@width">
 | 
|---|
| 152 |         <xsl:choose>
 | 
|---|
| 153 |           <xsl:when test="$width-units = '%'">
 | 
|---|
| 154 |             <xsl:value-of select="@width"/>
 | 
|---|
| 155 |           </xsl:when>
 | 
|---|
| 156 |           <xsl:otherwise>
 | 
|---|
| 157 |             <xsl:call-template name="length-spec">
 | 
|---|
| 158 |               <xsl:with-param name="length" select="@width"/>
 | 
|---|
| 159 |             </xsl:call-template>
 | 
|---|
| 160 |           </xsl:otherwise>
 | 
|---|
| 161 |         </xsl:choose>
 | 
|---|
| 162 |       </xsl:when>
 | 
|---|
| 163 |       <xsl:when test="not(@depth) and $default.image.width != ''">
 | 
|---|
| 164 |         <xsl:value-of select="$default.image.width"/>
 | 
|---|
| 165 |       </xsl:when>
 | 
|---|
| 166 |     </xsl:choose>
 | 
|---|
| 167 |   </xsl:variable>
 | 
|---|
| 168 | 
 | 
|---|
| 169 |   <xsl:variable name="scalefit">
 | 
|---|
| 170 |     <xsl:choose>
 | 
|---|
| 171 |       <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
 | 
|---|
| 172 |       <xsl:when test="@contentwidth or @contentdepth">0</xsl:when>
 | 
|---|
| 173 |       <xsl:when test="@scale">0</xsl:when>
 | 
|---|
| 174 |       <xsl:when test="@scalefit"><xsl:value-of select="@scalefit"/></xsl:when>
 | 
|---|
| 175 |       <xsl:when test="$width != '' or @depth">1</xsl:when>
 | 
|---|
| 176 |       <xsl:otherwise>0</xsl:otherwise>
 | 
|---|
| 177 |     </xsl:choose>
 | 
|---|
| 178 |   </xsl:variable>
 | 
|---|
| 179 | 
 | 
|---|
| 180 |   <xsl:variable name="scale">
 | 
|---|
| 181 |     <xsl:choose>
 | 
|---|
| 182 |       <xsl:when test="$ignore.image.scaling != 0">1.0</xsl:when>
 | 
|---|
| 183 |       <xsl:when test="@contentwidth or @contentdepth">1.0</xsl:when>
 | 
|---|
| 184 |       <xsl:when test="@scale">
 | 
|---|
| 185 |         <xsl:value-of select="@scale div 100.0"/>
 | 
|---|
| 186 |       </xsl:when>
 | 
|---|
| 187 |       <xsl:otherwise>1.0</xsl:otherwise>
 | 
|---|
| 188 |     </xsl:choose>
 | 
|---|
| 189 |   </xsl:variable>
 | 
|---|
| 190 | 
 | 
|---|
| 191 |   <xsl:variable name="filename">
 | 
|---|
| 192 |     <xsl:choose>
 | 
|---|
| 193 |       <xsl:when test="local-name(.) = 'graphic'                       or local-name(.) = 'inlinegraphic'">
 | 
|---|
| 194 |         <!-- handle legacy graphic and inlinegraphic by new template --> 
 | 
|---|
| 195 |         <xsl:call-template name="mediaobject.filename">
 | 
|---|
| 196 |           <xsl:with-param name="object" select="."/>
 | 
|---|
| 197 |         </xsl:call-template>
 | 
|---|
| 198 |       </xsl:when>
 | 
|---|
| 199 |       <xsl:otherwise>
 | 
|---|
| 200 |         <!-- imagedata, videodata, audiodata -->
 | 
|---|
| 201 |         <xsl:call-template name="mediaobject.filename">
 | 
|---|
| 202 |           <xsl:with-param name="object" select=".."/>
 | 
|---|
| 203 |         </xsl:call-template>
 | 
|---|
| 204 |       </xsl:otherwise>
 | 
|---|
| 205 |     </xsl:choose>
 | 
|---|
| 206 |   </xsl:variable>
 | 
|---|
| 207 | 
 | 
|---|
| 208 |   <xsl:variable name="output_filename">
 | 
|---|
| 209 |     <xsl:choose>
 | 
|---|
| 210 |       <xsl:when test="@entityref">
 | 
|---|
| 211 |         <xsl:value-of select="$filename"/>
 | 
|---|
| 212 |       </xsl:when>
 | 
|---|
| 213 |       <!--
 | 
|---|
| 214 |         Moved test for $keep.relative.image.uris to template below:
 | 
|---|
| 215 |             <xsl:template match="@fileref">
 | 
|---|
| 216 |       -->
 | 
|---|
| 217 |       <xsl:otherwise>
 | 
|---|
| 218 |         <xsl:value-of select="$filename"/>
 | 
|---|
| 219 |       </xsl:otherwise>
 | 
|---|
| 220 |     </xsl:choose>
 | 
|---|
| 221 |   </xsl:variable>
 | 
|---|
| 222 | 
 | 
|---|
| 223 |   <xsl:variable name="img.src.path.pi">
 | 
|---|
| 224 |     <xsl:call-template name="pi.dbhtml_img.src.path">
 | 
|---|
| 225 |       <xsl:with-param name="node" select=".."/>
 | 
|---|
| 226 |     </xsl:call-template>
 | 
|---|
| 227 |   </xsl:variable>
 | 
|---|
| 228 | 
 | 
|---|
| 229 |   <xsl:variable name="filename.for.graphicsize">
 | 
|---|
| 230 |     <xsl:choose>
 | 
|---|
| 231 |       <xsl:when test="$img.src.path.pi != ''">
 | 
|---|
| 232 |         <xsl:value-of select="concat($img.src.path.pi, $filename)"/>
 | 
|---|
| 233 |       </xsl:when>
 | 
|---|
| 234 |       <xsl:when test="$img.src.path != '' and                       $graphicsize.use.img.src.path != 0 and                       $tag = 'img' and                       not(starts-with($filename, '/')) and                       not(contains($filename, '://'))">
 | 
|---|
| 235 |         <xsl:value-of select="concat($img.src.path, $filename)"/>
 | 
|---|
| 236 |       </xsl:when>
 | 
|---|
| 237 |       <xsl:otherwise>
 | 
|---|
| 238 |         <xsl:value-of select="$filename"/>
 | 
|---|
| 239 |       </xsl:otherwise>
 | 
|---|
| 240 |     </xsl:choose>
 | 
|---|
| 241 |   </xsl:variable>
 | 
|---|
| 242 | 
 | 
|---|
| 243 |   <xsl:variable name="realintrinsicwidth">
 | 
|---|
| 244 |     <!-- This funny compound test works around a bug in XSLTC -->
 | 
|---|
| 245 |     <xsl:choose>
 | 
|---|
| 246 |       <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0">
 | 
|---|
| 247 |         <xsl:choose>
 | 
|---|
| 248 |           <xsl:when test="function-available('simg:getWidth')">
 | 
|---|
| 249 |             <xsl:value-of select="simg:getWidth(simg:new($filename.for.graphicsize),                                                 $nominal.image.width)"/>
 | 
|---|
| 250 |           </xsl:when>
 | 
|---|
| 251 |           <xsl:when test="function-available('ximg:getWidth')">
 | 
|---|
| 252 |             <xsl:value-of select="ximg:getWidth(ximg:new($filename.for.graphicsize),                                                 $nominal.image.width)"/>
 | 
|---|
| 253 |           </xsl:when>
 | 
|---|
| 254 |           <xsl:otherwise>
 | 
|---|
| 255 |            <xsl:value-of select="0"/>
 | 
|---|
| 256 |           </xsl:otherwise>
 | 
|---|
| 257 |         </xsl:choose>
 | 
|---|
| 258 |       </xsl:when>
 | 
|---|
| 259 |       <xsl:otherwise>
 | 
|---|
| 260 |         <xsl:value-of select="0"/>
 | 
|---|
| 261 |       </xsl:otherwise>
 | 
|---|
| 262 |     </xsl:choose>
 | 
|---|
| 263 |   </xsl:variable>
 | 
|---|
| 264 | 
 | 
|---|
| 265 |   <xsl:variable name="intrinsicwidth">
 | 
|---|
| 266 |     <xsl:choose>
 | 
|---|
| 267 |       <xsl:when test="$realintrinsicwidth = 0">
 | 
|---|
| 268 |        <xsl:value-of select="$nominal.image.width"/>
 | 
|---|
| 269 |       </xsl:when>
 | 
|---|
| 270 |       <xsl:otherwise>
 | 
|---|
| 271 |        <xsl:value-of select="$realintrinsicwidth"/>
 | 
|---|
| 272 |       </xsl:otherwise>
 | 
|---|
| 273 |     </xsl:choose>
 | 
|---|
| 274 |   </xsl:variable>
 | 
|---|
| 275 | 
 | 
|---|
| 276 |   <xsl:variable name="intrinsicdepth">
 | 
|---|
| 277 |     <!-- This funny compound test works around a bug in XSLTC -->
 | 
|---|
| 278 |     <xsl:choose>
 | 
|---|
| 279 |       <xsl:when test="$use.extensions != 0 and $graphicsize.extension != 0">
 | 
|---|
| 280 |         <xsl:choose>
 | 
|---|
| 281 |           <xsl:when test="function-available('simg:getDepth')">
 | 
|---|
| 282 |             <xsl:value-of select="simg:getDepth(simg:new($filename.for.graphicsize),                                                 $nominal.image.depth)"/>
 | 
|---|
| 283 |           </xsl:when>
 | 
|---|
| 284 |           <xsl:when test="function-available('ximg:getDepth')">
 | 
|---|
| 285 |             <xsl:value-of select="ximg:getDepth(ximg:new($filename.for.graphicsize),                                                 $nominal.image.depth)"/>
 | 
|---|
| 286 |           </xsl:when>
 | 
|---|
| 287 |           <xsl:otherwise>
 | 
|---|
| 288 |             <xsl:value-of select="$nominal.image.depth"/>
 | 
|---|
| 289 |           </xsl:otherwise>
 | 
|---|
| 290 |         </xsl:choose>
 | 
|---|
| 291 |       </xsl:when>
 | 
|---|
| 292 |       <xsl:otherwise>
 | 
|---|
| 293 |         <xsl:value-of select="$nominal.image.depth"/>
 | 
|---|
| 294 |       </xsl:otherwise>
 | 
|---|
| 295 |     </xsl:choose>
 | 
|---|
| 296 |   </xsl:variable>
 | 
|---|
| 297 | 
 | 
|---|
| 298 |   <xsl:variable name="contentwidth">
 | 
|---|
| 299 |     <xsl:choose>
 | 
|---|
| 300 |       <xsl:when test="$ignore.image.scaling != 0"/>
 | 
|---|
| 301 |       <xsl:when test="@contentwidth">
 | 
|---|
| 302 |         <xsl:variable name="units">
 | 
|---|
| 303 |           <xsl:call-template name="length-units">
 | 
|---|
| 304 |             <xsl:with-param name="length" select="@contentwidth"/>
 | 
|---|
| 305 |           </xsl:call-template>
 | 
|---|
| 306 |         </xsl:variable>
 | 
|---|
| 307 | 
 | 
|---|
| 308 |         <xsl:choose>
 | 
|---|
| 309 |           <xsl:when test="$units = '%'">
 | 
|---|
| 310 |             <xsl:variable name="cmagnitude">
 | 
|---|
| 311 |               <xsl:call-template name="length-magnitude">
 | 
|---|
| 312 |                 <xsl:with-param name="length" select="@contentwidth"/>
 | 
|---|
| 313 |               </xsl:call-template>
 | 
|---|
| 314 |             </xsl:variable>
 | 
|---|
| 315 |             <xsl:value-of select="$intrinsicwidth * $cmagnitude div 100.0"/>
 | 
|---|
| 316 |             <xsl:text>px</xsl:text>
 | 
|---|
| 317 |           </xsl:when>
 | 
|---|
| 318 |           <xsl:otherwise>
 | 
|---|
| 319 |             <xsl:call-template name="length-spec">
 | 
|---|
| 320 |               <xsl:with-param name="length" select="@contentwidth"/>
 | 
|---|
| 321 |             </xsl:call-template>
 | 
|---|
| 322 |           </xsl:otherwise>
 | 
|---|
| 323 |         </xsl:choose>
 | 
|---|
| 324 |       </xsl:when>
 | 
|---|
| 325 |       <xsl:otherwise>
 | 
|---|
| 326 |         <xsl:value-of select="$intrinsicwidth"/>
 | 
|---|
| 327 |         <xsl:text>px</xsl:text>
 | 
|---|
| 328 |       </xsl:otherwise>
 | 
|---|
| 329 |     </xsl:choose>
 | 
|---|
| 330 |   </xsl:variable>
 | 
|---|
| 331 | 
 | 
|---|
| 332 |   <xsl:variable name="scaled.contentwidth">
 | 
|---|
| 333 |     <xsl:if test="$contentwidth != ''">
 | 
|---|
| 334 |       <xsl:variable name="cwidth.in.points">
 | 
|---|
| 335 |         <xsl:call-template name="length-in-points">
 | 
|---|
| 336 |           <xsl:with-param name="length" select="$contentwidth"/>
 | 
|---|
| 337 |           <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
 | 
|---|
| 338 |           <xsl:with-param name="em.size" select="$points.per.em"/>
 | 
|---|
| 339 |         </xsl:call-template>
 | 
|---|
| 340 |       </xsl:variable>
 | 
|---|
| 341 |       <xsl:value-of select="$cwidth.in.points div 72.0 * $pixels.per.inch * $scale"/>
 | 
|---|
| 342 |     </xsl:if>
 | 
|---|
| 343 |   </xsl:variable>
 | 
|---|
| 344 | 
 | 
|---|
| 345 |   <xsl:variable name="html.width">
 | 
|---|
| 346 |     <xsl:choose>
 | 
|---|
| 347 |       <xsl:when test="$ignore.image.scaling != 0"/>
 | 
|---|
| 348 |       <xsl:when test="$width-units = '%'">
 | 
|---|
| 349 |         <xsl:value-of select="$width"/>
 | 
|---|
| 350 |       </xsl:when>
 | 
|---|
| 351 |       <xsl:when test="$width != ''">
 | 
|---|
| 352 |         <xsl:variable name="width.in.points">
 | 
|---|
| 353 |           <xsl:call-template name="length-in-points">
 | 
|---|
| 354 |             <xsl:with-param name="length" select="$width"/>
 | 
|---|
| 355 |             <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
 | 
|---|
| 356 |             <xsl:with-param name="em.size" select="$points.per.em"/>
 | 
|---|
| 357 |           </xsl:call-template>
 | 
|---|
| 358 |         </xsl:variable>
 | 
|---|
| 359 |         <xsl:value-of select="round($width.in.points div 72.0 * $pixels.per.inch)"/>
 | 
|---|
| 360 |       </xsl:when>
 | 
|---|
| 361 |       <xsl:otherwise/>
 | 
|---|
| 362 |     </xsl:choose>
 | 
|---|
| 363 |   </xsl:variable>
 | 
|---|
| 364 | 
 | 
|---|
| 365 |   <xsl:variable name="contentdepth">
 | 
|---|
| 366 |     <xsl:choose>
 | 
|---|
| 367 |       <xsl:when test="$ignore.image.scaling != 0"/>
 | 
|---|
| 368 |       <xsl:when test="@contentdepth">
 | 
|---|
| 369 |         <xsl:variable name="units">
 | 
|---|
| 370 |           <xsl:call-template name="length-units">
 | 
|---|
| 371 |             <xsl:with-param name="length" select="@contentdepth"/>
 | 
|---|
| 372 |           </xsl:call-template>
 | 
|---|
| 373 |         </xsl:variable>
 | 
|---|
| 374 | 
 | 
|---|
| 375 |         <xsl:choose>
 | 
|---|
| 376 |           <xsl:when test="$units = '%'">
 | 
|---|
| 377 |             <xsl:variable name="cmagnitude">
 | 
|---|
| 378 |               <xsl:call-template name="length-magnitude">
 | 
|---|
| 379 |                 <xsl:with-param name="length" select="@contentdepth"/>
 | 
|---|
| 380 |               </xsl:call-template>
 | 
|---|
| 381 |             </xsl:variable>
 | 
|---|
| 382 |             <xsl:value-of select="$intrinsicdepth * $cmagnitude div 100.0"/>
 | 
|---|
| 383 |             <xsl:text>px</xsl:text>
 | 
|---|
| 384 |           </xsl:when>
 | 
|---|
| 385 |           <xsl:otherwise>
 | 
|---|
| 386 |             <xsl:call-template name="length-spec">
 | 
|---|
| 387 |               <xsl:with-param name="length" select="@contentdepth"/>
 | 
|---|
| 388 |             </xsl:call-template>
 | 
|---|
| 389 |           </xsl:otherwise>
 | 
|---|
| 390 |         </xsl:choose>
 | 
|---|
| 391 |       </xsl:when>
 | 
|---|
| 392 |       <xsl:otherwise>
 | 
|---|
| 393 |         <xsl:value-of select="$intrinsicdepth"/>
 | 
|---|
| 394 |         <xsl:text>px</xsl:text>
 | 
|---|
| 395 |       </xsl:otherwise>
 | 
|---|
| 396 |     </xsl:choose>
 | 
|---|
| 397 |   </xsl:variable>
 | 
|---|
| 398 | 
 | 
|---|
| 399 |   <xsl:variable name="scaled.contentdepth">
 | 
|---|
| 400 |     <xsl:if test="$contentdepth != ''">
 | 
|---|
| 401 |       <xsl:variable name="cdepth.in.points">
 | 
|---|
| 402 |         <xsl:call-template name="length-in-points">
 | 
|---|
| 403 |           <xsl:with-param name="length" select="$contentdepth"/>
 | 
|---|
| 404 |           <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
 | 
|---|
| 405 |           <xsl:with-param name="em.size" select="$points.per.em"/>
 | 
|---|
| 406 |         </xsl:call-template>
 | 
|---|
| 407 |       </xsl:variable>
 | 
|---|
| 408 |       <xsl:value-of select="$cdepth.in.points div 72.0 * $pixels.per.inch * $scale"/>
 | 
|---|
| 409 |     </xsl:if>
 | 
|---|
| 410 |   </xsl:variable>
 | 
|---|
| 411 | 
 | 
|---|
| 412 |   <xsl:variable name="depth-units">
 | 
|---|
| 413 |     <xsl:if test="@depth">
 | 
|---|
| 414 |       <xsl:call-template name="length-units">
 | 
|---|
| 415 |         <xsl:with-param name="length" select="@depth"/>
 | 
|---|
| 416 |       </xsl:call-template>
 | 
|---|
| 417 |     </xsl:if>
 | 
|---|
| 418 |   </xsl:variable>
 | 
|---|
| 419 | 
 | 
|---|
| 420 |   <xsl:variable name="depth">
 | 
|---|
| 421 |     <xsl:if test="@depth">
 | 
|---|
| 422 |       <xsl:choose>
 | 
|---|
| 423 |         <xsl:when test="$depth-units = '%'">
 | 
|---|
| 424 |           <xsl:value-of select="@depth"/>
 | 
|---|
| 425 |         </xsl:when>
 | 
|---|
| 426 |         <xsl:otherwise>
 | 
|---|
| 427 |           <xsl:call-template name="length-spec">
 | 
|---|
| 428 |             <xsl:with-param name="length" select="@depth"/>
 | 
|---|
| 429 |           </xsl:call-template>
 | 
|---|
| 430 |         </xsl:otherwise>
 | 
|---|
| 431 |       </xsl:choose>
 | 
|---|
| 432 |     </xsl:if>
 | 
|---|
| 433 |   </xsl:variable>
 | 
|---|
| 434 | 
 | 
|---|
| 435 |   <xsl:variable name="html.depth">
 | 
|---|
| 436 |     <xsl:choose>
 | 
|---|
| 437 |       <xsl:when test="$ignore.image.scaling != 0"/>
 | 
|---|
| 438 |       <xsl:when test="$depth-units = '%'">
 | 
|---|
| 439 |         <xsl:value-of select="$depth"/>
 | 
|---|
| 440 |       </xsl:when>
 | 
|---|
| 441 |       <xsl:when test="@depth and @depth != ''">
 | 
|---|
| 442 |         <xsl:variable name="depth.in.points">
 | 
|---|
| 443 |           <xsl:call-template name="length-in-points">
 | 
|---|
| 444 |             <xsl:with-param name="length" select="$depth"/>
 | 
|---|
| 445 |             <xsl:with-param name="pixels.per.inch" select="$pixels.per.inch"/>
 | 
|---|
| 446 |             <xsl:with-param name="em.size" select="$points.per.em"/>
 | 
|---|
| 447 |           </xsl:call-template>
 | 
|---|
| 448 |         </xsl:variable>
 | 
|---|
| 449 |         <xsl:value-of select="round($depth.in.points div 72.0 * $pixels.per.inch)"/>
 | 
|---|
| 450 |       </xsl:when>
 | 
|---|
| 451 |       <xsl:otherwise/>
 | 
|---|
| 452 |     </xsl:choose>
 | 
|---|
| 453 |   </xsl:variable>
 | 
|---|
| 454 | 
 | 
|---|
| 455 |   <xsl:variable name="viewport">
 | 
|---|
| 456 |     <xsl:choose>
 | 
|---|
| 457 |       <xsl:when test="$ignore.image.scaling != 0">0</xsl:when>
 | 
|---|
| 458 |       <xsl:when test="local-name(.) = 'inlinegraphic'                       or ancestor::inlinemediaobject                       or ancestor::inlineequation">0</xsl:when>
 | 
|---|
| 459 |       <xsl:otherwise>
 | 
|---|
| 460 |         <xsl:value-of select="$make.graphic.viewport"/>
 | 
|---|
| 461 |       </xsl:otherwise>
 | 
|---|
| 462 |     </xsl:choose>
 | 
|---|
| 463 |   </xsl:variable>
 | 
|---|
| 464 | 
 | 
|---|
| 465 | <!--
 | 
|---|
| 466 |   <xsl:message>=====================================
 | 
|---|
| 467 | scale: <xsl:value-of select="$scale"/>, <xsl:value-of select="$scalefit"/>
 | 
|---|
| 468 | @contentwidth <xsl:value-of select="@contentwidth"/>
 | 
|---|
| 469 | $contentwidth <xsl:value-of select="$contentwidth"/>
 | 
|---|
| 470 | scaled.contentwidth: <xsl:value-of select="$scaled.contentwidth"/>
 | 
|---|
| 471 | @width: <xsl:value-of select="@width"/>
 | 
|---|
| 472 | width: <xsl:value-of select="$width"/>
 | 
|---|
| 473 | html.width: <xsl:value-of select="$html.width"/>
 | 
|---|
| 474 | @contentdepth <xsl:value-of select="@contentdepth"/>
 | 
|---|
| 475 | $contentdepth <xsl:value-of select="$contentdepth"/>
 | 
|---|
| 476 | scaled.contentdepth: <xsl:value-of select="$scaled.contentdepth"/>
 | 
|---|
| 477 | @depth: <xsl:value-of select="@depth"/>
 | 
|---|
| 478 | depth: <xsl:value-of select="$depth"/>
 | 
|---|
| 479 | html.depth: <xsl:value-of select="$html.depth"/>
 | 
|---|
| 480 | align: <xsl:value-of select="@align"/>
 | 
|---|
| 481 | valign: <xsl:value-of select="@valign"/></xsl:message>
 | 
|---|
| 482 | -->
 | 
|---|
| 483 | 
 | 
|---|
| 484 |   <xsl:variable name="scaled" select="@width|@depth|@contentwidth|@contentdepth                         |@scale|@scalefit"/>
 | 
|---|
| 485 | 
 | 
|---|
| 486 |   <xsl:variable name="img">
 | 
|---|
| 487 |     <xsl:choose>
 | 
|---|
| 488 |       <xsl:when test="@format = 'SVG'">
 | 
|---|
| 489 |         <object data="{$output_filename}" type="image/svg+xml">
 | 
|---|
| 490 |           <xsl:call-template name="process.image.attributes">
 | 
|---|
| 491 |             <!--xsl:with-param name="alt" select="$alt"/ there's no alt here-->
 | 
|---|
| 492 |             <xsl:with-param name="html.depth" select="$html.depth"/>
 | 
|---|
| 493 |             <xsl:with-param name="html.width" select="$html.width"/>
 | 
|---|
| 494 |             <xsl:with-param name="longdesc" select="$longdesc"/>
 | 
|---|
| 495 |             <xsl:with-param name="scale" select="$scale"/>
 | 
|---|
| 496 |             <xsl:with-param name="scalefit" select="$scalefit"/>
 | 
|---|
| 497 |             <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
 | 
|---|
| 498 |             <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
 | 
|---|
| 499 |             <xsl:with-param name="viewport" select="$viewport"/>
 | 
|---|
| 500 |           </xsl:call-template>
 | 
|---|
| 501 |           <xsl:if test="@align">
 | 
|---|
| 502 |             <xsl:attribute name="align">
 | 
|---|
| 503 |                 <xsl:choose>
 | 
|---|
| 504 |                   <xsl:when test="@align = 'center'">middle</xsl:when>
 | 
|---|
| 505 |                   <xsl:otherwise>
 | 
|---|
| 506 |                     <xsl:value-of select="@align"/>
 | 
|---|
| 507 |                   </xsl:otherwise>
 | 
|---|
| 508 |                 </xsl:choose>
 | 
|---|
| 509 |             </xsl:attribute>
 | 
|---|
| 510 |           </xsl:if>
 | 
|---|
| 511 |           <xsl:if test="$use.embed.for.svg != 0">
 | 
|---|
| 512 |             <embed src="{$output_filename}" type="image/svg+xml">
 | 
|---|
| 513 |               <xsl:call-template name="process.image.attributes">
 | 
|---|
| 514 |                 <!--xsl:with-param name="alt" select="$alt"/ there's no alt here -->
 | 
|---|
| 515 |                 <xsl:with-param name="html.depth" select="$html.depth"/>
 | 
|---|
| 516 |                 <xsl:with-param name="html.width" select="$html.width"/>
 | 
|---|
| 517 |                 <xsl:with-param name="longdesc" select="$longdesc"/>
 | 
|---|
| 518 |                 <xsl:with-param name="scale" select="$scale"/>
 | 
|---|
| 519 |                 <xsl:with-param name="scalefit" select="$scalefit"/>
 | 
|---|
| 520 |                 <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
 | 
|---|
| 521 |                 <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
 | 
|---|
| 522 |                 <xsl:with-param name="viewport" select="$viewport"/>
 | 
|---|
| 523 |               </xsl:call-template>
 | 
|---|
| 524 |             </embed>
 | 
|---|
| 525 |           </xsl:if>
 | 
|---|
| 526 |         </object>
 | 
|---|
| 527 |       </xsl:when>
 | 
|---|
| 528 |       <xsl:otherwise>
 | 
|---|
| 529 |         <xsl:element name="{$tag}" namespace="http://www.w3.org/1999/xhtml">
 | 
|---|
| 530 |          <xsl:if test="$tag = 'img' and ../../self::imageobjectco">
 | 
|---|
| 531 |            <xsl:variable name="mapname">
 | 
|---|
| 532 |              <xsl:call-template name="object.id">
 | 
|---|
| 533 |                <xsl:with-param name="object" select="../../areaspec"/>
 | 
|---|
| 534 |              </xsl:call-template>
 | 
|---|
| 535 |            </xsl:variable>
 | 
|---|
| 536 |            <xsl:choose>
 | 
|---|
| 537 |              <xsl:when test="$scaled">
 | 
|---|
| 538 |               <!-- It might be possible to handle some scaling; needs -->
 | 
|---|
| 539 |               <!-- more investigation -->
 | 
|---|
| 540 |               <xsl:message>
 | 
|---|
| 541 |                 <xsl:text>Warning: imagemaps not supported </xsl:text>
 | 
|---|
| 542 |                 <xsl:text>on scaled images</xsl:text>
 | 
|---|
| 543 |               </xsl:message>
 | 
|---|
| 544 |              </xsl:when>
 | 
|---|
| 545 |              <xsl:otherwise>
 | 
|---|
| 546 |               <xsl:attribute name="border">0</xsl:attribute>
 | 
|---|
| 547 |               <xsl:attribute name="usemap">
 | 
|---|
| 548 |                 <xsl:value-of select="concat('#', $mapname)"/>
 | 
|---|
| 549 |               </xsl:attribute>
 | 
|---|
| 550 |              </xsl:otherwise>
 | 
|---|
| 551 |            </xsl:choose>
 | 
|---|
| 552 |          </xsl:if>
 | 
|---|
| 553 | 
 | 
|---|
| 554 |           <xsl:attribute name="src">
 | 
|---|
| 555 |            <xsl:choose>
 | 
|---|
| 556 |              <xsl:when test="$img.src.path != '' and                            $tag = 'img' and                              not(starts-with($output_filename, '/')) and                            not(contains($output_filename, '://'))">
 | 
|---|
| 557 |                <xsl:value-of select="$img.src.path"/>
 | 
|---|
| 558 |              </xsl:when>
 | 
|---|
| 559 |            </xsl:choose>
 | 
|---|
| 560 |             <xsl:value-of select="$output_filename"/>
 | 
|---|
| 561 |           </xsl:attribute>
 | 
|---|
| 562 | 
 | 
|---|
| 563 |           <xsl:if test="@align">
 | 
|---|
| 564 |             <xsl:attribute name="align">
 | 
|---|
| 565 |               <xsl:choose>
 | 
|---|
| 566 |                 <xsl:when test="@align = 'center'">middle</xsl:when>
 | 
|---|
| 567 |                 <xsl:otherwise>
 | 
|---|
| 568 |                   <xsl:value-of select="@align"/>
 | 
|---|
| 569 |                 </xsl:otherwise>
 | 
|---|
| 570 |               </xsl:choose>
 | 
|---|
| 571 |             </xsl:attribute>
 | 
|---|
| 572 |           </xsl:if>
 | 
|---|
| 573 | 
 | 
|---|
| 574 |           <xsl:call-template name="process.image.attributes">
 | 
|---|
| 575 |             <xsl:with-param name="alt">
 | 
|---|
| 576 |               <xsl:choose>
 | 
|---|
| 577 |                 <xsl:when test="$alt != ''">
 | 
|---|
| 578 |                   <xsl:copy-of select="$alt"/>
 | 
|---|
| 579 |                 </xsl:when>
 | 
|---|
| 580 |                 <xsl:when test="ancestor::figure">
 | 
|---|
| 581 |                   <xsl:value-of select="normalize-space(ancestor::figure/title)"/>
 | 
|---|
| 582 |                 </xsl:when>
 | 
|---|
| 583 |               </xsl:choose>
 | 
|---|
| 584 |             </xsl:with-param>
 | 
|---|
| 585 |             <xsl:with-param name="html.depth" select="$html.depth"/>
 | 
|---|
| 586 |             <xsl:with-param name="html.width" select="$html.width"/>
 | 
|---|
| 587 |             <xsl:with-param name="longdesc" select="$longdesc"/>
 | 
|---|
| 588 |             <xsl:with-param name="scale" select="$scale"/>
 | 
|---|
| 589 |             <xsl:with-param name="scalefit" select="$scalefit"/>
 | 
|---|
| 590 |             <xsl:with-param name="scaled.contentdepth" select="$scaled.contentdepth"/>
 | 
|---|
| 591 |             <xsl:with-param name="scaled.contentwidth" select="$scaled.contentwidth"/>
 | 
|---|
| 592 |             <xsl:with-param name="viewport" select="$viewport"/>
 | 
|---|
| 593 |           </xsl:call-template>
 | 
|---|
| 594 |         </xsl:element>
 | 
|---|
| 595 |       </xsl:otherwise>
 | 
|---|
| 596 |     </xsl:choose>
 | 
|---|
| 597 |   </xsl:variable>
 | 
|---|
| 598 | 
 | 
|---|
| 599 |   <xsl:variable name="bgcolor">
 | 
|---|
| 600 |     <xsl:call-template name="pi.dbhtml_background-color">
 | 
|---|
| 601 |       <xsl:with-param name="node" select=".."/>
 | 
|---|
| 602 |     </xsl:call-template>
 | 
|---|
| 603 |   </xsl:variable>
 | 
|---|
| 604 | 
 | 
|---|
| 605 |   <xsl:variable name="use.viewport" select="$viewport != 0                         and ($html.width != ''                              or ($html.depth != '' and $depth-units != '%')                              or $bgcolor != ''                              or @valign)"/>
 | 
|---|
| 606 | 
 | 
|---|
| 607 |   <xsl:choose>
 | 
|---|
| 608 |     <xsl:when test="$use.viewport">
 | 
|---|
| 609 |       <table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0">
 | 
|---|
| 610 |         <xsl:if test="$html.width != ''">
 | 
|---|
| 611 |           <xsl:attribute name="width">
 | 
|---|
| 612 |             <xsl:value-of select="$html.width"/>
 | 
|---|
| 613 |           </xsl:attribute>
 | 
|---|
| 614 |         </xsl:if>
 | 
|---|
| 615 |         <tr>
 | 
|---|
| 616 |           <xsl:if test="$html.depth != '' and $depth-units != '%'">
 | 
|---|
| 617 |             <!-- don't do this for percentages because browsers get confused -->
 | 
|---|
| 618 |             <xsl:choose>
 | 
|---|
| 619 |               <xsl:when test="$css.decoration != 0">
 | 
|---|
| 620 |                 <xsl:attribute name="style">
 | 
|---|
| 621 |                   <xsl:text>height: </xsl:text>
 | 
|---|
| 622 |                   <xsl:value-of select="$html.depth"/>
 | 
|---|
| 623 |                   <xsl:text>px</xsl:text>
 | 
|---|
| 624 |                 </xsl:attribute>
 | 
|---|
| 625 |               </xsl:when>
 | 
|---|
| 626 |               <xsl:otherwise>
 | 
|---|
| 627 |                 <xsl:attribute name="height">
 | 
|---|
| 628 |                   <xsl:value-of select="$html.depth"/>
 | 
|---|
| 629 |                 </xsl:attribute>
 | 
|---|
| 630 |               </xsl:otherwise>
 | 
|---|
| 631 |             </xsl:choose>
 | 
|---|
| 632 |           </xsl:if>
 | 
|---|
| 633 |           <td>
 | 
|---|
| 634 |             <xsl:if test="$bgcolor != ''">
 | 
|---|
| 635 |               <xsl:choose>
 | 
|---|
| 636 |                 <xsl:when test="$css.decoration != 0">
 | 
|---|
| 637 |                   <xsl:attribute name="style">
 | 
|---|
| 638 |                     <xsl:text>background-color: </xsl:text>
 | 
|---|
| 639 |                     <xsl:value-of select="$bgcolor"/>
 | 
|---|
| 640 |                   </xsl:attribute>
 | 
|---|
| 641 |                 </xsl:when>
 | 
|---|
| 642 |                 <xsl:otherwise>
 | 
|---|
| 643 |                   <xsl:attribute name="bgcolor">
 | 
|---|
| 644 |                     <xsl:value-of select="$bgcolor"/>
 | 
|---|
| 645 |                   </xsl:attribute>
 | 
|---|
| 646 |                 </xsl:otherwise>
 | 
|---|
| 647 |               </xsl:choose>
 | 
|---|
| 648 |             </xsl:if>
 | 
|---|
| 649 |             <xsl:if test="@align">
 | 
|---|
| 650 |               <xsl:attribute name="align">
 | 
|---|
| 651 |                 <xsl:value-of select="@align"/>
 | 
|---|
| 652 |               </xsl:attribute>
 | 
|---|
| 653 |             </xsl:if>
 | 
|---|
| 654 |             <xsl:if test="@valign">
 | 
|---|
| 655 |               <xsl:attribute name="valign">
 | 
|---|
| 656 |                 <xsl:value-of select="@valign"/>
 | 
|---|
| 657 |               </xsl:attribute>
 | 
|---|
| 658 |             </xsl:if>
 | 
|---|
| 659 |             <xsl:copy-of select="$img"/>
 | 
|---|
| 660 |           </td>
 | 
|---|
| 661 |         </tr>
 | 
|---|
| 662 |       </table>
 | 
|---|
| 663 |     </xsl:when>
 | 
|---|
| 664 |     <xsl:otherwise>
 | 
|---|
| 665 |       <xsl:copy-of select="$img"/>
 | 
|---|
| 666 |     </xsl:otherwise>
 | 
|---|
| 667 |   </xsl:choose>
 | 
|---|
| 668 | 
 | 
|---|
| 669 |   <xsl:if test="$tag = 'img' and ../../self::imageobjectco and not($scaled)">
 | 
|---|
| 670 |     <xsl:variable name="mapname">
 | 
|---|
| 671 |       <xsl:call-template name="object.id">
 | 
|---|
| 672 |         <xsl:with-param name="object" select="../../areaspec"/>
 | 
|---|
| 673 |       </xsl:call-template>
 | 
|---|
| 674 |     </xsl:variable>
 | 
|---|
| 675 | 
 | 
|---|
| 676 |     <map name="{$mapname}">
 | 
|---|
| 677 |       <xsl:for-each select="../../areaspec//area">
 | 
|---|
| 678 |         <xsl:variable name="units">
 | 
|---|
| 679 |           <xsl:choose>
 | 
|---|
| 680 |             <xsl:when test="@units = 'other' and @otherunits">
 | 
|---|
| 681 |               <xsl:value-of select="@otherunits"/>
 | 
|---|
| 682 |             </xsl:when>
 | 
|---|
| 683 |             <xsl:when test="@units">
 | 
|---|
| 684 |               <xsl:value-of select="@units"/>
 | 
|---|
| 685 |             </xsl:when>
 | 
|---|
| 686 |             <!-- areaspec|areaset/area -->
 | 
|---|
| 687 |             <xsl:when test="../@units = 'other' and ../@otherunits">
 | 
|---|
| 688 |               <xsl:value-of select="../@otherunits"/>
 | 
|---|
| 689 |             </xsl:when>
 | 
|---|
| 690 |             <xsl:when test="../@units">
 | 
|---|
| 691 |               <xsl:value-of select="../@units"/>
 | 
|---|
| 692 |             </xsl:when>
 | 
|---|
| 693 |             <!-- areaspec/areaset/area -->
 | 
|---|
| 694 |             <xsl:when test="../../@units = 'other' and ../../@otherunits">
 | 
|---|
| 695 |               <xsl:value-of select="../@otherunits"/>
 | 
|---|
| 696 |             </xsl:when>
 | 
|---|
| 697 |             <xsl:when test="../../@units">
 | 
|---|
| 698 |               <xsl:value-of select="../../@units"/>
 | 
|---|
| 699 |             </xsl:when>
 | 
|---|
| 700 |             <xsl:otherwise>calspair</xsl:otherwise>
 | 
|---|
| 701 |           </xsl:choose>
 | 
|---|
| 702 |         </xsl:variable>
 | 
|---|
| 703 |  
 | 
|---|
| 704 |         <xsl:choose>
 | 
|---|
| 705 |           <xsl:when test="$units = 'calspair' or                           $units = 'imagemap'">
 | 
|---|
| 706 |             <xsl:variable name="coords" select="normalize-space(@coords)"/>
 | 
|---|
| 707 | 
 | 
|---|
| 708 |             <area shape="rect">
 | 
|---|
| 709 |               <xsl:variable name="linkends">
 | 
|---|
| 710 |                 <xsl:choose>
 | 
|---|
| 711 |                   <xsl:when test="@linkends">
 | 
|---|
| 712 |                     <xsl:value-of select="normalize-space(@linkends)"/>
 | 
|---|
| 713 |                   </xsl:when>
 | 
|---|
| 714 |                   <xsl:otherwise>
 | 
|---|
| 715 |                     <xsl:value-of select="normalize-space(../@linkends)"/>
 | 
|---|
| 716 |                   </xsl:otherwise>
 | 
|---|
| 717 |                 </xsl:choose>
 | 
|---|
| 718 |               </xsl:variable>
 | 
|---|
| 719 |  
 | 
|---|
| 720 |               <xsl:variable name="href">
 | 
|---|
| 721 |                 <xsl:choose>
 | 
|---|
| 722 |                   <xsl:when test="@xlink:href">
 | 
|---|
| 723 |                     <xsl:value-of select="@xlink:href"/>
 | 
|---|
| 724 |                   </xsl:when>
 | 
|---|
| 725 |                   <xsl:otherwise>
 | 
|---|
| 726 |                     <xsl:value-of select="../@xlink:href"/>
 | 
|---|
| 727 |                   </xsl:otherwise>
 | 
|---|
| 728 |                 </xsl:choose>
 | 
|---|
| 729 |               </xsl:variable>
 | 
|---|
| 730 |  
 | 
|---|
| 731 |               <xsl:choose>
 | 
|---|
| 732 |                 <xsl:when test="$linkends != ''">
 | 
|---|
| 733 |                   <xsl:variable name="linkend">
 | 
|---|
| 734 |                     <xsl:choose>
 | 
|---|
| 735 |                       <xsl:when test="contains($linkends, ' ')">
 | 
|---|
| 736 |                         <xsl:value-of select="substring-before($linkends, ' ')"/>
 | 
|---|
| 737 |                       </xsl:when>
 | 
|---|
| 738 |                       <xsl:otherwise>
 | 
|---|
| 739 |                         <xsl:value-of select="$linkends"/>
 | 
|---|
| 740 |                       </xsl:otherwise>
 | 
|---|
| 741 |                     </xsl:choose>
 | 
|---|
| 742 |                   </xsl:variable>
 | 
|---|
| 743 |                   
 | 
|---|
| 744 |                   <xsl:variable name="target" select="key('id', $linkend)[1]"/>
 | 
|---|
| 745 |                  
 | 
|---|
| 746 |                   <xsl:if test="$target">
 | 
|---|
| 747 |                     <xsl:attribute name="href">
 | 
|---|
| 748 |                       <xsl:call-template name="href.target">
 | 
|---|
| 749 |                         <xsl:with-param name="object" select="$target"/>
 | 
|---|
| 750 |                       </xsl:call-template>
 | 
|---|
| 751 |                     </xsl:attribute>
 | 
|---|
| 752 |                   </xsl:if>
 | 
|---|
| 753 |                 </xsl:when>
 | 
|---|
| 754 |                 <xsl:when test="$href != ''">
 | 
|---|
| 755 |                   <xsl:attribute name="href">
 | 
|---|
| 756 |                     <xsl:value-of select="$href"/>
 | 
|---|
| 757 |                   </xsl:attribute>
 | 
|---|
| 758 |                 </xsl:when>
 | 
|---|
| 759 |               </xsl:choose>
 | 
|---|
| 760 |  
 | 
|---|
| 761 |               <xsl:if test="alt">
 | 
|---|
| 762 |                 <xsl:attribute name="alt">
 | 
|---|
| 763 |                   <xsl:value-of select="alt[1]"/>
 | 
|---|
| 764 |                 </xsl:attribute>
 | 
|---|
| 765 |               </xsl:if>
 | 
|---|
| 766 |  
 | 
|---|
| 767 |               <xsl:attribute name="coords">
 | 
|---|
| 768 |                 <xsl:choose>
 | 
|---|
| 769 |                   <xsl:when test="$units = 'calspair'">
 | 
|---|
| 770 | 
 | 
|---|
| 771 |                     <xsl:variable name="p1" select="substring-before($coords, ' ')"/>
 | 
|---|
| 772 |                     <xsl:variable name="p2" select="substring-after($coords, ' ')"/>
 | 
|---|
| 773 |          
 | 
|---|
| 774 |                     <xsl:variable name="x1" select="substring-before($p1,',')"/>
 | 
|---|
| 775 |                     <xsl:variable name="y1" select="substring-after($p1,',')"/>
 | 
|---|
| 776 |                     <xsl:variable name="x2" select="substring-before($p2,',')"/>
 | 
|---|
| 777 |                     <xsl:variable name="y2" select="substring-after($p2,',')"/>
 | 
|---|
| 778 |          
 | 
|---|
| 779 |                     <xsl:variable name="x1p" select="$x1 div 100.0"/>
 | 
|---|
| 780 |                     <xsl:variable name="y1p" select="$y1 div 100.0"/>
 | 
|---|
| 781 |                     <xsl:variable name="x2p" select="$x2 div 100.0"/>
 | 
|---|
| 782 |                     <xsl:variable name="y2p" select="$y2 div 100.0"/>
 | 
|---|
| 783 |          
 | 
|---|
| 784 |          <!--
 | 
|---|
| 785 |                     <xsl:message>
 | 
|---|
| 786 |                       <xsl:text>units: </xsl:text>
 | 
|---|
| 787 |                       <xsl:value-of select="$units"/>
 | 
|---|
| 788 |                       <xsl:text> </xsl:text>
 | 
|---|
| 789 |                       <xsl:value-of select="$x1p"/><xsl:text>, </xsl:text>
 | 
|---|
| 790 |                       <xsl:value-of select="$y1p"/><xsl:text>, </xsl:text>
 | 
|---|
| 791 |                       <xsl:value-of select="$x2p"/><xsl:text>, </xsl:text>
 | 
|---|
| 792 |                       <xsl:value-of select="$y2p"/><xsl:text>, </xsl:text>
 | 
|---|
| 793 |                     </xsl:message>
 | 
|---|
| 794 |          
 | 
|---|
| 795 |                     <xsl:message>
 | 
|---|
| 796 |                       <xsl:text>      </xsl:text>
 | 
|---|
| 797 |                       <xsl:value-of select="$intrinsicwidth"/>
 | 
|---|
| 798 |                       <xsl:text>, </xsl:text>
 | 
|---|
| 799 |                       <xsl:value-of select="$intrinsicdepth"/>
 | 
|---|
| 800 |                     </xsl:message>
 | 
|---|
| 801 |          
 | 
|---|
| 802 |                     <xsl:message>
 | 
|---|
| 803 |                       <xsl:text>      </xsl:text>
 | 
|---|
| 804 |                       <xsl:value-of select="$units"/>
 | 
|---|
| 805 |                       <xsl:text> </xsl:text>
 | 
|---|
| 806 |                       <xsl:value-of 
 | 
|---|
| 807 |                             select="round($x1p * $intrinsicwidth div 100.0)"/>
 | 
|---|
| 808 |                       <xsl:text>,</xsl:text>
 | 
|---|
| 809 |                       <xsl:value-of select="round($intrinsicdepth
 | 
|---|
| 810 |                                        - ($y2p * $intrinsicdepth div 100.0))"/>
 | 
|---|
| 811 |                       <xsl:text>,</xsl:text>
 | 
|---|
| 812 |                       <xsl:value-of select="round($x2p * 
 | 
|---|
| 813 |                                             $intrinsicwidth div 100.0)"/>
 | 
|---|
| 814 |                       <xsl:text>,</xsl:text>
 | 
|---|
| 815 |                       <xsl:value-of select="round($intrinsicdepth
 | 
|---|
| 816 |                                        - ($y1p * $intrinsicdepth div 100.0))"/>
 | 
|---|
| 817 |                     </xsl:message>
 | 
|---|
| 818 |          -->
 | 
|---|
| 819 |                     <xsl:value-of select="round($x1p * $intrinsicwidth div 100.0)"/>
 | 
|---|
| 820 |                     <xsl:text>,</xsl:text>
 | 
|---|
| 821 |                     <xsl:value-of select="round($intrinsicdepth                                         - ($y2p * $intrinsicdepth div 100.0))"/>
 | 
|---|
| 822 |                     <xsl:text>,</xsl:text>
 | 
|---|
| 823 |                     <xsl:value-of select="round($x2p * $intrinsicwidth div 100.0)"/>
 | 
|---|
| 824 |                     <xsl:text>,</xsl:text>
 | 
|---|
| 825 |                     <xsl:value-of select="round($intrinsicdepth                                       - ($y1p * $intrinsicdepth div 100.0))"/>
 | 
|---|
| 826 |                   </xsl:when>
 | 
|---|
| 827 |                   <xsl:otherwise>
 | 
|---|
| 828 |                     <xsl:copy-of select="$coords"/>
 | 
|---|
| 829 |                   </xsl:otherwise>
 | 
|---|
| 830 |                 </xsl:choose>
 | 
|---|
| 831 |               </xsl:attribute>
 | 
|---|
| 832 |             </area>
 | 
|---|
| 833 |           </xsl:when>
 | 
|---|
| 834 |           <xsl:otherwise>
 | 
|---|
| 835 |             <xsl:message>
 | 
|---|
| 836 |               <xsl:text>Warning: only calspair or </xsl:text>
 | 
|---|
| 837 |               <xsl:text>otherunits='imagemap' supported </xsl:text>
 | 
|---|
| 838 |               <xsl:text>in imageobjectco</xsl:text>
 | 
|---|
| 839 |             </xsl:message>
 | 
|---|
| 840 |           </xsl:otherwise>
 | 
|---|
| 841 |         </xsl:choose>
 | 
|---|
| 842 |       </xsl:for-each>
 | 
|---|
| 843 |     </map>
 | 
|---|
| 844 |   </xsl:if>
 | 
|---|
| 845 | </xsl:template>
 | 
|---|
| 846 | 
 | 
|---|
| 847 | <xsl:template name="process.image.attributes">
 | 
|---|
| 848 |   <xsl:param name="alt"/>
 | 
|---|
| 849 |   <xsl:param name="html.width"/>
 | 
|---|
| 850 |   <xsl:param name="html.depth"/>
 | 
|---|
| 851 |   <xsl:param name="longdesc"/>
 | 
|---|
| 852 |   <xsl:param name="scale"/>
 | 
|---|
| 853 |   <xsl:param name="scalefit"/>
 | 
|---|
| 854 |   <xsl:param name="scaled.contentdepth"/>
 | 
|---|
| 855 |   <xsl:param name="scaled.contentwidth"/>
 | 
|---|
| 856 |   <xsl:param name="viewport"/>
 | 
|---|
| 857 | 
 | 
|---|
| 858 |   <xsl:choose>
 | 
|---|
| 859 |     <xsl:when test="@contentwidth or @contentdepth">
 | 
|---|
| 860 |       <!-- ignore @width/@depth, @scale, and @scalefit if specified -->
 | 
|---|
| 861 |       <xsl:if test="@contentwidth and $scaled.contentwidth != ''">
 | 
|---|
| 862 |         <xsl:attribute name="width">
 | 
|---|
| 863 |           <xsl:value-of select="$scaled.contentwidth"/>
 | 
|---|
| 864 |         </xsl:attribute>
 | 
|---|
| 865 |       </xsl:if>
 | 
|---|
| 866 |       <xsl:if test="@contentdepth and $scaled.contentdepth != ''">
 | 
|---|
| 867 |         <xsl:attribute name="height">
 | 
|---|
| 868 |           <xsl:value-of select="$scaled.contentdepth"/>
 | 
|---|
| 869 |         </xsl:attribute>
 | 
|---|
| 870 |       </xsl:if>
 | 
|---|
| 871 |     </xsl:when>
 | 
|---|
| 872 | 
 | 
|---|
| 873 |     <xsl:when test="number($scale) != 1.0">
 | 
|---|
| 874 |       <!-- scaling is always uniform, so we only have to specify one dimension -->
 | 
|---|
| 875 |       <!-- ignore @scalefit if specified -->
 | 
|---|
| 876 |       <xsl:attribute name="width">
 | 
|---|
| 877 |         <xsl:value-of select="$scaled.contentwidth"/>
 | 
|---|
| 878 |       </xsl:attribute>
 | 
|---|
| 879 |     </xsl:when>
 | 
|---|
| 880 | 
 | 
|---|
| 881 |     <xsl:when test="$scalefit != 0">
 | 
|---|
| 882 |       <xsl:choose>
 | 
|---|
| 883 |         <xsl:when test="contains($html.width, '%')">
 | 
|---|
| 884 |           <xsl:choose>
 | 
|---|
| 885 |             <xsl:when test="$viewport != 0">
 | 
|---|
| 886 |               <!-- The *viewport* will be scaled, so use 100% here! -->
 | 
|---|
| 887 |               <xsl:attribute name="width">
 | 
|---|
| 888 |                 <xsl:value-of select="'100%'"/>
 | 
|---|
| 889 |               </xsl:attribute>
 | 
|---|
| 890 |             </xsl:when>
 | 
|---|
| 891 |             <xsl:otherwise>
 | 
|---|
| 892 |               <xsl:attribute name="width">
 | 
|---|
| 893 |                 <xsl:value-of select="$html.width"/>
 | 
|---|
| 894 |               </xsl:attribute>
 | 
|---|
| 895 |             </xsl:otherwise>
 | 
|---|
| 896 |           </xsl:choose>
 | 
|---|
| 897 |         </xsl:when>
 | 
|---|
| 898 | 
 | 
|---|
| 899 |         <xsl:when test="contains($html.depth, '%')">
 | 
|---|
| 900 |           <!-- HTML doesn't deal with this case very well...do nothing -->
 | 
|---|
| 901 |         </xsl:when>
 | 
|---|
| 902 | 
 | 
|---|
| 903 |         <xsl:when test="$scaled.contentwidth != '' and $html.width != ''                         and $scaled.contentdepth != '' and $html.depth != ''">
 | 
|---|
| 904 |           <!-- scalefit should not be anamorphic; figure out which direction -->
 | 
|---|
| 905 |           <!-- has the limiting scale factor and scale in that direction -->
 | 
|---|
| 906 |           <xsl:choose>
 | 
|---|
| 907 |             <xsl:when test="$html.width div $scaled.contentwidth >                             $html.depth div $scaled.contentdepth">
 | 
|---|
| 908 |               <xsl:attribute name="height">
 | 
|---|
| 909 |                 <xsl:value-of select="$html.depth"/>
 | 
|---|
| 910 |               </xsl:attribute>
 | 
|---|
| 911 |             </xsl:when>
 | 
|---|
| 912 |             <xsl:otherwise>
 | 
|---|
| 913 |               <xsl:attribute name="width">
 | 
|---|
| 914 |                 <xsl:value-of select="$html.width"/>
 | 
|---|
| 915 |               </xsl:attribute>
 | 
|---|
| 916 |             </xsl:otherwise>
 | 
|---|
| 917 |           </xsl:choose>
 | 
|---|
| 918 |         </xsl:when>
 | 
|---|
| 919 | 
 | 
|---|
| 920 |         <xsl:when test="$scaled.contentwidth != '' and $html.width != ''">
 | 
|---|
| 921 |           <xsl:attribute name="width">
 | 
|---|
| 922 |             <xsl:value-of select="$html.width"/>
 | 
|---|
| 923 |           </xsl:attribute>
 | 
|---|
| 924 |         </xsl:when>
 | 
|---|
| 925 | 
 | 
|---|
| 926 |         <xsl:when test="$scaled.contentdepth != '' and $html.depth != ''">
 | 
|---|
| 927 |           <xsl:attribute name="height">
 | 
|---|
| 928 |             <xsl:value-of select="$html.depth"/>
 | 
|---|
| 929 |           </xsl:attribute>
 | 
|---|
| 930 |         </xsl:when>
 | 
|---|
| 931 |       </xsl:choose>
 | 
|---|
| 932 |     </xsl:when>
 | 
|---|
| 933 |   </xsl:choose>
 | 
|---|
| 934 | 
 | 
|---|
| 935 |   <xsl:if test="$alt != ''">
 | 
|---|
| 936 |     <xsl:attribute name="alt">
 | 
|---|
| 937 |       <xsl:value-of select="normalize-space($alt)"/>
 | 
|---|
| 938 |     </xsl:attribute>
 | 
|---|
| 939 |   </xsl:if>
 | 
|---|
| 940 | 
 | 
|---|
| 941 |   <xsl:if test="$longdesc != ''">
 | 
|---|
| 942 |     <xsl:attribute name="longdesc">
 | 
|---|
| 943 |       <xsl:value-of select="$longdesc"/>
 | 
|---|
| 944 |     </xsl:attribute>
 | 
|---|
| 945 |   </xsl:if>
 | 
|---|
| 946 | 
 | 
|---|
| 947 |   <xsl:if test="@align and $viewport = 0">
 | 
|---|
| 948 |     <xsl:attribute name="align">
 | 
|---|
| 949 |       <xsl:choose>
 | 
|---|
| 950 |         <xsl:when test="@align = 'center'">middle</xsl:when>
 | 
|---|
| 951 |         <xsl:otherwise>
 | 
|---|
| 952 |           <xsl:value-of select="@align"/>
 | 
|---|
| 953 |         </xsl:otherwise>
 | 
|---|
| 954 |       </xsl:choose>
 | 
|---|
| 955 |     </xsl:attribute>
 | 
|---|
| 956 |   </xsl:if>
 | 
|---|
| 957 | </xsl:template>
 | 
|---|
| 958 | 
 | 
|---|
| 959 | <!-- ==================================================================== -->
 | 
|---|
| 960 | 
 | 
|---|
| 961 | <xsl:template match="graphic">
 | 
|---|
| 962 |   <xsl:choose>
 | 
|---|
| 963 |     <xsl:when test="parent::inlineequation">
 | 
|---|
| 964 |       <xsl:call-template name="anchor"/>
 | 
|---|
| 965 |       <xsl:call-template name="process.image"/>
 | 
|---|
| 966 |     </xsl:when>
 | 
|---|
| 967 |     <xsl:otherwise>
 | 
|---|
| 968 |       <div>
 | 
|---|
| 969 |         <xsl:if test="@align">
 | 
|---|
| 970 |           <xsl:attribute name="align">
 | 
|---|
| 971 |             <xsl:value-of select="@align"/>
 | 
|---|
| 972 |           </xsl:attribute>
 | 
|---|
| 973 |         </xsl:if>
 | 
|---|
| 974 |         <xsl:call-template name="anchor"/>
 | 
|---|
| 975 |         <xsl:call-template name="process.image"/>
 | 
|---|
| 976 |       </div>
 | 
|---|
| 977 |     </xsl:otherwise>
 | 
|---|
| 978 |   </xsl:choose>
 | 
|---|
| 979 | </xsl:template>
 | 
|---|
| 980 | 
 | 
|---|
| 981 | <xsl:template match="inlinegraphic">
 | 
|---|
| 982 |   <xsl:variable name="filename">
 | 
|---|
| 983 |     <xsl:choose>
 | 
|---|
| 984 |       <xsl:when test="@entityref">
 | 
|---|
| 985 |         <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
 | 
|---|
| 986 |       </xsl:when>
 | 
|---|
| 987 |       <xsl:otherwise>
 | 
|---|
| 988 |         <xsl:apply-templates select="@fileref"/>
 | 
|---|
| 989 |       </xsl:otherwise>
 | 
|---|
| 990 |     </xsl:choose>
 | 
|---|
| 991 |   </xsl:variable>
 | 
|---|
| 992 | 
 | 
|---|
| 993 |   <xsl:call-template name="anchor"/>
 | 
|---|
| 994 | 
 | 
|---|
| 995 |   <xsl:choose>
 | 
|---|
| 996 |     <xsl:when test="@format='linespecific'">
 | 
|---|
| 997 |       <xsl:choose>
 | 
|---|
| 998 |         <xsl:when test="$use.extensions != '0'                         and $textinsert.extension != '0'">
 | 
|---|
| 999 |           <xsl:choose>
 | 
|---|
| 1000 |             <xsl:when test="element-available('stext:insertfile')">
 | 
|---|
| 1001 |               <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
 | 
|---|
| 1002 |             </xsl:when>
 | 
|---|
| 1003 |             <xsl:when test="element-available('xtext:insertfile')">
 | 
|---|
| 1004 |               <xtext:insertfile href="{$filename}"/>
 | 
|---|
| 1005 |             </xsl:when>
 | 
|---|
| 1006 |             <xsl:otherwise>
 | 
|---|
| 1007 |               <xsl:message terminate="yes">
 | 
|---|
| 1008 |                 <xsl:text>No insertfile extension available.</xsl:text>
 | 
|---|
| 1009 |               </xsl:message>
 | 
|---|
| 1010 |             </xsl:otherwise>
 | 
|---|
| 1011 |           </xsl:choose>
 | 
|---|
| 1012 |         </xsl:when>
 | 
|---|
| 1013 |         <xsl:otherwise>
 | 
|---|
| 1014 |           <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="{$filename}"/>
 | 
|---|
| 1015 |         </xsl:otherwise>
 | 
|---|
| 1016 |       </xsl:choose>
 | 
|---|
| 1017 |     </xsl:when>
 | 
|---|
| 1018 |     <xsl:otherwise>
 | 
|---|
| 1019 |       <xsl:call-template name="process.image"/>
 | 
|---|
| 1020 |     </xsl:otherwise>
 | 
|---|
| 1021 |   </xsl:choose>
 | 
|---|
| 1022 | </xsl:template>
 | 
|---|
| 1023 | 
 | 
|---|
| 1024 | <!-- ==================================================================== -->
 | 
|---|
| 1025 | 
 | 
|---|
| 1026 | <xsl:template match="mediaobject|mediaobjectco">
 | 
|---|
| 1027 | 
 | 
|---|
| 1028 |   <xsl:variable name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject                      |textobject"/>
 | 
|---|
| 1029 | 
 | 
|---|
| 1030 |   <xsl:variable name="object.index">
 | 
|---|
| 1031 |     <xsl:call-template name="select.mediaobject.index">
 | 
|---|
| 1032 |       <xsl:with-param name="olist" select="$olist"/>
 | 
|---|
| 1033 |       <xsl:with-param name="count" select="1"/>
 | 
|---|
| 1034 |     </xsl:call-template>
 | 
|---|
| 1035 |   </xsl:variable>
 | 
|---|
| 1036 | 
 | 
|---|
| 1037 |   <xsl:variable name="object" select="$olist[position() = $object.index]"/>
 | 
|---|
| 1038 | 
 | 
|---|
| 1039 |   <xsl:variable name="align">
 | 
|---|
| 1040 |     <xsl:value-of select="$object/descendant::imagedata[@align][1]/@align"/>
 | 
|---|
| 1041 |   </xsl:variable>
 | 
|---|
| 1042 | 
 | 
|---|
| 1043 |   <div>
 | 
|---|
| 1044 |     <xsl:apply-templates select="." mode="class.attribute"/>
 | 
|---|
| 1045 |     <xsl:if test="$align != '' ">
 | 
|---|
| 1046 |       <xsl:attribute name="align">
 | 
|---|
| 1047 |         <xsl:value-of select="$align"/>
 | 
|---|
| 1048 |       </xsl:attribute>
 | 
|---|
| 1049 |     </xsl:if>
 | 
|---|
| 1050 |     <xsl:call-template name="anchor"/>
 | 
|---|
| 1051 | 
 | 
|---|
| 1052 |     <xsl:apply-templates select="$object"/>
 | 
|---|
| 1053 |     <xsl:apply-templates select="caption"/>
 | 
|---|
| 1054 |   </div>
 | 
|---|
| 1055 | </xsl:template>
 | 
|---|
| 1056 | 
 | 
|---|
| 1057 | <xsl:template match="inlinemediaobject">
 | 
|---|
| 1058 |   <span>
 | 
|---|
| 1059 |     <xsl:apply-templates select="." mode="class.attribute"/>
 | 
|---|
| 1060 |     <xsl:call-template name="anchor"/>
 | 
|---|
| 1061 |     <xsl:call-template name="select.mediaobject"/>
 | 
|---|
| 1062 |   </span>
 | 
|---|
| 1063 | </xsl:template>
 | 
|---|
| 1064 | 
 | 
|---|
| 1065 | <xsl:template match="programlisting/inlinemediaobject                      |screen/inlinemediaobject" priority="2">
 | 
|---|
| 1066 |   <!-- the additional span causes problems in some cases -->
 | 
|---|
| 1067 |   <xsl:call-template name="select.mediaobject"/>
 | 
|---|
| 1068 | </xsl:template>
 | 
|---|
| 1069 | 
 | 
|---|
| 1070 | <!-- ==================================================================== -->
 | 
|---|
| 1071 | 
 | 
|---|
| 1072 | <xsl:template match="imageobjectco">
 | 
|---|
| 1073 |   <xsl:call-template name="anchor"/>
 | 
|---|
| 1074 |   <xsl:apply-templates select="imageobject"/>
 | 
|---|
| 1075 |   <xsl:apply-templates select="calloutlist"/>
 | 
|---|
| 1076 | </xsl:template>
 | 
|---|
| 1077 | 
 | 
|---|
| 1078 | <xsl:template match="imageobject">
 | 
|---|
| 1079 |   <xsl:apply-templates select="imagedata"/>
 | 
|---|
| 1080 | </xsl:template>
 | 
|---|
| 1081 | 
 | 
|---|
| 1082 | <xsl:template match="imagedata">
 | 
|---|
| 1083 |   <xsl:variable name="filename">
 | 
|---|
| 1084 |     <xsl:call-template name="mediaobject.filename">
 | 
|---|
| 1085 |       <xsl:with-param name="object" select=".."/>
 | 
|---|
| 1086 |     </xsl:call-template>
 | 
|---|
| 1087 |   </xsl:variable>
 | 
|---|
| 1088 | 
 | 
|---|
| 1089 |   <xsl:choose>
 | 
|---|
| 1090 |     <!-- Handle MathML and SVG markup in imagedata -->
 | 
|---|
| 1091 |     <xsl:when xmlns:mml="http://www.w3.org/1998/Math/MathML" test="mml:*">
 | 
|---|
| 1092 |       <xsl:apply-templates/>
 | 
|---|
| 1093 |     </xsl:when>
 | 
|---|
| 1094 |     
 | 
|---|
| 1095 |     <xsl:when xmlns:svg="http://www.w3.org/2000/svg" test="svg:*">
 | 
|---|
| 1096 |       <xsl:apply-templates/>
 | 
|---|
| 1097 |     </xsl:when>
 | 
|---|
| 1098 | 
 | 
|---|
| 1099 |     <xsl:when test="@format='linespecific'">
 | 
|---|
| 1100 |       <xsl:choose>
 | 
|---|
| 1101 |         <xsl:when test="$use.extensions != '0'                         and $textinsert.extension != '0'">
 | 
|---|
| 1102 |           <xsl:choose>
 | 
|---|
| 1103 |             <xsl:when test="element-available('stext:insertfile')">
 | 
|---|
| 1104 |               <stext:insertfile href="{$filename}" encoding="{$textdata.default.encoding}"/>
 | 
|---|
| 1105 |             </xsl:when>
 | 
|---|
| 1106 |             <xsl:when test="element-available('xtext:insertfile')">
 | 
|---|
| 1107 |               <xtext:insertfile href="{$filename}"/>
 | 
|---|
| 1108 |             </xsl:when>
 | 
|---|
| 1109 |             <xsl:otherwise>
 | 
|---|
| 1110 |               <xsl:message terminate="yes">
 | 
|---|
| 1111 |                 <xsl:text>No insertfile extension available.</xsl:text>
 | 
|---|
| 1112 |               </xsl:message>
 | 
|---|
| 1113 |             </xsl:otherwise>
 | 
|---|
| 1114 |           </xsl:choose>
 | 
|---|
| 1115 |         </xsl:when>
 | 
|---|
| 1116 |         <xsl:otherwise>
 | 
|---|
| 1117 |           <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="{$filename}"/>
 | 
|---|
| 1118 |         </xsl:otherwise>
 | 
|---|
| 1119 |       </xsl:choose>
 | 
|---|
| 1120 |     </xsl:when>
 | 
|---|
| 1121 |     <xsl:otherwise>
 | 
|---|
| 1122 |       <xsl:variable name="longdesc.uri">
 | 
|---|
| 1123 |         <xsl:call-template name="longdesc.uri">
 | 
|---|
| 1124 |           <xsl:with-param name="mediaobject" select="ancestor::imageobject/parent::*"/>
 | 
|---|
| 1125 |         </xsl:call-template>
 | 
|---|
| 1126 |       </xsl:variable>
 | 
|---|
| 1127 | 
 | 
|---|
| 1128 |       <xsl:variable name="phrases" select="ancestor::mediaobject/textobject[phrase]                             |ancestor::inlinemediaobject/textobject[phrase]                             |ancestor::mediaobjectco/textobject[phrase]"/>
 | 
|---|
| 1129 | 
 | 
|---|
| 1130 |       <xsl:call-template name="process.image">
 | 
|---|
| 1131 |         <xsl:with-param name="alt">
 | 
|---|
| 1132 |           <xsl:apply-templates select="$phrases[not(@role) or @role!='tex'][1]"/>
 | 
|---|
| 1133 |         </xsl:with-param>
 | 
|---|
| 1134 |         <xsl:with-param name="longdesc">
 | 
|---|
| 1135 |           <xsl:call-template name="write.longdesc">
 | 
|---|
| 1136 |             <xsl:with-param name="mediaobject" select="ancestor::imageobject/parent::*"/>
 | 
|---|
| 1137 |           </xsl:call-template>
 | 
|---|
| 1138 |         </xsl:with-param>
 | 
|---|
| 1139 |       </xsl:call-template>
 | 
|---|
| 1140 | 
 | 
|---|
| 1141 |       <xsl:if test="$html.longdesc != 0 and $html.longdesc.link != 0                     and ancestor::imageobject/parent::*/textobject[not(phrase)]">
 | 
|---|
| 1142 |         <xsl:call-template name="longdesc.link">
 | 
|---|
| 1143 |           <xsl:with-param name="longdesc.uri" select="$longdesc.uri"/>
 | 
|---|
| 1144 |         </xsl:call-template>
 | 
|---|
| 1145 |       </xsl:if>
 | 
|---|
| 1146 |     </xsl:otherwise>
 | 
|---|
| 1147 |   </xsl:choose>
 | 
|---|
| 1148 | </xsl:template>
 | 
|---|
| 1149 | 
 | 
|---|
| 1150 | <!-- ==================================================================== -->
 | 
|---|
| 1151 | 
 | 
|---|
| 1152 | <xsl:template name="longdesc.uri">
 | 
|---|
| 1153 |   <xsl:param name="mediaobject" select="."/>
 | 
|---|
| 1154 |   <xsl:if test="$html.longdesc">
 | 
|---|
| 1155 |     <xsl:if test="$mediaobject/textobject[not(phrase)]">
 | 
|---|
| 1156 |       <xsl:variable name="dbhtml.dir">
 | 
|---|
| 1157 |         <xsl:call-template name="dbhtml-dir"/>
 | 
|---|
| 1158 |       </xsl:variable>
 | 
|---|
| 1159 |       <xsl:variable name="filename">
 | 
|---|
| 1160 |         <xsl:call-template name="make-relative-filename">
 | 
|---|
| 1161 |           <xsl:with-param name="base.dir">
 | 
|---|
| 1162 |             <xsl:choose>
 | 
|---|
| 1163 |               <xsl:when test="$dbhtml.dir != ''">
 | 
|---|
| 1164 |                 <xsl:value-of select="$dbhtml.dir"/>
 | 
|---|
| 1165 |               </xsl:when>
 | 
|---|
| 1166 |               <xsl:otherwise>
 | 
|---|
| 1167 |                 <xsl:value-of select="$base.dir"/>
 | 
|---|
| 1168 |               </xsl:otherwise>
 | 
|---|
| 1169 |             </xsl:choose>
 | 
|---|
| 1170 |           </xsl:with-param>
 | 
|---|
| 1171 |           <xsl:with-param name="base.name">
 | 
|---|
| 1172 |             <xsl:choose>
 | 
|---|
| 1173 |               <xsl:when test="                 $mediaobject/@*[local-name() = 'id']                 and not($use.id.as.filename = 0)">
 | 
|---|
| 1174 |                 <!-- * if this mediaobject has an ID, then we use the -->
 | 
|---|
| 1175 |                 <!-- * value of that ID as basename for the "longdesc" -->
 | 
|---|
| 1176 |                 <!-- * file (that is, without prepending an "ld-" too it) -->
 | 
|---|
| 1177 |                 <xsl:value-of select="$mediaobject/@*[local-name() = 'id']"/>
 | 
|---|
| 1178 |                 <xsl:value-of select="$html.ext"/>
 | 
|---|
| 1179 |               </xsl:when>
 | 
|---|
| 1180 |               <xsl:otherwise>
 | 
|---|
| 1181 |                 <!-- * otherwise, if this mediaobject does not have an -->
 | 
|---|
| 1182 |                 <!-- * ID, then we generate an ID... -->
 | 
|---|
| 1183 |                 <xsl:variable name="image-id">
 | 
|---|
| 1184 |                   <xsl:call-template name="object.id">
 | 
|---|
| 1185 |                     <xsl:with-param name="object" select="$mediaobject"/>
 | 
|---|
| 1186 |                   </xsl:call-template>
 | 
|---|
| 1187 |                 </xsl:variable>
 | 
|---|
| 1188 |                 <!-- * ...and then we take that generated ID, prepend an -->
 | 
|---|
| 1189 |                 <!-- * "ld-" to it, and use that as the basename for the file -->
 | 
|---|
| 1190 |                 <xsl:value-of select="concat('ld-',$image-id,$html.ext)"/>
 | 
|---|
| 1191 |               </xsl:otherwise>
 | 
|---|
| 1192 |             </xsl:choose>
 | 
|---|
| 1193 |           </xsl:with-param>
 | 
|---|
| 1194 |         </xsl:call-template>
 | 
|---|
| 1195 |       </xsl:variable>
 | 
|---|
| 1196 | 
 | 
|---|
| 1197 |       <xsl:value-of select="$filename"/>
 | 
|---|
| 1198 |     </xsl:if>
 | 
|---|
| 1199 |   </xsl:if>
 | 
|---|
| 1200 | </xsl:template>
 | 
|---|
| 1201 | 
 | 
|---|
| 1202 | <xsl:template name="write.longdesc">
 | 
|---|
| 1203 |   <xsl:param name="mediaobject" select="."/>
 | 
|---|
| 1204 |   <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">
 | 
|---|
| 1205 |     <xsl:variable name="filename">
 | 
|---|
| 1206 |       <xsl:call-template name="longdesc.uri">
 | 
|---|
| 1207 |         <xsl:with-param name="mediaobject" select="$mediaobject"/>
 | 
|---|
| 1208 |       </xsl:call-template>
 | 
|---|
| 1209 |     </xsl:variable>
 | 
|---|
| 1210 | 
 | 
|---|
| 1211 |     <xsl:value-of select="$filename"/>
 | 
|---|
| 1212 | 
 | 
|---|
| 1213 |     <xsl:call-template name="write.chunk">
 | 
|---|
| 1214 |       <xsl:with-param name="filename" select="$filename"/>
 | 
|---|
| 1215 |       <xsl:with-param name="quiet" select="$chunk.quietly"/>
 | 
|---|
| 1216 |       <xsl:with-param name="content">
 | 
|---|
| 1217 |       <xsl:call-template name="user.preroot"/>
 | 
|---|
| 1218 |         <html>
 | 
|---|
| 1219 |           <head>
 | 
|---|
| 1220 |             <xsl:call-template name="system.head.content"/>
 | 
|---|
| 1221 |             <xsl:call-template name="head.content">
 | 
|---|
| 1222 |               <xsl:with-param name="title" select="'Long Description'"/>
 | 
|---|
| 1223 |             </xsl:call-template>
 | 
|---|
| 1224 |             <xsl:call-template name="user.head.content"/>
 | 
|---|
| 1225 |           </head>
 | 
|---|
| 1226 |           <body>
 | 
|---|
| 1227 |             <xsl:call-template name="body.attributes"/>
 | 
|---|
| 1228 |             <xsl:for-each select="$mediaobject/textobject[not(phrase)]">
 | 
|---|
| 1229 |               <xsl:apply-templates select="./*"/>
 | 
|---|
| 1230 |             </xsl:for-each>
 | 
|---|
| 1231 |           </body>
 | 
|---|
| 1232 |         </html>
 | 
|---|
| 1233 |         <xsl:value-of select="$chunk.append"/>
 | 
|---|
| 1234 |       </xsl:with-param>
 | 
|---|
| 1235 |     </xsl:call-template>
 | 
|---|
| 1236 |   </xsl:if>
 | 
|---|
| 1237 | </xsl:template>
 | 
|---|
| 1238 | 
 | 
|---|
| 1239 | <xsl:template name="longdesc.link">
 | 
|---|
| 1240 |   <xsl:param name="longdesc.uri" select="''"/>
 | 
|---|
| 1241 | 
 | 
|---|
| 1242 |   <xsl:variable name="this.uri">
 | 
|---|
| 1243 |     <xsl:call-template name="make-relative-filename">
 | 
|---|
| 1244 |       <xsl:with-param name="base.dir" select="$base.dir"/>
 | 
|---|
| 1245 |       <xsl:with-param name="base.name">
 | 
|---|
| 1246 |         <xsl:call-template name="href.target.uri"/>
 | 
|---|
| 1247 |       </xsl:with-param>
 | 
|---|
| 1248 |     </xsl:call-template>
 | 
|---|
| 1249 |   </xsl:variable>
 | 
|---|
| 1250 | 
 | 
|---|
| 1251 |   <xsl:variable name="href.to">
 | 
|---|
| 1252 |     <xsl:call-template name="trim.common.uri.paths">
 | 
|---|
| 1253 |       <xsl:with-param name="uriA" select="$longdesc.uri"/>
 | 
|---|
| 1254 |       <xsl:with-param name="uriB" select="$this.uri"/>
 | 
|---|
| 1255 |       <xsl:with-param name="return" select="'A'"/>
 | 
|---|
| 1256 |     </xsl:call-template>
 | 
|---|
| 1257 |   </xsl:variable>
 | 
|---|
| 1258 | 
 | 
|---|
| 1259 |   <div class="longdesc-link" align="right">
 | 
|---|
| 1260 |     <br clear="all"/>
 | 
|---|
| 1261 |     <span class="longdesc-link">
 | 
|---|
| 1262 |       <xsl:text>[</xsl:text>
 | 
|---|
| 1263 |       <a href="{$href.to}" target="longdesc">D</a>
 | 
|---|
| 1264 |       <xsl:text>]</xsl:text>
 | 
|---|
| 1265 |     </span>
 | 
|---|
| 1266 |   </div>
 | 
|---|
| 1267 | </xsl:template>
 | 
|---|
| 1268 | 
 | 
|---|
| 1269 | <!-- ==================================================================== -->
 | 
|---|
| 1270 | 
 | 
|---|
| 1271 | <xsl:template match="videoobject">
 | 
|---|
| 1272 |   <xsl:apply-templates select="videodata"/>
 | 
|---|
| 1273 | </xsl:template>
 | 
|---|
| 1274 | 
 | 
|---|
| 1275 | <xsl:template match="videodata">
 | 
|---|
| 1276 |   <xsl:call-template name="process.image">
 | 
|---|
| 1277 |     <xsl:with-param name="tag" select="'embed'"/>
 | 
|---|
| 1278 |     <xsl:with-param name="alt">
 | 
|---|
| 1279 |       <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
 | 
|---|
| 1280 |     </xsl:with-param>
 | 
|---|
| 1281 |   </xsl:call-template>
 | 
|---|
| 1282 | </xsl:template>
 | 
|---|
| 1283 | 
 | 
|---|
| 1284 | <!-- ==================================================================== -->
 | 
|---|
| 1285 | 
 | 
|---|
| 1286 | <xsl:template match="audioobject">
 | 
|---|
| 1287 |   <xsl:apply-templates select="audiodata"/>
 | 
|---|
| 1288 | </xsl:template>
 | 
|---|
| 1289 | 
 | 
|---|
| 1290 | <xsl:template match="audiodata">
 | 
|---|
| 1291 |   <xsl:call-template name="process.image">
 | 
|---|
| 1292 |     <xsl:with-param name="tag" select="'embed'"/>
 | 
|---|
| 1293 |     <xsl:with-param name="alt">
 | 
|---|
| 1294 |       <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
 | 
|---|
| 1295 |     </xsl:with-param>
 | 
|---|
| 1296 |   </xsl:call-template>
 | 
|---|
| 1297 | </xsl:template>
 | 
|---|
| 1298 | 
 | 
|---|
| 1299 | <!-- ==================================================================== -->
 | 
|---|
| 1300 | 
 | 
|---|
| 1301 | <xsl:template match="textobject">
 | 
|---|
| 1302 |   <xsl:apply-templates/>
 | 
|---|
| 1303 | </xsl:template>
 | 
|---|
| 1304 | 
 | 
|---|
| 1305 | <xsl:template match="textdata">
 | 
|---|
| 1306 |   <xsl:variable name="filename">
 | 
|---|
| 1307 |     <xsl:choose>
 | 
|---|
| 1308 |       <xsl:when test="@entityref">
 | 
|---|
| 1309 |         <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
 | 
|---|
| 1310 |       </xsl:when>
 | 
|---|
| 1311 |       <xsl:otherwise>
 | 
|---|
| 1312 |         <xsl:apply-templates select="@fileref"/>
 | 
|---|
| 1313 |       </xsl:otherwise>
 | 
|---|
| 1314 |     </xsl:choose>
 | 
|---|
| 1315 |   </xsl:variable>
 | 
|---|
| 1316 | 
 | 
|---|
| 1317 |   <xsl:variable name="encoding">
 | 
|---|
| 1318 |     <xsl:choose>
 | 
|---|
| 1319 |       <xsl:when test="@encoding">
 | 
|---|
| 1320 |         <xsl:value-of select="@encoding"/>
 | 
|---|
| 1321 |       </xsl:when>
 | 
|---|
| 1322 |       <xsl:otherwise>
 | 
|---|
| 1323 |         <xsl:value-of select="$textdata.default.encoding"/>
 | 
|---|
| 1324 |       </xsl:otherwise>
 | 
|---|
| 1325 |     </xsl:choose>
 | 
|---|
| 1326 |   </xsl:variable>
 | 
|---|
| 1327 | 
 | 
|---|
| 1328 |   <xsl:choose>
 | 
|---|
| 1329 |     <xsl:when test="$use.extensions != '0'                     and $textinsert.extension != '0'">
 | 
|---|
| 1330 |       <xsl:choose>
 | 
|---|
| 1331 |         <xsl:when test="element-available('stext:insertfile')">
 | 
|---|
| 1332 |           <stext:insertfile href="{$filename}" encoding="{$encoding}"/>
 | 
|---|
| 1333 |         </xsl:when>
 | 
|---|
| 1334 |         <xsl:when test="element-available('xtext:insertfile')">
 | 
|---|
| 1335 |           <xtext:insertfile href="{$filename}"/>
 | 
|---|
| 1336 |         </xsl:when>
 | 
|---|
| 1337 |         <xsl:otherwise>
 | 
|---|
| 1338 |           <xsl:message terminate="yes">
 | 
|---|
| 1339 |             <xsl:text>No insertfile extension available.</xsl:text>
 | 
|---|
| 1340 |           </xsl:message>
 | 
|---|
| 1341 |         </xsl:otherwise>
 | 
|---|
| 1342 |       </xsl:choose>
 | 
|---|
| 1343 |     </xsl:when>
 | 
|---|
| 1344 |     <xsl:otherwise>
 | 
|---|
| 1345 |       <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" href="{$filename}"/>
 | 
|---|
| 1346 |     </xsl:otherwise>
 | 
|---|
| 1347 |   </xsl:choose>
 | 
|---|
| 1348 | </xsl:template>
 | 
|---|
| 1349 | 
 | 
|---|
| 1350 | <!-- ==================================================================== -->
 | 
|---|
| 1351 | 
 | 
|---|
| 1352 | <xsl:template match="caption">
 | 
|---|
| 1353 |   <div>
 | 
|---|
| 1354 |     <xsl:apply-templates select="." mode="class.attribute"/>
 | 
|---|
| 1355 |     <xsl:if test="@align = 'right' or @align = 'left' or @align='center'">
 | 
|---|
| 1356 |       <xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
 | 
|---|
| 1357 |     </xsl:if>
 | 
|---|
| 1358 |     <xsl:apply-templates/>
 | 
|---|
| 1359 |   </div>
 | 
|---|
| 1360 | </xsl:template>
 | 
|---|
| 1361 | 
 | 
|---|
| 1362 | <!-- ==================================================================== -->
 | 
|---|
| 1363 | <!-- "Support" for SVG -->
 | 
|---|
| 1364 | 
 | 
|---|
| 1365 | <xsl:template xmlns:svg="http://www.w3.org/2000/svg" match="svg:*">
 | 
|---|
| 1366 |   <xsl:copy>
 | 
|---|
| 1367 |     <xsl:copy-of select="@*"/>
 | 
|---|
| 1368 |     <xsl:apply-templates/>
 | 
|---|
| 1369 |   </xsl:copy>
 | 
|---|
| 1370 | </xsl:template>
 | 
|---|
| 1371 | 
 | 
|---|
| 1372 | 
 | 
|---|
| 1373 | <!-- The following works sometimes, but needs to take into account
 | 
|---|
| 1374 |              1. When there is no /*/@xml:base
 | 
|---|
| 1375 |              2. When the chunks are going somewhere else
 | 
|---|
| 1376 | <xsl:variable name="relpath">
 | 
|---|
| 1377 |   <xsl:call-template name="relative-uri">
 | 
|---|
| 1378 |     <xsl:with-param name="filename" select="@fileref"/>
 | 
|---|
| 1379 |   </xsl:call-template>
 | 
|---|
| 1380 | </xsl:variable>
 | 
|---|
| 1381 | 
 | 
|---|
| 1382 | <xsl:choose>
 | 
|---|
| 1383 |   <xsl:when test="/*/@xml:base
 | 
|---|
| 1384 |                   and starts-with($relpath,/*/@xml:base)">
 | 
|---|
| 1385 |     <xsl:value-of select="substring-after($relpath,/*/@xml:base)"/>
 | 
|---|
| 1386 |   </xsl:when>
 | 
|---|
| 1387 |   <xsl:otherwise>
 | 
|---|
| 1388 |     <xsl:value-of select="@fileref"/>
 | 
|---|
| 1389 |   </xsl:otherwise>
 | 
|---|
| 1390 | </xsl:choose>
 | 
|---|
| 1391 | <xsl:value-of select="@fileref"/>
 | 
|---|
| 1392 |       </xsl:when>
 | 
|---|
| 1393 | -->
 | 
|---|
| 1394 | <!-- Resolve xml:base attributes -->
 | 
|---|
| 1395 | <xsl:template match="@fileref">
 | 
|---|
| 1396 |   <!-- need a check for absolute urls -->
 | 
|---|
| 1397 |   <xsl:choose>
 | 
|---|
| 1398 |     <xsl:when test="contains(., ':')">
 | 
|---|
| 1399 |       <!-- it has a uri scheme so it is an absolute uri -->
 | 
|---|
| 1400 |       <xsl:value-of select="."/>
 | 
|---|
| 1401 |     </xsl:when>
 | 
|---|
| 1402 |     <xsl:when test="$keep.relative.image.uris != 0">
 | 
|---|
| 1403 |       <!-- leave it alone -->
 | 
|---|
| 1404 |       <xsl:value-of select="."/>
 | 
|---|
| 1405 |     </xsl:when>
 | 
|---|
| 1406 |     <xsl:otherwise>
 | 
|---|
| 1407 |       <!-- its a relative uri that needs xml:base processing -->
 | 
|---|
| 1408 |       <xsl:call-template name="relative-uri">
 | 
|---|
| 1409 |       </xsl:call-template>
 | 
|---|
| 1410 |     </xsl:otherwise>
 | 
|---|
| 1411 |   </xsl:choose>
 | 
|---|
| 1412 | </xsl:template>
 | 
|---|
| 1413 | 
 | 
|---|
| 1414 | </xsl:stylesheet>
 | 
|---|