Blame xsl/pagesetup.xsl

Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
                xmlns:exsl="http://exslt.org/common"
Packit Service 76cb02
                exclude-result-prefixes="exsl"
Packit Service 76cb02
                version='1.0'>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
    XSLT Stylesheet DocBook -> LaTeX 
Packit Service 76cb02
    ############################################################################
Packit Service 76cb02
    
Packit Service 76cb02
    This stylesheet allows to setup paper and page dimensions through some
Packit Service 76cb02
    predefined parameters. Most of the page setup parameters come from the
Packit Service 76cb02
    DocBook XSL FO parameters. The latex packages used to perform this setup
Packit Service 76cb02
    are the well known 'geometry' and 'crop'.
Packit Service 76cb02
Packit Service 76cb02
    This feature has been sponsored by Freexian (http://www.freexian.com).
Packit Service 76cb02
    
Packit Service 76cb02
-->
Packit Service 76cb02
<xsl:param name="page.height"/>
Packit Service 76cb02
<xsl:param name="page.margin.bottom"/>
Packit Service 76cb02
<xsl:param name="page.margin.inner"/>
Packit Service 76cb02
<xsl:param name="page.margin.outer"/>
Packit Service 76cb02
<xsl:param name="page.margin.top"/>
Packit Service 76cb02
<xsl:param name="page.width"/>
Packit Service 76cb02
<xsl:param name="paper.type"/>
Packit Service 76cb02
<xsl:param name="geometry.options"/>
Packit Service 76cb02
<xsl:param name="crop.marks" select="0"/>
Packit Service 76cb02
<xsl:param name="crop.paper.type"/>
Packit Service 76cb02
<xsl:param name="crop.page.width"/>
Packit Service 76cb02
<xsl:param name="crop.page.height"/>
Packit Service 76cb02
<xsl:param name="crop.mode" select="'cam'"/>
Packit Service 76cb02
<xsl:param name="crop.options"/>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="page.setup">
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="geometry.setup">
Packit Service 76cb02
    
Packit Service 76cb02
              paperheight="{$page.height}"
Packit Service 76cb02
              papername="{$paper.type}"
Packit Service 76cb02
              right="{$page.margin.outer}"
Packit Service 76cb02
              left="{$page.margin.inner}"
Packit Service 76cb02
              top="{$page.margin.top}"
Packit Service 76cb02
              bottom="{$page.margin.bottom}"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="geometry.params">
Packit Service 76cb02
    <xsl:for-each select="exsl:node-set($geometry.setup)//@*">
Packit Service 76cb02
      <xsl:if test=". != ''">
Packit Service 76cb02
        <xsl:value-of select="local-name()"/>
Packit Service 76cb02
        <xsl:text>=</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="."/>
Packit Service 76cb02
        <xsl:text>,</xsl:text>
Packit Service 76cb02
      </xsl:if>
Packit Service 76cb02
    </xsl:for-each>
Packit Service 76cb02
    <xsl:value-of select="$geometry.options"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:if test="$geometry.params != ''">
Packit Service 76cb02
    <xsl:text>\usepackage[includeheadfoot,</xsl:text> 
Packit Service 76cb02
    <xsl:value-of select="$geometry.params"/>
Packit Service 76cb02
    <xsl:text>]{geometry}
</xsl:text> 
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:if test="$crop.marks != 0">
Packit Service 76cb02
    <xsl:variable name="crop.params">
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
      <xsl:when test="$crop.paper.type != ''">
Packit Service 76cb02
        <xsl:value-of select="$crop.paper.type"/>
Packit Service 76cb02
        <xsl:text>,</xsl:text>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      
Packit Service 76cb02
                      $crop.page.height != ''">
Packit Service 76cb02
        
Packit Service 76cb02
        <xsl:text>width=</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="$crop.page.width"/>
Packit Service 76cb02
        <xsl:text>,</xsl:text>
Packit Service 76cb02
        <xsl:text>height=</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="$crop.page.height"/>
Packit Service 76cb02
        <xsl:text>,</xsl:text>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:message>
Packit Service 76cb02
          <xsl:text>Warning: crop required without crop size setup</xsl:text>
Packit Service 76cb02
        </xsl:message>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
Packit Service 76cb02
      
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:text>width=\pagewidth</xsl:text>
Packit Service 76cb02
        <xsl:text>+</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="$crop.margin"/>
Packit Service 76cb02
        <xsl:text>+</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="$crop.margin"/>
Packit Service 76cb02
        <xsl:text>,</xsl:text>
Packit Service 76cb02
        <xsl:text>height=\pageheight</xsl:text>
Packit Service 76cb02
        <xsl:text>+</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="$crop.margin"/>
Packit Service 76cb02
        <xsl:text>+</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="$crop.margin"/>
Packit Service 76cb02
        <xsl:text>,</xsl:text>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
      -->
Packit Service 76cb02
      </xsl:choose>
Packit Service 76cb02
      <xsl:value-of select="$crop.options"/>
Packit Service 76cb02
    </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
    <xsl:if test="$crop.params != ''">
Packit Service 76cb02
      <xsl:text>\usepackage[</xsl:text> 
Packit Service 76cb02
      <xsl:value-of select="$crop.params"/>
Packit Service 76cb02
      <xsl:text>center,</xsl:text>
Packit Service 76cb02
      <xsl:value-of select="$crop.mode"/>
Packit Service 76cb02
      <xsl:text>]{crop}
</xsl:text> 
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     dblatex -P paper.type=a5paper
Packit Service 76cb02
             -P page.margin.outer=1cm
Packit Service 76cb02
             -P page.margin.inner=3cm pagesetup.xml
Packit Service 76cb02
Packit Service 76cb02
     dblatex -P paper.type=a5paper
Packit Service 76cb02
             -P page.margin.outer=1cm
Packit Service 76cb02
             -P page.margin.inner=3cm
Packit Service 76cb02
             -P crop.marks=1
Packit Service 76cb02
             -P crop.paper.type=a4 pagesetup.xml
Packit Service 76cb02
Packit Service 76cb02
     dblatex -P page.width=18.89cm
Packit Service 76cb02
             -P page.height=24.58cm
Packit Service 76cb02
             -P page.margin.outer=1cm
Packit Service 76cb02
             -P page.margin.inner=3cm
Packit Service 76cb02
             -P crop.marks=1 
Packit Service 76cb02
             -P crop.page.width=21cm
Packit Service 76cb02
             -P crop.page.height=29.7cm pagesetup.xml
Packit Service 76cb02
-->
Packit Service 76cb02
</xsl:stylesheet>