|
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>
|