Blame xsl/glossary.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="glossary.tocdepth">5</xsl:param>
Packit 0f19cf
<xsl:param name="glossary.numbered">1</xsl:param>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     # glossary #
Packit 0f19cf
     ############ -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossary">
Packit 0f19cf
  <xsl:text>% --------	
</xsl:text>
Packit 0f19cf
  <xsl:text>% GLOSSARY	
</xsl:text>
Packit 0f19cf
  <xsl:text>% --------	
</xsl:text>
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:variable name="title.text">
Packit 0f19cf
    <xsl:call-template name="gentext">
Packit 0f19cf
      <xsl:with-param name="key" select="'Glossary'"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="$glossary.numbered = '0'">
Packit 0f19cf
    
Packit 0f19cf
    <xsl:call-template name="section.unnumbered">
Packit 0f19cf
      <xsl:with-param name="tocdepth" select="number($glossary.tocdepth)"/>
Packit 0f19cf
      <xsl:with-param name="level" select="$level"/>
Packit 0f19cf
      <xsl:with-param name="title" select="$title.text"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="title">
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:call-template>
Packit 0f19cf
    <xsl:apply-templates select="." mode="section.body"/>
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="title" select="$title.text"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
    <xsl:apply-templates select="." mode="section.body"/>
Packit 0f19cf
  </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossary" mode="section.body">
Packit 0f19cf
  <xsl:variable name="divs" select="glossdiv"/>
Packit 0f19cf
  <xsl:variable name="entries" select="glossentry"/>
Packit 0f19cf
  
Packit 0f19cf
                                          or self::subtitle
Packit 0f19cf
                                          or self::glossdiv
Packit 0f19cf
                                          or self::glossentry)]"/>
Packit 0f19cf
  <xsl:if test="$preamble">
Packit 0f19cf
    <xsl:apply-templates select="$preamble"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
Packit 0f19cf
  <xsl:if test="$entries">
Packit 0f19cf
    <xsl:text>
\noindent
</xsl:text>
Packit 0f19cf
    <xsl:text>\begin{description}
</xsl:text>
Packit 0f19cf
    <xsl:apply-templates select="$entries"/>
Packit 0f19cf
    <xsl:text>
\end{description}
</xsl:text>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
Packit 0f19cf
  <xsl:if test="$divs">
Packit 0f19cf
    <xsl:apply-templates select="$divs"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossary/glossaryinfo"/>
Packit 0f19cf
<xsl:template match="glossary/title"/>
Packit 0f19cf
<xsl:template match="glossary/subtitle"/>
Packit 0f19cf
<xsl:template match="glossary/titleabbrev"/>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     # glossdiv #
Packit 0f19cf
     ############ -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossdiv">
Packit 0f19cf
  
Packit 0f19cf
  <xsl:variable name="l">
Packit 0f19cf
    <xsl:call-template name="get.sect.level">
Packit 0f19cf
      <xsl:with-param name="n" select="parent::glossary"/>
Packit 0f19cf
    </xsl:call-template>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:call-template name="map.sect.level">
Packit 0f19cf
    <xsl:with-param name="level" select="$l+1"/>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
  <xsl:text>{</xsl:text>
Packit 0f19cf
  <xsl:call-template name="normalize-scape">
Packit 0f19cf
    <xsl:with-param name="string" select="title"/>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
  <xsl:text>}
</xsl:text>
Packit 0f19cf
  <xsl:call-template name="label.id"/>
Packit 0f19cf
Packit 0f19cf
  
Packit 0f19cf
  <xsl:apply-templates select="*[not(self::glossentry)]"/>
Packit 0f19cf
  
Packit 0f19cf
  
Packit 0f19cf
  <xsl:text>
\noindent
</xsl:text>
Packit 0f19cf
  <xsl:text>\begin{description}
</xsl:text>
Packit 0f19cf
  <xsl:apply-templates select="glossentry"/>
Packit 0f19cf
  <xsl:text>
\end{description}
</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     # glosslist #
Packit 0f19cf
     ############# -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossdiv/title" />
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glosslist">
Packit 0f19cf
  <xsl:text>
\noindent
</xsl:text>
Packit 0f19cf
  <xsl:text>\begin{description}
</xsl:text>
Packit 0f19cf
  <xsl:apply-templates/>
Packit 0f19cf
  <xsl:text>
\end{description}
</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glosslist/title" />
Packit 0f19cf
<xsl:template match="glosslist/blockinfo" />
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
     # glossentry #
Packit 0f19cf
     ############## -->
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossentry">
Packit 0f19cf
  <xsl:apply-templates select="*[not(self::glosssee or self::glossdef)]"/>
Packit 0f19cf
  <xsl:apply-templates select="glosssee|glossdef"/>
Packit 0f19cf
  <xsl:text>

</xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossentry/glossterm">
Packit 0f19cf
  <xsl:text>\item[</xsl:text>
Packit 0f19cf
  <xsl:if test="../@id or ../@xml:id">
Packit 0f19cf
    <xsl:text>\hypertarget{</xsl:text>
Packit 0f19cf
    <xsl:value-of select="(../@id|../@xml:id)[1]"/>
Packit 0f19cf
    <xsl:text>}</xsl:text>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  <xsl:text>{</xsl:text>
Packit 0f19cf
  <xsl:variable name="term">
Packit 0f19cf
    <xsl:apply-templates/>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:value-of select="normalize-space($term)"/>
Packit 0f19cf
  <xsl:text>}]~ </xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossentry/acronym">
Packit 0f19cf
  <xsl:text> (\texttt{</xsl:text><xsl:apply-templates/><xsl:text>}) </xsl:text>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
  
Packit 0f19cf
<xsl:template match="glossentry/abbrev">
Packit 0f19cf
  <xsl:text> [ </xsl:text><xsl:apply-templates/><xsl:text> ] </xsl:text> 
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossentry/revhistory"/>
Packit 0f19cf
  
Packit 0f19cf
<xsl:template match="glossentry/glossdef">
Packit 0f19cf
  <xsl:text>
</xsl:text>
Packit 0f19cf
  <xsl:apply-templates select="*[not(self::glossseealso)]"/>
Packit 0f19cf
  <xsl:apply-templates select="glossseealso"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossseealso|glosssee">
Packit 0f19cf
  <xsl:variable name="oterm" select="@otherterm"/>
Packit 0f19cf
  <xsl:variable name="targets" select="//node()[@id=$oterm or @xml:id=$oterm]"/>
Packit 0f19cf
  <xsl:variable name="target" select="$targets[1]"/>
Packit 0f19cf
  <xsl:variable name="text">
Packit 0f19cf
    <xsl:apply-templates/>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:text> </xsl:text>
Packit 0f19cf
  <xsl:if test="position()=1">
Packit 0f19cf
    <xsl:if test="self::glosssee">
Packit 0f19cf
      <xsl:text>

</xsl:text>
Packit 0f19cf
    </xsl:if>
Packit 0f19cf
    <xsl:call-template name="gentext.element.name"/>
Packit 0f19cf
    <xsl:call-template name="gentext.space"/>
Packit 0f19cf
  </xsl:if>
Packit 0f19cf
  <xsl:text>"</xsl:text>
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
    <xsl:when test="@otherterm">
Packit 0f19cf
      <xsl:call-template name="hyperlink.markup">
Packit 0f19cf
        <xsl:with-param name="linkend" select="@otherterm"/>
Packit 0f19cf
        <xsl:with-param name="text">
Packit 0f19cf
          <xsl:choose>
Packit 0f19cf
          <xsl:when test="$text!=''">
Packit 0f19cf
            <xsl:value-of select="$text"/>
Packit 0f19cf
          </xsl:when>
Packit 0f19cf
          <xsl:otherwise>
Packit 0f19cf
            <xsl:apply-templates select="$target" mode="xref"/>
Packit 0f19cf
          </xsl:otherwise>
Packit 0f19cf
          </xsl:choose>
Packit 0f19cf
        </xsl:with-param>
Packit 0f19cf
      </xsl:call-template>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <xsl:value-of select="$text"/>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
  <xsl:text>"</xsl:text>
Packit 0f19cf
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
    <xsl:when test="position()=last()">
Packit 0f19cf
      <xsl:text>.</xsl:text>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <xsl:text>, </xsl:text>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossentry" mode="xref">
Packit 0f19cf
  <xsl:apply-templates select="./glossterm" mode="xref"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="glossterm" mode="xref">
Packit 0f19cf
  <xsl:apply-templates/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
</xsl:stylesheet>
Packit 0f19cf