| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 | <?xml version='1.0'?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"                xmlns:fox="http://xmlgraphics.apache.org/fop/extensions"                xmlns:fo="http://www.w3.org/1999/XSL/Format"                version='1.0'><!-- ********************************************************************     $Id: fop1.xsl 9293 2012-04-19 18:42:11Z bobstayton $     ********************************************************************     This file is part of the XSL DocBook Stylesheet distribution.     See ../README or http://docbook.sf.net/release/xsl/current/ for     copyright and other information.     ******************************************************************** --><!-- ==================================================================== --><xsl:variable name="bookmarks.state">  <xsl:choose>    <xsl:when test="$bookmarks.collapse != 0">hide</xsl:when>    <xsl:otherwise>show</xsl:otherwise>  </xsl:choose></xsl:variable><xsl:template match="*" mode="fop1.outline">  <xsl:apply-templates select="*" mode="fop1.outline"/></xsl:template><xsl:template match="set|book|part|reference|                     preface|chapter|appendix|article|topic                     |glossary|bibliography|index|setindex                     |refentry                     |sect1|sect2|sect3|sect4|sect5|section"              mode="fop1.outline">  <xsl:variable name="id">    <xsl:call-template name="object.id"/>  </xsl:variable>  <xsl:variable name="bookmark-label">    <xsl:apply-templates select="." mode="object.title.markup"/>  </xsl:variable>  <!-- Put the root element bookmark at the same level as its children -->  <!-- If the object is a set or book, generate a bookmark for the toc -->  <xsl:choose>    <xsl:when test="self::index and $generate.index = 0"/>	    <xsl:when test="parent::*">      <fo:bookmark internal-destination="{$id}">	<xsl:attribute name="starting-state">	  <xsl:value-of select="$bookmarks.state"/>	</xsl:attribute>        <fo:bookmark-title>          <xsl:value-of select="normalize-space($bookmark-label)"/>        </fo:bookmark-title>        <xsl:apply-templates select="*" mode="fop1.outline"/>      </fo:bookmark>    </xsl:when>    <xsl:otherwise>      <fo:bookmark internal-destination="{$id}">	<xsl:attribute name="starting-state">	  <xsl:value-of select="$bookmarks.state"/>	</xsl:attribute>        <fo:bookmark-title>          <xsl:value-of select="normalize-space($bookmark-label)"/>        </fo:bookmark-title>      </fo:bookmark>      <xsl:variable name="toc.params">        <xsl:call-template name="find.path.params">          <xsl:with-param name="table" select="normalize-space($generate.toc)"/>        </xsl:call-template>      </xsl:variable>      <xsl:if test="contains($toc.params, 'toc')                    and (book|part|reference|preface|chapter|appendix|article|topic                         |glossary|bibliography|index|setindex                         |refentry                         |sect1|sect2|sect3|sect4|sect5|section)">        <fo:bookmark internal-destination="toc...{$id}">          <fo:bookmark-title>            <xsl:call-template name="gentext">              <xsl:with-param name="key" select="'TableofContents'"/>            </xsl:call-template>          </fo:bookmark-title>        </fo:bookmark>      </xsl:if>      <xsl:apply-templates select="*" mode="fop1.outline"/>    </xsl:otherwise>  </xsl:choose><!--  <fo:bookmark internal-destination="{$id}"/>--></xsl:template><xsl:template match="*" mode="fop1.foxdest">  <xsl:apply-templates select="*" mode="fop1.foxdest"/></xsl:template><xsl:template match="set|book|part|reference|                     preface|chapter|appendix|article|topic                     |glossary|bibliography|index|setindex                     |refentry                     |sect1|sect2|sect3|sect4|sect5|section"              mode="fop1.foxdest">  <xsl:variable name="id">    <xsl:call-template name="object.id"/>  </xsl:variable>  <xsl:variable name="bookmark-label">    <xsl:apply-templates select="." mode="object.title.markup"/>  </xsl:variable>  <!--xsl:if test="$id != ''">    <fox:destination internal-destination="{$id}"/>  </xsl:if-->  <!-- Put the root element bookmark at the same level as its children -->  <!-- If the object is a set or book, generate a bookmark for the toc -->  <xsl:choose>    <xsl:when test="self::index and $generate.index = 0"/>	    <xsl:when test="parent::*">      <fox:destination internal-destination="{$id}"/>        <xsl:apply-templates select="*" mode="fop1.foxdest"/>    </xsl:when>    <xsl:otherwise>      <fox:destination internal-destination="{$id}"/>      <xsl:apply-templates select="*" mode="fop1.foxdest"/>    </xsl:otherwise>  </xsl:choose></xsl:template><!-- Metadata support ("Document Properties" in Adobe Reader) --><xsl:template name="fop1-document-information">  <xsl:variable name="authors" select="(//author|//editor|//corpauthor|//authorgroup)[1]"/>  <xsl:variable name="title">    <xsl:apply-templates select="/*[1]" mode="label.markup"/>    <xsl:apply-templates select="/*[1]" mode="title.markup"/>    <xsl:variable name="subtitle">      <xsl:apply-templates select="/*[1]" mode="subtitle.markup">        <xsl:with-param name="verbose" select="0"/>      </xsl:apply-templates>    </xsl:variable>    <xsl:if test="$subtitle !=''">      <xsl:text> - </xsl:text>      <xsl:value-of select="$subtitle"/>    </xsl:if>  </xsl:variable>  <fo:declarations>    <x:xmpmeta xmlns:x="adobe:ns:meta/">      <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">        <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">          <!-- Dublin Core properties go here -->          <!-- Title -->          <dc:title><xsl:value-of select="normalize-space($title)"/></dc:title>          <!-- Author -->	  <xsl:if test="$authors">	    <xsl:variable name="author">	      <xsl:choose>		<xsl:when test="$authors[self::authorgroup]">                  <xsl:call-template name="person.name.list">                    <xsl:with-param name="person.list"                        select="$authors/*[self::author|self::corpauthor|                                     self::othercredit|self::editor]"/>                  </xsl:call-template>                </xsl:when>                <xsl:when test="$authors[self::corpauthor]">                  <xsl:value-of select="$authors"/>                </xsl:when>                <xsl:when test="$authors[orgname]">                  <xsl:value-of select="$authors/orgname"/>                </xsl:when>                <xsl:otherwise>                  <xsl:call-template name="person.name">                    <xsl:with-param name="node" select="$authors"/>                  </xsl:call-template>                </xsl:otherwise>              </xsl:choose>            </xsl:variable>            <dc:creator><xsl:value-of select="normalize-space($author)"/></dc:creator>          </xsl:if>          <!-- Subject -->          <xsl:if test="//subjectterm">            <dc:description>              <xsl:for-each select="//subjectterm">                <xsl:value-of select="normalize-space(.)"/>                <xsl:if test="position() != last()">                  <xsl:text>, </xsl:text>                </xsl:if>              </xsl:for-each>            </dc:description>          </xsl:if>        </rdf:Description>        <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">          <!-- PDF properties go here -->          <!-- Keywords -->          <xsl:if test="//keyword">            <pdf:Keywords>              <xsl:for-each select="//keyword">                <xsl:value-of select="normalize-space(.)"/>                <xsl:if test="position() != last()">                  <xsl:text>, </xsl:text>                </xsl:if>              </xsl:for-each>            </pdf:Keywords>          </xsl:if>        </rdf:Description>        <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">          <!-- XMP properties go here -->          <!-- Creator Tool -->          <xmp:CreatorTool>DocBook XSL Stylesheets with Apache FOP</xmp:CreatorTool>        </rdf:Description>      </rdf:RDF>    </x:xmpmeta>  </fo:declarations></xsl:template></xsl:stylesheet>
 |