Blame xsl/cover.xsl

Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
                xmlns:exsl="http://exslt.org/common"
Packit 0f19cf
                exclude-result-prefixes="exsl" version='1.0'>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
    XSLT Stylesheet DocBook -> LaTeX 
Packit 0f19cf
    ############################################################################ -->
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     The first <cover> is assumed to be for the front page, the second one is
Packit 0f19cf
     for the back page.
Packit 0f19cf
Packit 0f19cf
     The implementation tries to match the DocBook 4 method that uses
Packit 0f19cf
     <mediaobject>s with role='cover' to represent a cover, but it ignores those
Packit 0f19cf
     elements if <cover> elements are found.
Packit 0f19cf
-->
Packit 0f19cf
Packit 0f19cf
<xsl:template name="front.cover">
Packit 0f19cf
  <xsl:param name="info" select="/*/*[contains(name(.), 'info')]"/>
Packit 0f19cf
  <xsl:call-template name="make.cover">
Packit 0f19cf
    <xsl:with-param name="idx" select="1"/>
Packit 0f19cf
    <xsl:with-param name="info" select="$info"/>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template name="back.cover">
Packit 0f19cf
  <xsl:param name="info" select="/*/*[contains(name(.), 'info')]"/>
Packit 0f19cf
  <xsl:call-template name="make.cover">
Packit 0f19cf
    <xsl:with-param name="idx" select="2"/>
Packit 0f19cf
    <xsl:with-param name="info" select="$info"/>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template name="make.cover">
Packit 0f19cf
  <xsl:param name="idx" select="1"/>
Packit 0f19cf
  <xsl:param name="info"/>
Packit 0f19cf
Packit 0f19cf
  <xsl:variable name="covers" select="$info/cover"/>
Packit 0f19cf
  <xsl:variable name="medias" select="$info//mediaobject[@role='cover']"/>
Packit 0f19cf
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="count($covers) >= $idx">
Packit 0f19cf
    <xsl:apply-templates select="$covers[$idx]/mediaobject" mode="cover"/>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="count($medias) >= $idx">
Packit 0f19cf
    <xsl:apply-templates select="$medias[$idx]" mode="cover"/>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="mediaobject" mode="cover">
Packit 0f19cf
  <xsl:variable name="idx">
Packit 0f19cf
    <xsl:call-template name="mediaobject.select.idx">
Packit 0f19cf
      <xsl:with-param name="role" select="'front-large'"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
Packit 0f19cf
  <xsl:variable name="img" select="imageobject[position()=$idx]"/>
Packit 0f19cf
Packit 0f19cf
  <xsl:text>\putoncover{</xsl:text>
Packit 0f19cf
  <xsl:apply-templates select="$img/imagedata" mode="cover"/>              
Packit 0f19cf
  <xsl:text>}
</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="imagedata" mode="cover">
Packit 0f19cf
  <xsl:call-template name="imagedata">
Packit 0f19cf
    <xsl:with-param name="layout.width" select="'\paperwidth'"/>
Packit 0f19cf
    <xsl:with-param name="layout.height" select="'\paperheight'"/>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
</xsl:stylesheet>