html.xsl revision 58842e03db54033d15cc224d997f467abc88a97a
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<?xml version="1.0"?>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:stylesheet version="1.0"
7e68fce3cbd2246164e045a51ecd77f9f26680ednd xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
7e68fce3cbd2246164e045a51ecd77f9f26680ednd xmlns="http://www.w3.org/1999/xhtml">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Ordinary HTML that must be converted to latex -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="ul">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\begin{itemize}
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\end{itemize}
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="ol">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\begin{enumerate}
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\end{enumerate}
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="li">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\item </xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="dl">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\begin{description}
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\end{description}
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="dt">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\item[</xsl:text><xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>] </xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="dd">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Latex doesn't like successive line breaks, so replace any
7e68fce3cbd2246164e045a51ecd77f9f26680ednd sequence of two or more br separated only by white-space with
7e68fce3cbd2246164e045a51ecd77f9f26680ednd one line break followed by smallskips. -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="br">
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<xsl:choose>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<xsl:when test="name(preceding-sibling::node()[1])='br' or name(preceding-sibling::node()[1])='indent'">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\smallskip </xsl:text>
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd</xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:when test="name(preceding-sibling::node()[2])='br' or name(preceding-sibling::node()[2])='indent'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="normalize-space(preceding-sibling::node()[1])=''">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>\smallskip </xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:when>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- Don't put a line break if we are the last thing -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:if test="not(position()=last()) and not(position()=last()-1 and normalize-space(following-sibling::node()[1])='')">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>\\ </xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:if>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:otherwise>
e5343521634b71f10f0e88374d88bd5a45f75f68nd </xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:when>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <!-- Don't put a line break if we are the last thing -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="not(position()=last()) and not(position()=last()-1 and normalize-space(following-sibling::node()[1])='')">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>\\ </xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:if>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:otherwise>
bdbf46e4950b6f633073f803486962e82c2f086and</xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="p">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\par
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="code">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\texttt{</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>}</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="strong">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\textbf{</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>}</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="em">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\textit{</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>}</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Value-of used here explicitly because we don't wan't latex-escaping
7e68fce3cbd2246164e045a51ecd77f9f26680edndperformed. Of course, this will conflict with html where some tags are
7e68fce3cbd2246164e045a51ecd77f9f26680edndinterpreted in pre -->
e5343521634b71f10f0e88374d88bd5a45f75f68nd<xsl:template match="pre">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\begin{verbatim}
bdbf46e4950b6f633073f803486962e82c2f086and</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:value-of select="."/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\end{verbatim}
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="blockquote">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:text>\begin{quotation}
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\end{quotation}
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- XXX: We need to deal with table headers -->
e5343521634b71f10f0e88374d88bd5a45f75f68nd
bdbf46e4950b6f633073f803486962e82c2f086and<xsl:template match="table">
bdbf46e4950b6f633073f803486962e82c2f086and<xsl:text>\fbox{\begin{tabular}{</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:when test="columnspec">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:for-each select="columnspec/column">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>l</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:if test="../../@border and not(position()=last())">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>|</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:if>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:for-each>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:when>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:for-each select="tr[1]/*">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>l</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:if test="../../@border and not(position()=last())">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>|</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:if>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:for-each>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>}</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:apply-templates select="tr"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\end{tabular}}
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="tr">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:apply-templates select="td|th"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>\\</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="../@border and not(position()=last())">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>\hline</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:text>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="td">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:variable name="pos" select="position()"/>
bdbf46e4950b6f633073f803486962e82c2f086and <xsl:text>\begin{minipage}[t]{</xsl:text>
bdbf46e4950b6f633073f803486962e82c2f086and <xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:when test="/columnspec">
e5343521634b71f10f0e88374d88bd5a45f75f68nd <xsl:value-of select="/columnspec/column[$pos]/@width"/>
e5343521634b71f10f0e88374d88bd5a45f75f68nd </xsl:when>
e5343521634b71f10f0e88374d88bd5a45f75f68nd <xsl:otherwise>
e5343521634b71f10f0e88374d88bd5a45f75f68nd <xsl:value-of select=".95 div last()"/>
e5343521634b71f10f0e88374d88bd5a45f75f68nd </xsl:otherwise>
e5343521634b71f10f0e88374d88bd5a45f75f68nd </xsl:choose>
e5343521634b71f10f0e88374d88bd5a45f75f68nd <xsl:text>\linewidth}\small </xsl:text>
e5343521634b71f10f0e88374d88bd5a45f75f68nd <xsl:apply-templates/>
e5343521634b71f10f0e88374d88bd5a45f75f68nd <xsl:text>\end{minipage}</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:if test="not(position()=last())">
bdbf46e4950b6f633073f803486962e82c2f086and <xsl:text> &amp; </xsl:text>
bdbf46e4950b6f633073f803486962e82c2f086and </xsl:if>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
bdbf46e4950b6f633073f803486962e82c2f086and
bdbf46e4950b6f633073f803486962e82c2f086and<xsl:template match="th">
bdbf46e4950b6f633073f803486962e82c2f086and <xsl:variable name="pos" select="position()"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>\begin{minipage}[t]{</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:choose>
d177004a74b061338daf7f2603197d673ed76d36kess <xsl:when test="/columnspec">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:value-of select="/columnspec/column[$pos]/@width"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:when>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:otherwise>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:value-of select=".95 div last()"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:otherwise>
e5343521634b71f10f0e88374d88bd5a45f75f68nd </xsl:choose>
bdbf46e4950b6f633073f803486962e82c2f086and <xsl:text>\linewidth}\bfseries </xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>\end{minipage}</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:if test="not(position()=last())">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text> &amp; </xsl:text>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd </xsl:if>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!--
7e68fce3cbd2246164e045a51ecd77f9f26680ednd This is a horrible hack, but it seems to mostly work. It does a
7e68fce3cbd2246164e045a51ecd77f9f26680ednd few things:
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd 1. Transforms references starting in http:// to footnotes with the
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd appropriate hyperref macro to make them clickable. (This needs
7e68fce3cbd2246164e045a51ecd77f9f26680ednd to be expanded to deal with news: and needs to be adjusted to
3726777f47ac4bba3e21b075905959bbea47e72eerikabele deal with "#", which is creating bad links at the moment.)
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd 2. For intra-document references, constructs the appropriate absolute
7e68fce3cbd2246164e045a51ecd77f9f26680ednd reference using a latex \pageref.
7e68fce3cbd2246164e045a51ecd77f9f26680ednd This involves applying a simplified version of the
3726777f47ac4bba3e21b075905959bbea47e72eerikabele general URL resolution rules to deal with ../. It only works for
7e68fce3cbd2246164e045a51ecd77f9f26680ednd one level of subdirectory.
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd 3. It is also necessary to deal with the fact that index pages
7e68fce3cbd2246164e045a51ecd77f9f26680ednd get references as "/".
7e68fce3cbd2246164e045a51ecd77f9f26680ednd-->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="a">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:apply-templates/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:if test="@href">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="relpath" select="document(/*/@metafile)/metafile/relpath" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="path" select="document(/*/@metafile)/metafile/path" />
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<xsl:variable name="fileref">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:when test="contains(@href, '.html')">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:value-of select="substring-before(@href, '.html')"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:value-of select="concat(@href, 'index')"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:variable>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:when test="starts-with(@href, 'http:') or starts-with(@href, 'news:') or starts-with(@href, 'mailto:')">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:if test="not(.=@href)">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>\footnote{</xsl:text>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:text>\href{</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:call-template name="replace-string">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="text" select="@href"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="replace" select="'#'"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="with" select="'\#'"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:call-template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>}{</xsl:text>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:call-template name="ltescape">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="string" select="@href"/>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:call-template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>}}</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:if>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:when>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:when test="starts-with(@href, '#')">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Don't do inter-section references -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:when>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text> (p.\ \pageref{</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:call-template name="replace-string">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:with-param name="replace" select="'#'"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="with" select="':'"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:with-param name="text">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:when test="$relpath='.'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:value-of select="concat('/',$fileref)"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:when>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:otherwise>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:when test="starts-with($fileref,'..')">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:value-of select="substring-after($fileref,'..')"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:when>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:otherwise>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd <xsl:value-of select="concat($path,$fileref)"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:choose>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele </xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:with-param>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </xsl:call-template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:text>}) </xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:otherwise>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:choose>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:if>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</xsl:template>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:template match="img">
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<xsl:text>[Image not coverted]</xsl:text>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<!--
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="path" select="document(/*/@metafile)/metafile/path" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>\includegraphics{</xsl:text>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:value-of select="concat('.',$path,@src)"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:text>}</xsl:text>
8cfbcde8e416fd60132dd4324c42a5098da156cfnd-->
8cfbcde8e416fd60132dd4324c42a5098da156cfnd</xsl:template>
8cfbcde8e416fd60132dd4324c42a5098da156cfnd
8cfbcde8e416fd60132dd4324c42a5098da156cfnd</xsl:stylesheet>