Blame xsl/footnote.xsl

Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
Packit Service 76cb02
    xmlns:exsl="http://exslt.org/common"
Packit Service 76cb02
    exclude-result-prefixes="exsl" version='1.0'>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
    XSLT Stylesheet DocBook -> LaTeX
Packit Service 76cb02
    ############################################################################ -->
Packit Service 76cb02
<xsl:param name="footnote.as.endnote" select="0"/>
Packit Service 76cb02
<xsl:param name="endnotes.heading.style" select="'select:title'"/>
Packit Service 76cb02
<xsl:param name="endnotes.heading.groups"/>
Packit Service 76cb02
<xsl:param name="endnotes.heading.command"/>
Packit Service 76cb02
<xsl:param name="endnotes.counter.resetby" select="'part chapter'"/>
Packit Service 76cb02
Packit Service 76cb02
<xsl:attribute-set name="endnotes.properties.default">
Packit Service 76cb02
  <xsl:attribute name="package">endnotes</xsl:attribute>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:attribute name="heading">\mbox{}\par</xsl:attribute>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:attribute name="font-size">\normalsize</xsl:attribute>
Packit Service 76cb02
  <xsl:attribute name="note-format">%
Packit Service 76cb02
  \leftskip=1.8em\noindent
Packit Service 76cb02
  \makebox[0pt][r]{\theenmark.~~\rule{0pt}{\baselineskip}}\ignorespaces
Packit Service 76cb02
  </xsl:attribute>
Packit Service 76cb02
</xsl:attribute-set>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
                   use-attribute-sets="endnotes.properties.default"/>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="footnote">
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  
Packit Service 76cb02
       follow in the next possible area (foottext mode) -->
Packit Service 76cb02
  
Packit Service 76cb02
                  ancestor::title">
Packit Service 76cb02
    <xsl:text>\footnotemark{}</xsl:text>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:text>\footnote{</xsl:text>
Packit Service 76cb02
    <xsl:call-template name="label.id">
Packit Service 76cb02
      <xsl:with-param name="inline" select="1"/>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
    <xsl:apply-templates/>
Packit Service 76cb02
    <xsl:text>}</xsl:text>
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="footnote[ancestor::entry]">
Packit Service 76cb02
  <xsl:text>\footnotemark{}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="footnoteref">
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:text>\footref{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="@linkend"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="foottext">
Packit Service 76cb02
  <xsl:variable name="foot" select="descendant::footnote"/>
Packit Service 76cb02
  <xsl:if test="count($foot)>0">
Packit Service 76cb02
    <xsl:text>\addtocounter{footnote}{-</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="count($foot)"/>
Packit Service 76cb02
    <xsl:text>}</xsl:text>
Packit Service 76cb02
    <xsl:apply-templates select="$foot" mode="foottext"/>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="footnote" mode="foottext">
Packit Service 76cb02
  <xsl:text>\stepcounter{footnote}
</xsl:text>
Packit Service 76cb02
  <xsl:text>\footnotetext{</xsl:text>
Packit Service 76cb02
  <xsl:apply-templates/>
Packit Service 76cb02
  <xsl:call-template name="label.id"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="footnote" mode="latex.programlisting">
Packit Service 76cb02
  <xsl:param name="co-tagin" select="'<:'"/>
Packit Service 76cb02
  <xsl:param name="probe" select="0"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="verbatim.embed">
Packit Service 76cb02
    <xsl:with-param name="co-taging" select="$co-tagin"/>
Packit Service 76cb02
    <xsl:with-param name="probe" select="$probe"/>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="toc.skip">
Packit Service 76cb02
  <xsl:apply-templates mode="toc.skip"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="text()" mode="toc.skip">
Packit Service 76cb02
  <xsl:apply-templates select="."/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="footnote" mode="toc.skip"/>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="footnote.setup">
Packit Service 76cb02
  <xsl:if test="$footnote.as.endnote=1">
Packit Service 76cb02
    <xsl:text>\makeatletter
</xsl:text>
Packit Service 76cb02
    <xsl:call-template name="endnotes.setup"/>
Packit Service 76cb02
    <xsl:text>\let\footnote=\endnote
</xsl:text>
Packit Service 76cb02
    <xsl:text>\let\footnotetext=\endnotetext
</xsl:text>
Packit Service 76cb02
    <xsl:text>\let\footnotemark=\endnotemark
</xsl:text>
Packit Service 76cb02
    <xsl:text>\let\c@footnote=\c@endnote
</xsl:text>
Packit Service 76cb02
    <xsl:text>\makeatother
</xsl:text>
Packit Service 76cb02
    
Packit Service 76cb02
    
Packit Service 76cb02
                   or not(contains($endnotes.counter.resetby, 'chapter')))
Packit Service 76cb02
                   and count(//chapter)!=0 ">
Packit Service 76cb02
      <xsl:text>\usepackage{chngcntr}
</xsl:text>
Packit Service 76cb02
      <xsl:text>\counterwithout{footnote}{chapter}
</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     override if another formatting or package is required -->
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="endnotes.setup">
Packit Service 76cb02
  <xsl:variable name="endnotesetup">
Packit Service 76cb02
    <endnotesetup xsl:use-attribute-sets="endnotes.properties"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
    
Packit Service 76cb02
  <xsl:apply-templates select="exsl:node-set($endnotesetup)/*"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="endnotesetup">
Packit Service 76cb02
  <xsl:variable name="package">
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
    <xsl:when test="@package"><xsl:value-of select="@package"/></xsl:when>
Packit Service 76cb02
    <xsl:otherwise>endnotes</xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:text>\usepackage{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$package"/>
Packit Service 76cb02
  <xsl:text>}
</xsl:text>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:if test="@heading">
Packit Service 76cb02
    <xsl:text>\def\enoteheading{</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="@heading"/>
Packit Service 76cb02
    <xsl:text>}
</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:if test="@font-size">
Packit Service 76cb02
    <xsl:text>\def\enotesize{</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="@font-size"/>
Packit Service 76cb02
    <xsl:text>}
</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:if test="@note-format">
Packit Service 76cb02
    <xsl:text>\def\enoteformat{</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="@note-format"/>
Packit Service 76cb02
    <xsl:text>}
</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="index" mode="endnotes">
Packit Service 76cb02
  <xsl:apply-templates select="*"/>
Packit Service 76cb02
  <xsl:if test="$footnote.as.endnote=1">
Packit Service 76cb02
    <xsl:text>\theendnotes
</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="endnotes"/>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="chapter|part" mode="endnotes">
Packit Service 76cb02
  <xsl:call-template name="endnotes.add.header"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="endnotes.add.header">
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
  <xsl:param name="reset-counter">
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
    <xsl:when test="contains($endnotes.counter.resetby,local-name(.))">
Packit Service 76cb02
      <xsl:value-of select="1"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:value-of select="0"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:param>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
                select="//index[@type='endnotes'][1]/parent::*"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:if test="$verbose=2">
Packit Service 76cb02
    <xsl:message>Endnotes sections found: 
Packit Service 76cb02
               select="count($endnotes.section)"/></xsl:message>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
                contains($endnotes.heading.groups, local-name(.)) and
Packit Service 76cb02
                count($endnotes.section)!=0 and count(descendant::footnote)!=0">
Packit Service 76cb02
Packit Service 76cb02
    <xsl:variable name="level">
Packit Service 76cb02
      <xsl:call-template name="get.sect.level">
Packit Service 76cb02
        <xsl:with-param name="n" select="$endnotes.section"/>
Packit Service 76cb02
      </xsl:call-template>
Packit Service 76cb02
    </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
    <xsl:if test="$verbose=2">
Packit Service 76cb02
      <xsl:message>
Packit Service 76cb02
         <xsl:text>Endnotes headings level: </xsl:text>
Packit Service 76cb02
         <xsl:value-of select="$level+1"/></xsl:message>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:variable name="title">
Packit Service 76cb02
      <xsl:call-template name="xref.nolink">
Packit Service 76cb02
        <xsl:with-param name="string">
Packit Service 76cb02
          <xsl:apply-templates select="." mode="object.xref.markup">
Packit Service 76cb02
            <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
            <xsl:with-param name="xrefstyle" select="$endnotes.heading.style"/>
Packit Service 76cb02
            <xsl:with-param name="referrer" select="."/>
Packit Service 76cb02
            <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
          </xsl:apply-templates>
Packit Service 76cb02
        </xsl:with-param>
Packit Service 76cb02
      </xsl:call-template>
Packit Service 76cb02
    </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:variable name="heading">
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
      <xsl:when test="$endnotes.heading.command!=''">
Packit Service 76cb02
        
Packit Service 76cb02
                select="concat($endnotes.heading.command, '{', $title, '}')"/>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:call-template name="maketitle">
Packit Service 76cb02
          <xsl:with-param name="level" select="$level+1"/>
Packit Service 76cb02
          <xsl:with-param name="allnum" select="'0'"/>
Packit Service 76cb02
          <xsl:with-param name="num" select="'0'"/>
Packit Service 76cb02
          <xsl:with-param name="title" select="$title"/>
Packit Service 76cb02
          <xsl:with-param name="with-label" select="0"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
      </xsl:choose>
Packit Service 76cb02
    </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
    <xsl:if test="$reset-counter!=0">
Packit Service 76cb02
      <xsl:text>\setcounter{endnote}{0}</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    <xsl:text>\addtoendnotes{\protect</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$heading"/>
Packit Service 76cb02
    <xsl:text>}
</xsl:text>
Packit Service 76cb02
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
</xsl:stylesheet>