Files correlati : cg0.exe cg0700a.msk cg0700b.msk cg3.exe cg4.exe Bug : Commento: Merge 1.0 libraries
432 lines
18 KiB
XML
432 lines
18 KiB
XML
<?xml version="1.0"?>
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
|
version="1.0">
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
<xsl:template name="setup.pagemasters">
|
|
<fo:layout-master-set>
|
|
<!-- one sided, single column -->
|
|
<fo:simple-page-master master-name="blank"
|
|
page-width="{$page.width}"
|
|
page-height="{$page.height}"
|
|
margin-top="{$page.margin.top}"
|
|
margin-bottom="{$page.margin.bottom}"
|
|
margin-left="{$page.margin.outer}"
|
|
margin-right="{$page.margin.inner}">
|
|
<fo:region-body
|
|
margin-bottom="{$body.margin.bottom}"
|
|
margin-top="{$body.margin.top}"/>
|
|
<fo:region-before region-name="xsl-region-before-blank"
|
|
extent="{$region.before.extent}"/>
|
|
<fo:region-after region-name="xsl-region-after-blank"
|
|
extent="{$region.after.extent}"/>
|
|
</fo:simple-page-master>
|
|
|
|
<!-- one sided, single column -->
|
|
<fo:simple-page-master master-name="simple1"
|
|
page-width="{$page.width}"
|
|
page-height="{$page.height}"
|
|
margin-top="{$page.margin.top}"
|
|
margin-bottom="{$page.margin.bottom}"
|
|
margin-left="{$page.margin.outer}"
|
|
margin-right="{$page.margin.inner}">
|
|
<fo:region-body
|
|
margin-bottom="{$body.margin.bottom}"
|
|
margin-top="{$body.margin.top}"/>
|
|
<fo:region-before extent="{$region.before.extent}"/>
|
|
<fo:region-after extent="{$region.after.extent}"/>
|
|
</fo:simple-page-master>
|
|
|
|
<!-- for left-hand/even pages in twosided mode, single column -->
|
|
<fo:simple-page-master master-name="left1"
|
|
page-width="{$page.width}"
|
|
page-height="{$page.height}"
|
|
margin-top="{$page.margin.top}"
|
|
margin-bottom="{$page.margin.bottom}"
|
|
margin-left="{$page.margin.outer}"
|
|
margin-right="{$page.margin.inner}">
|
|
<fo:region-body
|
|
margin-bottom="{$body.margin.bottom}"
|
|
margin-top="{$body.margin.top}"/>
|
|
<fo:region-before region-name="xsl-region-before-left"
|
|
extent="{$region.before.extent}"/>
|
|
<fo:region-after region-name="xsl-region-after-left"
|
|
extent="{$region.after.extent}"/>
|
|
</fo:simple-page-master>
|
|
|
|
<!-- for right-hand/odd pages in twosided mode, single column -->
|
|
<fo:simple-page-master master-name="right1"
|
|
page-width="{$page.width}"
|
|
page-height="{$page.height}"
|
|
margin-top="{$page.margin.top}"
|
|
margin-bottom="{$page.margin.bottom}"
|
|
margin-left="{$page.margin.inner}"
|
|
margin-right="{$page.margin.outer}">
|
|
<fo:region-body
|
|
margin-bottom="{$body.margin.bottom}"
|
|
margin-top="{$body.margin.top}"/>
|
|
<fo:region-before region-name="xsl-region-before-right"
|
|
extent="{$region.before.extent}"/>
|
|
<fo:region-after region-name="xsl-region-after-right"
|
|
extent="{$region.after.extent}"/>
|
|
</fo:simple-page-master>
|
|
|
|
<!-- special case of first page in either mode, single column -->
|
|
<fo:simple-page-master master-name="first1"
|
|
page-width="{$page.width}"
|
|
page-height="{$page.height}"
|
|
margin-top="{$page.margin.top}"
|
|
margin-bottom="{$page.margin.bottom}"
|
|
margin-left="{$page.margin.inner}"
|
|
margin-right="{$page.margin.inner}">
|
|
<fo:region-body
|
|
margin-bottom="{$body.margin.bottom}"
|
|
margin-top="{$body.margin.top}"/>
|
|
<fo:region-before region-name="xsl-region-before-first"
|
|
extent="{$region.before.extent}"/>
|
|
<fo:region-after region-name="xsl-region-after-first"
|
|
extent="{$region.after.extent}"/>
|
|
</fo:simple-page-master>
|
|
|
|
<!-- for pages in one-side mode, 2 column -->
|
|
<fo:simple-page-master master-name="simple2"
|
|
page-width="{$page.width}"
|
|
page-height="{$page.height}"
|
|
margin-top="{$page.margin.top}"
|
|
margin-bottom="{$page.margin.bottom}"
|
|
margin-left="{$page.margin.outer}"
|
|
margin-right="{$page.margin.inner}">
|
|
<fo:region-body
|
|
column-count="{$column.count}"
|
|
margin-bottom="{$body.margin.bottom}"
|
|
margin-top="{$body.margin.top}"/>
|
|
<fo:region-before extent="{$region.before.extent}"/>
|
|
<fo:region-after extent="{$region.after.extent}"/>
|
|
</fo:simple-page-master>
|
|
|
|
<!-- for left-hand/even pages in twosided mode, 2 column -->
|
|
<fo:simple-page-master master-name="left2"
|
|
page-width="{$page.width}"
|
|
page-height="{$page.height}"
|
|
margin-top="{$page.margin.top}"
|
|
margin-bottom="{$page.margin.bottom}"
|
|
margin-left="{$page.margin.outer}"
|
|
margin-right="{$page.margin.inner}">
|
|
<fo:region-body
|
|
column-count="{$column.count}"
|
|
margin-bottom="{$body.margin.bottom}"
|
|
margin-top="{$body.margin.top}"/>
|
|
<fo:region-before region-name="xsl-region-before-left"
|
|
extent="{$region.before.extent}"/>
|
|
<fo:region-after region-name="xsl-region-after-left"
|
|
extent="{$region.after.extent}"/>
|
|
</fo:simple-page-master>
|
|
|
|
<!-- for right-hand/odd pages in twosided mode, 2 column -->
|
|
<fo:simple-page-master master-name="right2"
|
|
page-width="{$page.width}"
|
|
page-height="{$page.height}"
|
|
margin-top="{$page.margin.top}"
|
|
margin-bottom="{$page.margin.bottom}"
|
|
margin-left="{$page.margin.inner}"
|
|
margin-right="{$page.margin.outer}">
|
|
<fo:region-body
|
|
column-count="{$column.count}"
|
|
margin-bottom="{$body.margin.bottom}"
|
|
margin-top="{$body.margin.top}"/>
|
|
<fo:region-before region-name="xsl-region-before-right"
|
|
extent="{$region.before.extent}"/>
|
|
<fo:region-after region-name="xsl-region-after-right"
|
|
extent="{$region.after.extent}"/>
|
|
</fo:simple-page-master>
|
|
|
|
<!-- special case of first page in either mode -->
|
|
<fo:simple-page-master master-name="first2"
|
|
page-width="{$page.width}"
|
|
page-height="{$page.height}"
|
|
margin-top="{$page.margin.top}"
|
|
margin-bottom="{$page.margin.bottom}"
|
|
margin-left="{$page.margin.inner}"
|
|
margin-right="{$page.margin.inner}">
|
|
<fo:region-body
|
|
column-count="1"
|
|
margin-bottom="{$body.margin.bottom}"
|
|
margin-top="{$body.margin.top}"/>
|
|
<fo:region-before region-name="xsl-region-before-first"
|
|
extent="{$region.before.extent}"/>
|
|
<fo:region-after region-name="xsl-region-after-first"
|
|
extent="{$region.after.extent}"/>
|
|
</fo:simple-page-master>
|
|
|
|
<!-- setup for title-page, 1 column -->
|
|
<fo:page-sequence-master master-name="titlepage1">
|
|
<fo:repeatable-page-master-alternatives>
|
|
<fo:conditional-page-master-reference master-name="first1"/>
|
|
</fo:repeatable-page-master-alternatives>
|
|
</fo:page-sequence-master>
|
|
|
|
<!-- setup for single-sided, 1 column -->
|
|
<fo:page-sequence-master master-name="oneside1">
|
|
<fo:repeatable-page-master-alternatives>
|
|
<fo:conditional-page-master-reference master-name="simple1"/>
|
|
</fo:repeatable-page-master-alternatives>
|
|
</fo:page-sequence-master>
|
|
|
|
<!-- setup for double-sided, 1 column -->
|
|
<fo:page-sequence-master master-name="twoside1">
|
|
<fo:repeatable-page-master-alternatives>
|
|
<fo:conditional-page-master-reference master-name="blank"
|
|
blank-or-not-blank="blank"/>
|
|
<fo:conditional-page-master-reference master-name="right1"
|
|
odd-or-even="odd"/>
|
|
<fo:conditional-page-master-reference master-name="left1"
|
|
odd-or-even="even"/>
|
|
</fo:repeatable-page-master-alternatives>
|
|
</fo:page-sequence-master>
|
|
|
|
<!-- setup for title-page, 2 column -->
|
|
<fo:page-sequence-master master-name="titlepage2">
|
|
<fo:repeatable-page-master-alternatives>
|
|
<fo:conditional-page-master-reference master-name="first2"/>
|
|
</fo:repeatable-page-master-alternatives>
|
|
</fo:page-sequence-master>
|
|
|
|
<!-- setup for single-sided, 2 column -->
|
|
<fo:page-sequence-master master-name="oneside2">
|
|
<fo:repeatable-page-master-alternatives>
|
|
<fo:conditional-page-master-reference master-name="simple2"/>
|
|
</fo:repeatable-page-master-alternatives>
|
|
</fo:page-sequence-master>
|
|
|
|
<!-- setup for double-sided, 2 column -->
|
|
<fo:page-sequence-master master-name="twoside2">
|
|
<fo:repeatable-page-master-alternatives>
|
|
<fo:conditional-page-master-reference master-name="blank"
|
|
blank-or-not-blank="blank"/>
|
|
<fo:conditional-page-master-reference master-name="right2"
|
|
odd-or-even="odd"/>
|
|
<fo:conditional-page-master-reference master-name="left2"
|
|
odd-or-even="even"/>
|
|
</fo:repeatable-page-master-alternatives>
|
|
</fo:page-sequence-master>
|
|
|
|
<xsl:call-template name="user.pagemasters"/>
|
|
|
|
</fo:layout-master-set>
|
|
</xsl:template>
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
<xsl:template name="user.pagemasters"/> <!-- intentionally empty -->
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
<!-- $double.sided, $column.count, and context -->
|
|
|
|
<xsl:template name="select.pagemaster">
|
|
<xsl:param name="element" select="local-name(.)"/>
|
|
<xsl:choose>
|
|
<xsl:when test="$double.sided != 0">
|
|
<xsl:choose>
|
|
<xsl:when test="$column.count > 1">
|
|
<xsl:call-template name="select.doublesided.multicolumn.pagemaster">
|
|
<xsl:with-param name="element" select="$element"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:call-template name="select.doublesided.pagemaster">
|
|
<xsl:with-param name="element" select="$element"/>
|
|
</xsl:call-template>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:choose>
|
|
<xsl:when test="$column.count > 1">
|
|
<xsl:call-template name="select.singlesided.multicolumn.pagemaster">
|
|
<xsl:with-param name="element" select="$element"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:call-template name="select.singlesided.pagemaster">
|
|
<xsl:with-param name="element" select="$element"/>
|
|
</xsl:call-template>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="select.doublesided.multicolumn.pagemaster">
|
|
<xsl:param name="element" select="local-name(.)"/>
|
|
<xsl:choose>
|
|
<xsl:when test="$element='set' or $element='book' or $element='part'">
|
|
<xsl:text>titlepage2</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>twoside2</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="select.doublesided.pagemaster">
|
|
<xsl:param name="element" select="local-name(.)"/>
|
|
<xsl:choose>
|
|
<xsl:when test="$element='set' or $element='book' or $element='part'">
|
|
<xsl:text>titlepage1</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>twoside1</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="select.singlesided.multicolumn.pagemaster">
|
|
<xsl:param name="element" select="local-name(.)"/>
|
|
<xsl:choose>
|
|
<xsl:when test="$element='set' or $element='book' or $element='part'">
|
|
<xsl:text>titlepage2</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>oneside2</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="select.singlesided.pagemaster">
|
|
<xsl:param name="element" select="local-name(.)"/>
|
|
<xsl:choose>
|
|
<xsl:when test="$element='set' or $element='book' or $element='part'">
|
|
<xsl:text>titlepage1</xsl:text>
|
|
</xsl:when>
|
|
<xsl:otherwise>oneside1</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
<xsl:template match="*" mode="running.head.mode">
|
|
<xsl:param name="master-name" select="'unknown'"/>
|
|
<!-- by default, nothing -->
|
|
<xsl:choose>
|
|
<xsl:when test="$master-name='titlepage1'">
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='oneside1'">
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='twoside1'">
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='titlepage2'">
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='oneside2'">
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='twoside2'">
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="chapter|appendix" mode="running.head.mode">
|
|
<xsl:param name="master-name" select="'unknown'"/>
|
|
<xsl:variable name="head">
|
|
<fo:block font-size="{$body.font.size}">
|
|
<xsl:apply-templates select="." mode="object.title.markup"/>
|
|
</fo:block>
|
|
</xsl:variable>
|
|
|
|
<xsl:choose>
|
|
<xsl:when test="$master-name='titlepage1'"></xsl:when>
|
|
<xsl:when test="$master-name='oneside1'">
|
|
<fo:static-content flow-name="xsl-region-before">
|
|
<fo:block text-align="center">
|
|
<xsl:copy-of select="$head"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='twoside1'">
|
|
<fo:static-content flow-name="xsl-region-before-left">
|
|
<fo:block text-align="right">
|
|
<xsl:copy-of select="$head"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
<fo:static-content flow-name="xsl-region-before-right">
|
|
<fo:block text-align="left">
|
|
<xsl:copy-of select="$head"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='titlepage2'"></xsl:when>
|
|
<xsl:when test="$master-name='oneside2'">
|
|
<fo:static-content flow-name="xsl-region-before">
|
|
<fo:block text-align="center">
|
|
<xsl:copy-of select="$head"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='twoside2'">
|
|
<fo:static-content flow-name="xsl-region-before-left">
|
|
<fo:block text-align="right">
|
|
<xsl:copy-of select="$head"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
<fo:static-content flow-name="xsl-region-before-right">
|
|
<fo:block text-align="left">
|
|
<xsl:copy-of select="$head"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="*" mode="running.foot.mode">
|
|
<xsl:param name="master-name" select="'unknown'"/>
|
|
<xsl:variable name="foot">
|
|
<fo:page-number/>
|
|
</xsl:variable>
|
|
<!-- by default, the page number -->
|
|
<xsl:choose>
|
|
<xsl:when test="$master-name='titlepage1'"></xsl:when>
|
|
<xsl:when test="$master-name='oneside1'">
|
|
<fo:static-content flow-name="xsl-region-after">
|
|
<fo:block text-align="center" font-size="{$body.font.size}">
|
|
<xsl:copy-of select="$foot"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='twoside1'">
|
|
<fo:static-content flow-name="xsl-region-after-left">
|
|
<fo:block text-align="left" font-size="{$body.font.size}">
|
|
<xsl:copy-of select="$foot"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
<fo:static-content flow-name="xsl-region-after-right">
|
|
<fo:block text-align="right" font-size="{$body.font.size}">
|
|
<xsl:copy-of select="$foot"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='titlepage2'"></xsl:when>
|
|
<xsl:when test="$master-name='oneside2'">
|
|
<fo:static-content flow-name="xsl-after-before">
|
|
<fo:block text-align="center" font-size="{$body.font.size}">
|
|
<xsl:copy-of select="$foot"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
</xsl:when>
|
|
<xsl:when test="$master-name='twoside2'">
|
|
<fo:static-content flow-name="xsl-region-after-left">
|
|
<fo:block text-align="left" font-size="{$body.font.size}">
|
|
<xsl:copy-of select="$foot"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
<fo:static-content flow-name="xsl-region-after-right">
|
|
<fo:block text-align="right" font-size="{$body.font.size}">
|
|
<xsl:copy-of select="$foot"/>
|
|
</fo:block>
|
|
</fo:static-content>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="set|book|part|reference" mode="running.foot.mode">
|
|
<!-- nothing -->
|
|
</xsl:template>
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
</xsl:stylesheet>
|