Blame xsl/biblio.xsl

Packit 0f19cf
Packit 0f19cf
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
    XSLT Stylesheet DocBook -> LaTeX 
Packit 0f19cf
    ############################################################################ -->
Packit 0f19cf
<xsl:param name="bibliography.tocdepth">5</xsl:param>
Packit 0f19cf
<xsl:param name="bibliography.numbered">1</xsl:param>
Packit 0f19cf
<xsl:param name="biblioentry.numbered" select="0"/>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     # biblio setup #
Packit 0f19cf
     ################ -->
Packit 0f19cf
Packit 0f19cf
<xsl:template name="biblio.setup">
Packit 0f19cf
  <xsl:if test="$latex.biblio.style!='' and //bibliography">
Packit 0f19cf
    <xsl:text>\bibliographystyle{</xsl:text>
Packit 0f19cf
    <xsl:value-of select="$latex.biblio.style"/>
Packit 0f19cf
    <xsl:text>}
</xsl:text>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     # biblio section #
Packit 0f19cf
     ################## -->
Packit 0f19cf
Packit 0f19cf
<xsl:template name="biblio.insert.title">
Packit 0f19cf
  <xsl:param name="level" select="0"/>
Packit 0f19cf
Packit 0f19cf
  <xsl:variable name="title.node" select="(title|bibliographyinfo/title)[1]"/>
Packit 0f19cf
  <xsl:variable name="title.text">
Packit 0f19cf
    <xsl:choose>
Packit 0f19cf
    <xsl:when test="ancestor::article">
Packit 0f19cf
      <xsl:text>\refname</xsl:text>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <xsl:text>\bibname</xsl:text>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
    </xsl:choose>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="self::bibliography and number($bibliography.numbered) = 0">
Packit 0f19cf
    
Packit 0f19cf
    <xsl:call-template name="section.unnumbered.begin">
Packit 0f19cf
      <xsl:with-param name="tocdepth" select="number($bibliography.tocdepth)"/>
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
      <xsl:with-param name="title" select="$title.text"/>
Packit 0f19cf
      <xsl:with-param name="titlenode" select="$title.node"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="$title.node">
Packit 0f19cf
    
Packit 0f19cf
    <xsl:call-template name="makeheading">
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
      <xsl:with-param name="allnum" select="'1'"/>
Packit 0f19cf
      <xsl:with-param name="title" select="$title.node"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:otherwise>
Packit 0f19cf
    
Packit 0f19cf
    <xsl:call-template name="maketitle">
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
      <xsl:with-param name="allnum" select="'1'"/>
Packit 0f19cf
      <xsl:with-param name="title" select="$title.text"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template name="biblio.section.end">
Packit 0f19cf
  <xsl:if test="self::bibliography and number($bibliography.numbered) = 0">
Packit 0f19cf
    
Packit 0f19cf
    <xsl:call-template name="section.unnumbered.end">
Packit 0f19cf
      <xsl:with-param name="tocdepth" select="number($bibliography.tocdepth)"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template name="biblioentry.process">
Packit 0f19cf
  <xsl:param name="level"/>
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  
Packit 0f19cf
                  bibliomixed[processing-instruction('bibtex')]">
Packit 0f19cf
    <xsl:call-template name="bibtex.process">
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:otherwise>
Packit 0f19cf
    <xsl:call-template name="bibentries.process">
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template name="bibentries.process">
Packit 0f19cf
  <xsl:param name="level"/>
Packit 0f19cf
Packit 0f19cf
  <xsl:text>\begin{btSect}{}
</xsl:text>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:if test="$level >= 0">
Packit 0f19cf
    <xsl:call-template name="biblio.insert.title">
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
Packit 0f19cf
  <xsl:text>\begin{bibgroup}
</xsl:text>
Packit 0f19cf
  <xsl:text>\begin{thebibliography}{</xsl:text>
Packit 0f19cf
  <xsl:value-of select="$latex.bibwidelabel"/>
Packit 0f19cf
  <xsl:text>}
</xsl:text>
Packit 0f19cf
  <xsl:if test="biblioentry">
Packit 0f19cf
    <xsl:choose>
Packit 0f19cf
    <xsl:when test="$latex.biblio.output ='cited'">
Packit 0f19cf
      <xsl:apply-templates select="biblioentry" mode="bibliography.cited">
Packit 0f19cf
        <xsl:sort select="./abbrev"/>
Packit 0f19cf
        <xsl:sort select="./@xreflabel"/>
Packit 0f19cf
        <xsl:sort select="./@id"/>
Packit 0f19cf
      </xsl:apply-templates>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <xsl:apply-templates select="biblioentry">
Packit 0f19cf
        <xsl:sort select="./abbrev"/>
Packit 0f19cf
        <xsl:sort select="./@xreflabel"/>
Packit 0f19cf
        <xsl:sort select="./@id"/>
Packit 0f19cf
      </xsl:apply-templates>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
    </xsl:choose>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  <xsl:if test="bibliomixed">
Packit 0f19cf
    <xsl:apply-templates select="bibliomixed"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  <xsl:text>
\end{thebibliography}
</xsl:text>
Packit 0f19cf
  <xsl:text>\end{bibgroup}
</xsl:text>
Packit 0f19cf
  <xsl:if test="$level >= 0">
Packit 0f19cf
    <xsl:call-template name="biblio.section.end"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  <xsl:text>\end{btSect}
</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     # bibtex files #
Packit 0f19cf
     ################ -->
Packit 0f19cf
Packit 0f19cf
<xsl:template name="bibtex.process">
Packit 0f19cf
  <xsl:param name="level"/>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:variable name="bibfiles">
Packit 0f19cf
    <xsl:call-template name="pi.bibtex_bibfiles">
Packit 0f19cf
      <xsl:with-param name="node" select="bibliomixed"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:variable name="bibstyle">
Packit 0f19cf
    <xsl:call-template name="pi.bibtex_bibstyle">
Packit 0f19cf
      <xsl:with-param name="node" select="bibliomixed"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:variable name="print">
Packit 0f19cf
    <xsl:call-template name="pi.bibtex_mode">
Packit 0f19cf
      <xsl:with-param name="node" select="bibliomixed"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
Packit 0f19cf
  <xsl:text>\begin{btSect}</xsl:text>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:if test="$bibstyle!=''">
Packit 0f19cf
    <xsl:text>[</xsl:text>
Packit 0f19cf
    <xsl:value-of select="$bibstyle"/>
Packit 0f19cf
    <xsl:text>]</xsl:text>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:text>{</xsl:text>
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="$bibfiles!=''">
Packit 0f19cf
    <xsl:value-of select="$bibfiles"/>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:otherwise>
Packit 0f19cf
    <xsl:value-of select="$latex.bibfiles"/>
Packit 0f19cf
  </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
  <xsl:text>}
</xsl:text>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:if test="$level >= 0">
Packit 0f19cf
    <xsl:call-template name="biblio.insert.title">
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:apply-templates select="*[not(self::bibliomixed)]"/>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="$print='cited'">
Packit 0f19cf
    <xsl:text>\btPrintCited
</xsl:text>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="$print='notcited'">
Packit 0f19cf
    <xsl:text>\btPrintNotCited
</xsl:text>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="$print='all'">
Packit 0f19cf
    <xsl:text>\btPrintAll
</xsl:text>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="$latex.biblio.output='cited'">
Packit 0f19cf
    <xsl:text>\btPrintCited
</xsl:text>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="$latex.biblio.output='notcited'">
Packit 0f19cf
    <xsl:text>\btPrintNotCited
</xsl:text>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:otherwise>
Packit 0f19cf
    <xsl:text>\btPrintAll
</xsl:text>
Packit 0f19cf
  </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
Packit 0f19cf
  <xsl:if test="$level >= 0">
Packit 0f19cf
    <xsl:call-template name="biblio.section.end"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
Packit 0f19cf
  <xsl:text>\end{btSect}
</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     # bibliography #
Packit 0f19cf
     ################ -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="bibliography">
Packit 0f19cf
  
Packit 0f19cf
  <xsl:message>Processing Bibliography</xsl:message>
Packit 0f19cf
  <xsl:message><xsl:text>Output Mode: </xsl:text>
Packit 0f19cf
    <xsl:value-of select="$latex.biblio.output"/>
Packit 0f19cf
  </xsl:message>
Packit 0f19cf
  -->
Packit 0f19cf
  <xsl:text>% ------------------------------------------- 
</xsl:text>
Packit 0f19cf
  <xsl:text>% Bibliography
</xsl:text>
Packit 0f19cf
  <xsl:text>% ------------------------------------------- 
</xsl:text>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:variable name="level">
Packit 0f19cf
    <xsl:call-template name="get.sect.level"/>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="biblioentry|bibliomixed">
Packit 0f19cf
    
Packit 0f19cf
    <xsl:call-template name="biblioentry.process">
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:otherwise>
Packit 0f19cf
    
Packit 0f19cf
    <xsl:call-template name="biblio.insert.title">
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
  <xsl:apply-templates select="bibliodiv"/> 
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:if test="not(biblioentry|bibliomixed)">
Packit 0f19cf
    <xsl:call-template name="biblio.section.end"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="bibliography/title"/>
Packit 0f19cf
<xsl:template match="bibliography/subtitle"/>
Packit 0f19cf
<xsl:template match="bibliography/titleabbrev"/>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     #  bibliodiv  #
Packit 0f19cf
     ############### -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="bibliodiv">
Packit 0f19cf
  <xsl:variable name="level">
Packit 0f19cf
    <xsl:call-template name="get.sect.level">
Packit 0f19cf
      <xsl:with-param name="n" select="parent::bibliography"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:call-template name="biblioentry.process">
Packit 0f19cf
    <xsl:with-param name="level" select="$level+1"/>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="bibliodiv/title"/>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     #  bibliolist #
Packit 0f19cf
     ############### -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="bibliolist">
Packit 0f19cf
  <xsl:call-template name="biblioentry.process">
Packit 0f19cf
    <xsl:with-param name="level" select="'-1'"/>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="bibliodiv/title"/>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     # biblioentry #
Packit 0f19cf
     ############### -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="biblioentry" mode="bibliography.cited">
Packit 0f19cf
  <xsl:param name="bibid" select="@id"/>
Packit 0f19cf
  <xsl:param name="ab">
Packit 0f19cf
    <xsl:call-template name="bibitem.label"/>
Packit 0f19cf
  </xsl:param>
Packit 0f19cf
  <xsl:variable name="nx" select="//xref[@linkend=$bibid]"/>
Packit 0f19cf
  <xsl:variable name="nc" select="//citation[text()=$ab]"/>
Packit 0f19cf
  <xsl:if test="count($nx) > 0 or count($nc) > 0">
Packit 0f19cf
    <xsl:call-template name="biblioentry.output"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="biblioentry" mode="bibliography.all">
Packit 0f19cf
  <xsl:call-template name="biblioentry.output"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="biblioentry">
Packit 0f19cf
  <xsl:call-template name="biblioentry.output"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="biblioentry/title">
Packit 0f19cf
  <xsl:text>\emph{</xsl:text>
Packit 0f19cf
  <xsl:apply-templates/>
Packit 0f19cf
  <xsl:text>}</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template name="bibitem.label">
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="@xreflabel">
Packit 0f19cf
    <xsl:value-of select="normalize-space(@xreflabel)"/> 
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="abbrev">
Packit 0f19cf
    <xsl:apply-templates select="abbrev" mode="biblio.label.mode"/> 
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="@id">
Packit 0f19cf
    <xsl:value-of select="normalize-space(@id)"/> 
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template name="bibitem.id">
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="@xreflabel">
Packit 0f19cf
    <xsl:value-of select="normalize-space(@xreflabel)"/> 
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="abbrev">
Packit 0f19cf
    <xsl:apply-templates select="abbrev" mode="biblio.label.mode"/> 
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="@id">
Packit 0f19cf
    <xsl:value-of select="normalize-space(@id)"/> 
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:otherwise>
Packit 0f19cf
    <xsl:value-of select="generate-id()"/>
Packit 0f19cf
  </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="abbrev" mode="biblio.label.mode"> 
Packit 0f19cf
  <xsl:value-of select="."/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template name="bibitem">
Packit 0f19cf
  <xsl:variable name="tag">
Packit 0f19cf
    <xsl:call-template name="bibitem.label"/>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:text>
</xsl:text>
Packit 0f19cf
  <xsl:text>\bibitem</xsl:text>
Packit 0f19cf
  <xsl:if test="$tag != '' and $biblioentry.numbered = 0">
Packit 0f19cf
    <xsl:text>[</xsl:text>
Packit 0f19cf
    <xsl:call-template name="normalize-scape">
Packit 0f19cf
      <xsl:with-param name="string" select="$tag"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
    <xsl:text>]</xsl:text> 
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  <xsl:text>{</xsl:text>
Packit 0f19cf
  <xsl:call-template name="bibitem.id"/>
Packit 0f19cf
  <xsl:text>}</xsl:text>
Packit 0f19cf
  
Packit 0f19cf
  <xsl:call-template name="label.id">
Packit 0f19cf
    <xsl:with-param name="inline" select="1"/>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
  <xsl:text>
</xsl:text> 
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template name="biblioentry.output">
Packit 0f19cf
  <xsl:call-template name="bibitem"/>
Packit 0f19cf
  
Packit 0f19cf
  
Packit 0f19cf
                                    volumenum|
Packit 0f19cf
                                    edition|
Packit 0f19cf
                                    address|
Packit 0f19cf
                                    copyright|
Packit 0f19cf
                                    publisher|
Packit 0f19cf
                                    date|
Packit 0f19cf
                                    pubdate|
Packit 0f19cf
                                    pagenums|
Packit 0f19cf
                                    isbn|
Packit 0f19cf
                                    issn|
Packit 0f19cf
                                    biblioid|
Packit 0f19cf
                                    releaseinfo|
Packit 0f19cf
                                    pubsnumber"/>
Packit 0f19cf
  <xsl:apply-templates select="author|authorgroup" mode="bibliography.mode"/>
Packit 0f19cf
  <xsl:if test="title">
Packit 0f19cf
    <xsl:if test="author|authorgroup">
Packit 0f19cf
      <xsl:value-of select="$biblioentry.item.separator"/>
Packit 0f19cf
    </xsl:if>
Packit 0f19cf
    <xsl:apply-templates select="title"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  <xsl:if test="$data">
Packit 0f19cf
    <xsl:for-each select="$data">
Packit 0f19cf
      <xsl:value-of select="$biblioentry.item.separator"/>
Packit 0f19cf
      <xsl:apply-templates select="." mode="bibliography.mode"/> 
Packit 0f19cf
    </xsl:for-each>
Packit 0f19cf
    <xsl:text>.</xsl:text>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  
Packit 0f19cf
  <xsl:for-each select="biblioset">
Packit 0f19cf
    <xsl:text>

</xsl:text>
Packit 0f19cf
    <xsl:apply-templates select="." mode="bibliography.mode"/>
Packit 0f19cf
  </xsl:for-each>
Packit 0f19cf
  <xsl:text>
</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="bibliomixed">
Packit 0f19cf
  <xsl:call-template name="bibitem"/>
Packit 0f19cf
  <xsl:apply-templates select="." mode="bibliography.mode"/>
Packit 0f19cf
  <xsl:text>
</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="text()" mode="bibliography.mode">
Packit 0f19cf
  <xsl:apply-templates select="."/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="*" mode="bibliography.mode">
Packit 0f19cf
  <xsl:apply-templates mode="bibliography.mode"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="ulink" mode="bibliography.mode">
Packit 0f19cf
  <xsl:apply-templates select="."/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="abbrev" mode="bibliography.mode"/>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="anchor" mode="bibliography.mode">
Packit 0f19cf
  <xsl:apply-templates select="."/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="biblioset" mode="bibliography.mode">
Packit 0f19cf
  <xsl:if test="author|authorgroup">
Packit 0f19cf
    <xsl:apply-templates select="author|authorgroup" mode="bibliography.mode"/>
Packit 0f19cf
    <xsl:value-of select="$biblioentry.item.separator"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  <xsl:apply-templates select="title|citetitle" mode="bibliography.mode"/>
Packit 0f19cf
  
Packit 0f19cf
                        volumenum|
Packit 0f19cf
                        edition|
Packit 0f19cf
                        address|
Packit 0f19cf
                        copyright|
Packit 0f19cf
                        publisher|
Packit 0f19cf
                        date|
Packit 0f19cf
                        pubdate|
Packit 0f19cf
                        pagenums|
Packit 0f19cf
                        isbn|
Packit 0f19cf
                        issn|
Packit 0f19cf
                        biblioid|
Packit 0f19cf
                        pubsnumber">
Packit 0f19cf
    <xsl:value-of select="$biblioentry.item.separator"/>
Packit 0f19cf
    <xsl:apply-templates select="." mode="bibliography.mode"/> 
Packit 0f19cf
  </xsl:for-each>
Packit 0f19cf
  <xsl:text>.</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
              mode="bibliography.mode">
Packit 0f19cf
  <xsl:variable name="relation" select="../@relation"/>
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
    <xsl:when test="$relation='article' or @pubwork='article'">
Packit 0f19cf
      <xsl:call-template name="dingbat">
Packit 0f19cf
        <xsl:with-param name="dingbat">ldquo</xsl:with-param>
Packit 0f19cf
      </xsl:call-template>
Packit 0f19cf
      <xsl:apply-templates/>
Packit 0f19cf
      <xsl:call-template name="dingbat">
Packit 0f19cf
        <xsl:with-param name="dingbat">rdquo</xsl:with-param>
Packit 0f19cf
      </xsl:call-template>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <xsl:apply-templates/>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="biblioid" mode="bibliography.mode">
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
    <xsl:when test="@class='doi'">
Packit 0f19cf
      <xsl:text>DOI</xsl:text>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:when test="@class='isbn'">
Packit 0f19cf
      <xsl:text>ISBN</xsl:text>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:when test="@class='issn'">
Packit 0f19cf
      <xsl:text>ISSN</xsl:text>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <xsl:message>
Packit 0f19cf
        <xsl:text>The biblioid class '</xsl:text>
Packit 0f19cf
        <xsl:value-of select="@class"/>
Packit 0f19cf
        <xsl:text>' not supported!</xsl:text>
Packit 0f19cf
      </xsl:message>
Packit 0f19cf
      <xsl:value-of select="@class"/>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
  <xsl:text> </xsl:text>
Packit 0f19cf
  <xsl:apply-templates/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="author" mode="bibliography.mode">
Packit 0f19cf
  <xsl:variable name="authorsstring">
Packit 0f19cf
    <xsl:call-template name="person.name"/>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:value-of select="normalize-space($authorsstring)"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="authorgroup" mode="bibliography.mode">
Packit 0f19cf
  <xsl:variable name="authorsstring">
Packit 0f19cf
    <xsl:call-template name="person.name.list"/>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:value-of select="normalize-space($authorsstring)"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="editor" mode="bibliography.mode">
Packit 0f19cf
  <xsl:call-template name="person.name"/>
Packit 0f19cf
  <xsl:value-of select="$biblioentry.item.separator"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="copyright" mode="bibliography.mode">
Packit 0f19cf
  <xsl:call-template name="gentext.element.name"/>
Packit 0f19cf
  <xsl:call-template name="gentext.space"/>
Packit 0f19cf
  <xsl:call-template name="dingbat">
Packit 0f19cf
    <xsl:with-param name="dingbat">copyright</xsl:with-param>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
  <xsl:call-template name="gentext.space"/>
Packit 0f19cf
  <xsl:apply-templates select="year" mode="bibliography.mode"/>
Packit 0f19cf
  <xsl:if test="holder">
Packit 0f19cf
    <xsl:call-template name="gentext.space"/>
Packit 0f19cf
    <xsl:apply-templates select="holder" mode="bibliography.mode"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="year" mode="bibliography.mode">
Packit 0f19cf
  <xsl:apply-templates/>
Packit 0f19cf
  <xsl:if test="position()!=last()">
Packit 0f19cf
    <xsl:text>, </xsl:text>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="publisher" mode="bibliography.mode">
Packit 0f19cf
  <xsl:apply-templates select="publishername" mode="bibliography.mode"/>
Packit 0f19cf
  <xsl:for-each select="address">
Packit 0f19cf
    <xsl:value-of select="$biblioentry.item.separator"/>
Packit 0f19cf
    <xsl:apply-templates select="." mode="bibliography.mode"/>
Packit 0f19cf
  </xsl:for-each>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
                     date|pubdate|pagenums|isbn|issn|
Packit 0f19cf
                     holder|publishername|releaseinfo|address"
Packit 0f19cf
              mode="bibliography.mode">
Packit 0f19cf
  <xsl:apply-templates/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="printhistory" mode="bibliography.mode"/>
Packit 0f19cf
<xsl:template match="abstract" mode="bibliography.mode"/>
Packit 0f19cf
<xsl:template match="authorblurb" mode="bibliography.mode"/>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
</xsl:stylesheet>