html.xsl revision 58842e03db54033d15cc224d997f467abc88a97a
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- ==================================================================== -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Ordinary HTML that must be converted to latex -->
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. -->
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd<xsl:when test="name(preceding-sibling::node()[1])='br' or name(preceding-sibling::node()[1])='indent'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<xsl:when test="name(preceding-sibling::node()[2])='br' or name(preceding-sibling::node()[2])='indent'">
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:when test="normalize-space(preceding-sibling::node()[1])=''">
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])='')">
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<!-- 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 -->
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- XXX: We need to deal with table headers -->
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <xsl:if test="../@border and not(position()=last())">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd This is a horrible hack, but it seems to mostly work. It does a
7e68fce3cbd2246164e045a51ecd77f9f26680ednd few things:
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.)
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.
480bee29abcc415b6b8c18d2ecbf2c5f88f1f05bnd 3. It is also necessary to deal with the fact that index pages
7e68fce3cbd2246164e045a51ecd77f9f26680ednd get references as "/".
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="relpath" select="document(/*/@metafile)/metafile/relpath" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:variable name="path" select="document(/*/@metafile)/metafile/path" />
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <xsl:value-of select="substring-before(@href, '.html')"/>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<xsl:when test="starts-with(@href, 'http:') or starts-with(@href, 'news:') or starts-with(@href, 'mailto:')">
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<!-- Don't do inter-section references -->
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>