Blame xsl/sections.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
Packit 0f19cf
<xsl:template match="sect1|sect2|sect3|sect4|sect5">
Packit 0f19cf
  <xsl:call-template name="mapheading"/>
Packit 0f19cf
  <xsl:apply-templates/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="sect1/title"/>
Packit 0f19cf
<xsl:template match="sect1/subtitle"/>
Packit 0f19cf
<xsl:template match="sect2/title"/>
Packit 0f19cf
<xsl:template match="sect2/subtitle"/>
Packit 0f19cf
<xsl:template match="sect3/title"/>
Packit 0f19cf
<xsl:template match="sect3/subtitle"/>
Packit 0f19cf
<xsl:template match="sect4/title"/>
Packit 0f19cf
<xsl:template match="sect4/subtitle"/>
Packit 0f19cf
<xsl:template match="sect5/title"/>
Packit 0f19cf
<xsl:template match="sect5/subtitle"/>
Packit 0f19cf
Packit 0f19cf
<xsl:template name="map.sect.level">
Packit 0f19cf
  <xsl:param name="level" select="''"/>
Packit 0f19cf
  <xsl:param name="name" select="''"/>
Packit 0f19cf
  <xsl:param name="num" select="'1'"/>
Packit 0f19cf
  <xsl:param name="allnum" select="'0'"/>
Packit 0f19cf
  <xsl:text>
</xsl:text>
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="$level < 6">
Packit 0f19cf
    <xsl:choose>
Packit 0f19cf
      <xsl:when test='$level=1'>\section</xsl:when>
Packit 0f19cf
      <xsl:when test='$level=2'>\subsection</xsl:when>
Packit 0f19cf
      <xsl:when test='$level=3'>\subsubsection</xsl:when>
Packit 0f19cf
      <xsl:when test='$level=4'>\paragraph</xsl:when>
Packit 0f19cf
      <xsl:when test='$level=5'>\subparagraph</xsl:when>
Packit 0f19cf
      
Packit 0f19cf
      <xsl:when test='$level=0'>\chapter</xsl:when>
Packit 0f19cf
      <xsl:when test='$level=-1'>\part</xsl:when>
Packit 0f19cf
    </xsl:choose>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="$name!=''">
Packit 0f19cf
    <xsl:choose>
Packit 0f19cf
      <xsl:when test="$name='sect1'">\section</xsl:when>
Packit 0f19cf
      <xsl:when test="$name='sect2'">\subsection</xsl:when>
Packit 0f19cf
      <xsl:when test="$name='sect3'">\subsubsection</xsl:when>
Packit 0f19cf
      <xsl:when test="$name='sect4'">\paragraph</xsl:when>
Packit 0f19cf
      <xsl:when test="$name='sect5'">\subparagraph</xsl:when>
Packit 0f19cf
    </xsl:choose>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:otherwise>
Packit 0f19cf
    <xsl:message>
Packit 0f19cf
      <xsl:text>Section level > 6 not well supported for </xsl:text>
Packit 0f19cf
      <xsl:value-of select="local-name(.)"/>
Packit 0f19cf
      <xsl:if test="@id|@xml:id">
Packit 0f19cf
        <xsl:text>(id=</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:message> 
Packit 0f19cf
    <xsl:text>\subparagraph</xsl:text>
Packit 0f19cf
  </xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="$allnum = '1'"/>
Packit 0f19cf
  <xsl:when test="$num = '0'">
Packit 0f19cf
    <xsl:text>*</xsl:text>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  
Packit 0f19cf
                  ancestor::dedication|ancestor::partintro|
Packit 0f19cf
                  ancestor::glossary|ancestor::qandaset">
Packit 0f19cf
    <xsl:text>*</xsl:text>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="section">
Packit 0f19cf
  <xsl:variable name="min">
Packit 0f19cf
    <xsl:choose>
Packit 0f19cf
    <xsl:when test="ancestor::appendix and ancestor::article">
Packit 0f19cf
      <xsl:value-of select="'2'"/>
Packit 0f19cf
    </xsl:when>
Packit 0f19cf
    <xsl:otherwise>
Packit 0f19cf
      <xsl:value-of select="'1'"/>
Packit 0f19cf
    </xsl:otherwise>
Packit 0f19cf
    </xsl:choose>
Packit 0f19cf
  </xsl:variable>
Packit 0f19cf
  <xsl:call-template name="makeheading">
Packit 0f19cf
    <xsl:with-param name="level" select="count(ancestor::section)+$min"/>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
  <xsl:apply-templates/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template name="get.sect.level">
Packit 0f19cf
  <xsl:param name="n" select="."/>
Packit 0f19cf
  <xsl:choose>
Packit 0f19cf
  <xsl:when test="$n/parent::section">
Packit 0f19cf
    <xsl:value-of select="count($n/ancestor::section)+1"/>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::chapter">1</xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::article">1</xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::sect1">2</xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::sect2">3</xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::sect3">4</xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::sect4">5</xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::sect5">6</xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::reference">1</xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::preface">1</xsl:when>
Packit 0f19cf
  
Packit 0f19cf
                  $n/parent::refentry">
Packit 0f19cf
    <xsl:variable name="l">
Packit 0f19cf
      <xsl:call-template name="get.sect.level">
Packit 0f19cf
        <xsl:with-param name="n" select="$n/parent::*"/>
Packit 0f19cf
      </xsl:call-template>
Packit 0f19cf
    </xsl:variable>
Packit 0f19cf
    <xsl:value-of select="$l+1"/>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::book">
Packit 0f19cf
    <xsl:choose>
Packit 0f19cf
    
Packit 0f19cf
                    following-sibling::part">-1</xsl:when>
Packit 0f19cf
    <xsl:otherwise>0</xsl:otherwise>
Packit 0f19cf
    </xsl:choose>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::part">0</xsl:when>
Packit 0f19cf
  <xsl:when test="$n/parent::appendix">
Packit 0f19cf
    <xsl:choose>
Packit 0f19cf
    <xsl:when test="$n/ancestor::book">1</xsl:when>
Packit 0f19cf
    <xsl:otherwise>2</xsl:otherwise>
Packit 0f19cf
    </xsl:choose>
Packit 0f19cf
  </xsl:when>
Packit 0f19cf
  <xsl:otherwise>7</xsl:otherwise>
Packit 0f19cf
  </xsl:choose>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="simplesect">
Packit 0f19cf
  <xsl:call-template name="makeheading">
Packit 0f19cf
    <xsl:with-param name="level">
Packit 0f19cf
      <xsl:call-template name="get.sect.level"/>
Packit 0f19cf
    </xsl:with-param>
Packit 0f19cf
  </xsl:call-template>
Packit 0f19cf
  <xsl:apply-templates/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="section/title"/>
Packit 0f19cf
<xsl:template match="simplesect/title"/>
Packit 0f19cf
Packit 0f19cf
Packit 0f19cf
                    |sect1info
Packit 0f19cf
                    |sect2info
Packit 0f19cf
                    |sect3info
Packit 0f19cf
                    |sect4info
Packit 0f19cf
                    |sect5info">
Packit 0f19cf
  <xsl:apply-templates select="itermset"/>
Packit 0f19cf
</xsl:template>
Packit 0f19cf
Packit 0f19cf
<xsl:template match="titleabbrev"/>
Packit 0f19cf
Packit 0f19cf
</xsl:stylesheet>