| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563 | <?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"                xmlns:fo="http://www.w3.org/1999/XSL/Format"		xmlns:db="http://docbook.org/ns/docbook"		xmlns:dbs="http://docbook.org/ns/docbook-slides"		xmlns:exsl="http://exslt.org/common"		exclude-result-prefixes="dbs db"		extension-element-prefixes="exsl"                version="1.0"><xsl:import href="../../fo/docbook.xsl"/><xsl:import href="../common/common.xsl"/><xsl:include href="plain-titlepage.xsl"/><xsl:include href="param.xsl"/><xsl:output indent="yes"/><xsl:param name="local.l10n.xml" select="document('')"/><i18n xmlns="http://docbook.sourceforge.net/xmlns/l10n/1.0">  <l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en">    <l:gentext key="Continued" text="(Continued)"/>    <l:gentext key="Speakernotes" text="Speaker Notes"/>    <l:gentext key="Handoutnotes" text="Handout Notes"/>    <l:context name="title">      <l:template name="slides" text="%t"/>      <l:template name="foilgroup" text="%t"/>      <l:template name="foil" text="%t"/>    </l:context>  </l:l10n></i18n><!-- Start of overrides --><xsl:param name="page.margin.top" select="'0.25in'"/><xsl:param name="page.margin.bottom" select="'0.25in'"/><xsl:param name="page.margin.inner" select="'0.25in'"/><xsl:param name="page.margin.outer" select="'0.25in'"/><xsl:param name="body.margin.top" select="'1in'"/><xsl:param name="body.margin.bottom" select="'0.5in'"/><xsl:param name="region.before.extent" select="'0.75in'"/><xsl:param name="region.after.extent" select="'0.5in'"/><xsl:param name="column.count.body" select="1"/><xsl:param name="body.font.size">20</xsl:param><xsl:param name="callout.icon.size" select="'40pt'"/><xsl:param name="alignment" select="'start'"/><xsl:param name="preferred.mediaobject.role" select="'print'"/><xsl:param name="page.orientation" select="'landscape'"/><xsl:variable name="root.elements" select="' slides '"/><xsl:attribute-set name="formal.title.properties"                   use-attribute-sets="normal.para.spacing">  <xsl:attribute name="font-weight">bold</xsl:attribute>  <xsl:attribute name="font-size">    <xsl:value-of select="$body.font.master * 1.2"/>    <xsl:text>pt</xsl:text>  </xsl:attribute>  <xsl:attribute name="hyphenate">false</xsl:attribute>  <xsl:attribute name="space-after.minimum">8pt</xsl:attribute>  <xsl:attribute name="space-after.optimum">6pt</xsl:attribute>  <xsl:attribute name="space-after.maximum">10pt</xsl:attribute></xsl:attribute-set><xsl:attribute-set name="list.block.spacing">  <xsl:attribute name="space-before.optimum">12pt</xsl:attribute>  <xsl:attribute name="space-before.minimum">8pt</xsl:attribute>  <xsl:attribute name="space-before.maximum">14pt</xsl:attribute>  <xsl:attribute name="space-after.optimum">0pt</xsl:attribute>  <xsl:attribute name="space-after.minimum">0pt</xsl:attribute>  <xsl:attribute name="space-after.maximum">0pt</xsl:attribute></xsl:attribute-set><xsl:attribute-set name="list.item.spacing">  <xsl:attribute name="space-before.optimum">6pt</xsl:attribute>  <xsl:attribute name="space-before.minimum">4pt</xsl:attribute>  <xsl:attribute name="space-before.maximum">8pt</xsl:attribute></xsl:attribute-set><xsl:attribute-set name="normal.para.spacing">  <xsl:attribute name="space-before.optimum">8pt</xsl:attribute>  <xsl:attribute name="space-before.minimum">6pt</xsl:attribute>  <xsl:attribute name="space-before.maximum">10pt</xsl:attribute></xsl:attribute-set><xsl:attribute-set name="orderedlist.properties">  <xsl:attribute name="font-size">    <xsl:value-of select="$body.font.size"/>  </xsl:attribute></xsl:attribute-set><xsl:attribute-set name="footnote.properties">  <xsl:attribute name="font-size">    <xsl:value-of select="$body.font.size * 0.8"/>  </xsl:attribute></xsl:attribute-set><xsl:attribute-set name="slides.titlepage.recto.style">  <xsl:attribute name="font-family">    <xsl:value-of select="$slide.font.family"/>  </xsl:attribute></xsl:attribute-set><xsl:attribute-set name="slides.titlepage.verso.style">  <xsl:attribute name="font-family">    <xsl:value-of select="$slide.font.family"/>  </xsl:attribute></xsl:attribute-set><xsl:template name="bibliography.titlepage"/><!-- Do not add db namespace to dbs elements --><xsl:template match="*[namespace-uri() = 'http://docbook.org/ns/docbook-slides']" mode="addNS">  <xsl:copy-of select="."/></xsl:template><!-- End of overrides --><xsl:template name="user.pagemasters">  <fo:simple-page-master master-name="slides-titlepage-master"			 xsl:use-attribute-sets="slides.titlepage.master.properties">    <fo:region-body xsl:use-attribute-sets="slides.titlepage.region-body.properties"/>  </fo:simple-page-master>  <fo:simple-page-master master-name="slides-foil-master"			 xsl:use-attribute-sets="foil.master.properties">    <fo:region-body xsl:use-attribute-sets="foil.region-body.properties"/>    <fo:region-before region-name="xsl-region-before-foil" xsl:use-attribute-sets="foil.region-before.properties"/>    <fo:region-after region-name="xsl-region-after-foil" xsl:use-attribute-sets="foil.region-after.properties"/>  </fo:simple-page-master>  <fo:simple-page-master master-name="slides-foil-continued-master"			 xsl:use-attribute-sets="foil.master.properties">    <fo:region-body xsl:use-attribute-sets="foil.region-body.properties"/>    <fo:region-before region-name="xsl-region-before-foil-continued" xsl:use-attribute-sets="foil.region-before.properties"/>    <fo:region-after region-name="xsl-region-after-foil-continued" xsl:use-attribute-sets="foil.region-after.properties"/>  </fo:simple-page-master>  <fo:page-sequence-master master-name="slides-titlepage">    <fo:repeatable-page-master-alternatives>      <fo:conditional-page-master-reference master-reference="slides-titlepage-master"/>    </fo:repeatable-page-master-alternatives>  </fo:page-sequence-master>  <fo:page-sequence-master master-name="slides-foil">    <fo:repeatable-page-master-alternatives>      <fo:conditional-page-master-reference master-reference="slides-foil-master"                                            page-position="first"/>      <fo:conditional-page-master-reference master-reference="slides-foil-continued-master"/>    </fo:repeatable-page-master-alternatives>  </fo:page-sequence-master></xsl:template><xsl:template name="presentation.title">  <xsl:call-template name="get.title">    <xsl:with-param name="ctx" select="/dbs:slides"/>  </xsl:call-template></xsl:template><xsl:template name="slides.bookmarks">  <fo:bookmark-tree>    <xsl:apply-templates select="/dbs:slides/dbs:foil|/dbs:slides/dbs:foilgroup" mode="bookmark.mode"/>  </fo:bookmark-tree></xsl:template><xsl:template match="dbs:foil|dbs:foilgroup" mode="bookmark.mode">  <fo:bookmark>    <xsl:attribute name="internal-destination">      <xsl:call-template name="object.id"/>    </xsl:attribute>    <fo:bookmark-title>      <xsl:call-template name="get.title"/>    </fo:bookmark-title>    <xsl:if test="self::dbs:foilgroup">      <xsl:apply-templates select="dbs:foil" mode="bookmark.mode"/>    </xsl:if>  </fo:bookmark></xsl:template><xsl:template match="db:author" mode="titlepage.mode">  <fo:block>    <xsl:apply-templates select="db:personname" mode="titlepage.mode"/>  </fo:block>  <fo:block>    <xsl:apply-templates select="db:affiliation" mode="titlepage.mode"/>  </fo:block>  <fo:block>    <xsl:apply-templates select="db:email" mode="titlepage.mode"/>  </fo:block></xsl:template><xsl:template match="/">  <fo:root xsl:use-attribute-sets="slides.properties">    <fo:layout-master-set>      <xsl:call-template name="user.pagemasters"/>    </fo:layout-master-set>    <xsl:call-template name="slides.bookmarks"/>    <xsl:if test="$generate.titlepage != 0">      <fo:page-sequence hyphenate="{$hyphenate}"			master-reference="slides-titlepage">        <xsl:attribute name="language">	  <xsl:call-template name="l10n.language"/>        </xsl:attribute>        <fo:flow flow-name="xsl-region-body">	  <fo:block>	    <xsl:apply-templates select="/dbs:slides" mode="titlepage"/>	  </fo:block>        </fo:flow>      </fo:page-sequence>    </xsl:if>    <xsl:apply-templates select="/dbs:slides/dbs:foil|/dbs:slides/dbs:foilgroup"/>  </fo:root></xsl:template><xsl:template match="dbs:slides" mode="titlepage">  <xsl:call-template name="slides.titlepage"/></xsl:template><xsl:template name="page.template">  <xsl:param name="mode" select="'normal'"/>  <xsl:param name="title">    <xsl:call-template name="get.title"/>  </xsl:param>  <xsl:param name="subtitle">    <xsl:call-template name="get.subtitle"/>  </xsl:param>  <fo:page-sequence master-reference="slides-foil" xsl:use-attribute-sets="foil.page-sequence.properties">    <xsl:attribute name="language">      <xsl:call-template name="l10n.language"/>    </xsl:attribute>    <xsl:attribute name="id">      <xsl:call-template name="object.id"/>    </xsl:attribute>    <fo:static-content flow-name="xsl-region-before-foil">      <fo:block xsl:use-attribute-sets="foil.header.properties">        <fo:block xsl:use-attribute-sets="foil.title.properties">          <xsl:value-of select="$title"/>        </fo:block>        <fo:block xsl:use-attribute-sets="foil.subtitle.properties">          <xsl:value-of select="$subtitle"/>       </fo:block>      </fo:block>    </fo:static-content>    <fo:static-content flow-name="xsl-region-before-foil-continued">      <fo:block xsl:use-attribute-sets="foil.header.properties">        <fo:block xsl:use-attribute-sets="foil.title.properties">          <xsl:value-of select="$title"/>          <xsl:text> </xsl:text>          <xsl:call-template name="gentext">            <xsl:with-param name="key" select="'Continued'"/>          </xsl:call-template>	</fo:block>      </fo:block>    </fo:static-content>    <fo:static-content flow-name="xsl-region-after-foil">      <xsl:call-template name="generate.footer"/>    </fo:static-content>    <fo:static-content flow-name="xsl-region-after-foil-continued">      <xsl:call-template name="generate.footer"/>    </fo:static-content>    <fo:flow flow-name="xsl-region-body">      <fo:block xsl:use-attribute-sets="foil.properties">	<xsl:choose>	  <xsl:when test="$mode = 'normal'">	    <xsl:apply-templates select="*[not(self::dbs:foil)][not(self::db:info)][not(self::db:title)][not(self::db:titleabbrev)][not(self::db:subtitle)][not(self::dbs:speakernotes)][not(self::dbs:handoutnotes)]"/>	    <xsl:if test="self::dbs:foilgroup and ($generate.foilgroup.toc != 0)">	      <xsl:call-template name="foilgroup.generate.toc"/>	    </xsl:if>	  </xsl:when>	  <xsl:when test="$mode = 'speakernotes'">	    <xsl:apply-templates select="dbs:speakernotes"/>	  </xsl:when>	  <xsl:when test="$mode = 'handoutnotes'">	    <xsl:apply-templates select="dbs:handoutnotes"/>	  </xsl:when>	</xsl:choose>      </fo:block>    </fo:flow>  </fo:page-sequence></xsl:template><xsl:template match="dbs:foil|dbs:foilgroup">  <xsl:call-template name="page.template"/>  <xsl:call-template name="generate.slide.notes"/>  <xsl:if test="self::dbs:foilgroup">    <xsl:apply-templates select="dbs:foil"/>  </xsl:if></xsl:template><xsl:template name="generate.slide.notes">  <xsl:variable name="subtitle.handoutnotes">    <xsl:call-template name="gentext">      <xsl:with-param name="key" select="'Handoutnotes'"/>    </xsl:call-template>  </xsl:variable>  <xsl:variable name="subtitle.speakernotes">    <xsl:call-template name="gentext">      <xsl:with-param name="key" select="'Speakernotes'"/>    </xsl:call-template>  </xsl:variable>  <xsl:if test="($generate.handoutnotes != 0) and ./dbs:handoutnotes">    <xsl:call-template name="page.template">      <xsl:with-param name="mode" select="'handoutnotes'"/>      <xsl:with-param name="subtitle" select="$subtitle.handoutnotes"/>    </xsl:call-template>  </xsl:if>  <xsl:if test="($generate.speakernotes != 0) and ./dbs:speakernotes">    <xsl:call-template name="page.template">      <xsl:with-param name="mode" select="'speakernotes'"/>      <xsl:with-param name="subtitle" select="$subtitle.speakernotes"/>    </xsl:call-template>  </xsl:if></xsl:template><xsl:template match="dbs:handoutnotes">  <fo:block xsl:use-attribute-sets="handoutnotes.properties">    <xsl:apply-templates/>  </fo:block></xsl:template><xsl:template match="dbs:speakernotes">  <fo:block xsl:use-attribute-sets="speakernotes.properties">    <xsl:apply-templates/>  </fo:block></xsl:template><xsl:template match="dbs:block">  <xsl:apply-templates/></xsl:template><xsl:template name="generate.footer"><fo:block xsl:use-attribute-sets="foil.footer.properties">  <fo:table>    <fo:table-column column-number="1" column-width="33%"/>    <fo:table-column column-number="2" column-width="34%"/>    <fo:table-column column-number="3" column-width="33%"/>    <fo:table-body>      <fo:table-row height="14pt">	<fo:table-cell text-align="left">	  <xsl:call-template name="footer.left"/>	</fo:table-cell>	<fo:table-cell text-align="center">	  <xsl:call-template name="footer.center"/>	</fo:table-cell>	<fo:table-cell text-align="right">	  <xsl:call-template name="footer.right"/>	</fo:table-cell>      </fo:table-row>    </fo:table-body>  </fo:table></fo:block></xsl:template><xsl:template name="footer.left">  <fo:block/></xsl:template><xsl:template name="footer.center">  <xsl:if test="($generate.copyright != 0) and /dbs:slides/db:info/db:copyright">    <fo:block>      <xsl:call-template name="gentext">	<xsl:with-param name="key" select="'Copyright'"/>      </xsl:call-template>      <xsl:call-template name="gentext.space"/>      <xsl:text>©</xsl:text>      <xsl:call-template name="gentext.space"/>      <xsl:value-of select="/dbs:slides/db:info/db:copyright/db:year"/>      <xsl:call-template name="gentext.space"/>      <xsl:value-of select="/dbs:slides/db:info/db:copyright/db:holder"/>    </fo:block>  </xsl:if>  <xsl:if test="($generate.pubdate != 0) and /dbs:slides/db:info/db:pubdate">    <xsl:call-template name="slide.pubdate"/>  </xsl:if></xsl:template><xsl:template name="footer.right">  <fo:block>    <xsl:if test="$generate.page.number != 'no'">      <fo:page-number/>    </xsl:if>    <xsl:if test="$generate.page.number = 'full'">      <xsl:text> / </xsl:text>      <fo:page-number-citation>	<xsl:attribute name="ref-id">	  <xsl:call-template name="object.id">	    <xsl:with-param name="object" select="(//dbs:foilgroup|//dbs:foil)[last()]"/>	  </xsl:call-template>	</xsl:attribute>      </fo:page-number-citation>    </xsl:if>  </fo:block></xsl:template><xsl:template name="slide.pubdate">  <fo:block>    <xsl:call-template name="gentext">      <xsl:with-param name="key" select="'Published'"/>    </xsl:call-template>    <xsl:text>: </xsl:text>    <xsl:value-of select="/dbs:slides/db:info/db:pubdate"/>  </fo:block></xsl:template><xsl:template name="foilgroup.generate.toc">  <xsl:choose>    <xsl:when test="$generate.foilgroup.numbered.toc != 0">      <fo:list-block xsl:use-attribute-sets="list.block.spacing orderedlist.properties">	<xsl:for-each select="./dbs:foil">	  <fo:list-item xsl:use-attribute-sets="list.item.spacing">	    <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="orderedlist.label.properties">	      <fo:block>		<xsl:value-of select="position()"/>	      </fo:block>	    </fo:list-item-label>	    <fo:list-item-body start-indent="body-start()">	      <fo:block>		<xsl:call-template name="get.title"/>	      </fo:block>	    </fo:list-item-body>	  </fo:list-item>	</xsl:for-each>      </fo:list-block>    </xsl:when>    <xsl:otherwise>      <fo:list-block xsl:use-attribute-sets="list.block.spacing itemizedlist.properties">        <xsl:for-each select="./dbs:foil">          <fo:list-item xsl:use-attribute-sets="list.item.spacing">            <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="itemizedlist.label.properties">              <fo:block>		<xsl:call-template name="itemizedlist.label.markup">		  <xsl:with-param name="itemsymbol">		    <xsl:call-template name="list.itemsymbol"/>		  </xsl:with-param>		</xsl:call-template>              </fo:block>            </fo:list-item-label>            <fo:list-item-body start-indent="body-start()">              <fo:block>                <xsl:call-template name="get.title"/>              </fo:block>            </fo:list-item-body>          </fo:list-item>        </xsl:for-each>      </fo:list-block>    </xsl:otherwise>  </xsl:choose></xsl:template><xsl:template match="*[namespace-uri() = 'http://www.w3.org/2000/svg']">  <xsl:call-template name="handle.embedded">    <xsl:with-param name="modeParam" select="$svg.embedding.mode"/>    <xsl:with-param name="fileExt" select="'.svg'"/>  </xsl:call-template></xsl:template><xsl:template match="*[namespace-uri() = 'http://www.w3.org/1998/Math/MathML']">  <xsl:call-template name="handle.embedded">    <xsl:with-param name="modeParam" select="$mml.embedding.mode"/>    <xsl:with-param name="fileExt" select="'.mml'"/>  </xsl:call-template></xsl:template><xsl:template name="handle.embedded">  <xsl:param name="modeParam">inline</xsl:param>  <xsl:param name="fileExt"/>  <xsl:choose>    <xsl:when test="$modeParam = 'inline'">      <xsl:copy-of select="."/>    </xsl:when>    <xsl:when test="$modeParam = 'instream-foreign-object'">      <fo:instream-foreign-object>	<xsl:copy-of select="."/>      </fo:instream-foreign-object>    </xsl:when>    <xsl:otherwise>      <xsl:variable name="id">        <xsl:call-template name="object.id"/>      </xsl:variable>      <xsl:variable name="fname">        <xsl:value-of select="concat($id, $fileExt)"/>      </xsl:variable>      <xsl:variable name="prefix">url('</xsl:variable>      <xsl:variable name="suffix">')</xsl:variable>      <xsl:variable name="file.uri">	<xsl:value-of select="concat($prefix, $fname, $suffix)"/>      </xsl:variable>      <exsl:document href="{$fname}">        <xsl:copy-of select="."/>        <xsl:fallback>          <xsl:message terminate="yes">            Your XSLT processor does not support exsl:document.            You can only use inline SVG images.          </xsl:message>        </xsl:fallback>      </exsl:document>      <xsl:choose>        <xsl:when test="$modeParam = 'external-graphic'">	  <fo:external-graphic src="{$file.uri}"/>        </xsl:when>	<xsl:otherwise>	  <xsl:message terminate="yes">	    Unknown processing mode <xsl:value-of select="$modeParam"/>.	  </xsl:message>	</xsl:otherwise>      </xsl:choose>    </xsl:otherwise>  </xsl:choose></xsl:template><xsl:template match="dbs:foil|dbs:foilgroup" mode="xref-to">  <xsl:param name="referrer"/>  <xsl:param name="xrefstyle"/>  <xsl:apply-templates select="." mode="object.xref.markup">    <xsl:with-param name="purpose" select="'xref'"/>    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>    <xsl:with-param name="referrer" select="$referrer"/>  </xsl:apply-templates></xsl:template></xsl:stylesheet>
 |