|
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>
|