1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
<?xml version="1.0" encoding="utf-8"?>
<!--
/=====================================================================\
| LaTeXML-meta-xhtml.xsl |
| Converting various meta-level elements to xhtml |
|=====================================================================|
| Part of LaTeXML: |
| Public domain software, produced as part of work done by the |
| United States Government & not subject to copyright in the US. |
|=====================================================================|
| Bruce Miller <bruce.miller@nist.gov> #_# |
| http://dlmf.nist.gov/LaTeXML/ (o o) |
\=========================================================ooo==U==ooo=/
-->
<xsl:stylesheet
version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
xmlns:ltx = "http://dlmf.nist.gov/LaTeXML"
xmlns:f = "http://dlmf.nist.gov/LaTeXML/functions"
extension-element-prefixes="f"
exclude-result-prefixes = "ltx f">
<!-- ======================================================================
Typically invisible meta elements
ltx:note, ltx:indexmark, ltx:rdf, ltx:ERROR
====================================================================== -->
<!-- Only a few generated elements need $context switches.
See the CONTEXT discussion in LaTeXML-common -->
<!-- normally hidden, but should be exposable various ways.
The role will likely distinguish various modes of footnote, endnote,
and other annotation -->
<xsl:preserve-space elements="ltx:note"/>
<xsl:template match="ltx:note">
<xsl:param name="context"/>
<xsl:element name="span" namespace="{$html_ns}">
<xsl:variable name="innercontext" select="'inline'"/><!-- override -->
<xsl:call-template name="add_id"/>
<xsl:call-template name="add_attributes"/>
<xsl:apply-templates select="." mode="begin">
<xsl:with-param name="context" select="$innercontext"/>
</xsl:apply-templates>
<xsl:call-template name="note-mark">
<xsl:with-param name="context" select="$innercontext"/>
</xsl:call-template>
<xsl:element name="span" namespace="{$html_ns}">
<xsl:attribute name="class">ltx_note_outer</xsl:attribute>
<xsl:element name="span" namespace="{$html_ns}">
<xsl:attribute name="class">ltx_note_content</xsl:attribute>
<xsl:call-template name="note-mark">
<xsl:with-param name="context" select="$innercontext"/>
</xsl:call-template>
<xsl:if test="not(@role = 'footnote')">
<xsl:element name="span" namespace="{$html_ns}">
<xsl:attribute name="class">ltx_note_type</xsl:attribute>
<xsl:value-of select="@role"/>
<xsl:text>: </xsl:text>
</xsl:element>
</xsl:if>
<xsl:apply-templates>
<xsl:with-param name="context" select="$innercontext"/>
</xsl:apply-templates>
<xsl:apply-templates select="." mode="end">
<xsl:with-param name="context" select="$innercontext"/>
</xsl:apply-templates>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:preserve-space elements="ltx:note-mark"/>
<xsl:template name="note-mark">
<xsl:element name="sup" namespace="{$html_ns}">
<xsl:attribute name="class">ltx_note_mark</xsl:attribute>
<xsl:choose>
<xsl:when test="ltx:tags/ltx:tag[not(@role)]"><xsl:value-of select="ltx:tags/ltx:tag[not(@role)]"/></xsl:when>
<xsl:when test="@mark"><xsl:value-of select="@mark"/></xsl:when>
<xsl:otherwise>†</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>
<!-- disappears -->
<xsl:template match="ltx:declare"/>
<!-- Actually, this ought to be annoyingly visible -->
<xsl:preserve-space elements="ltx:ERROR"/>
<xsl:template match="ltx:ERROR">
<xsl:param name="context"/>
<xsl:element name="span" namespace="{$html_ns}">
<xsl:variable name="innercontext" select="'inline'"/><!-- override -->
<xsl:call-template name="add_id"/>
<xsl:call-template name="add_attributes"/>
<xsl:apply-templates select="." mode="begin">
<xsl:with-param name="context" select="$innercontext"/>
</xsl:apply-templates>
<xsl:apply-templates>
<xsl:with-param name="context" select="$innercontext"/>
</xsl:apply-templates>
<xsl:apply-templates select="." mode="end">
<xsl:with-param name="context" select="$innercontext"/>
</xsl:apply-templates>
</xsl:element>
</xsl:template>
<!-- The indexmark disappears -->
<xsl:template match="ltx:indexmark"/>
<!-- but the phrases it contains may be used in back-ref situations -->
<xsl:preserve-space elements="ltx:indexphrase"/>
<xsl:template match="ltx:indexphrase">
<xsl:param name="context"/>
<xsl:element name="span" namespace="{$html_ns}">
<xsl:variable name="innercontext" select="'inline'"/><!-- override -->
<xsl:call-template name="add_id"/>
<xsl:call-template name="add_attributes"/>
<xsl:apply-templates select="." mode="begin">
<xsl:with-param name="context" select="$innercontext"/>
</xsl:apply-templates>
<xsl:apply-templates>
<xsl:with-param name="context" select="$innercontext"/>
</xsl:apply-templates>
<xsl:apply-templates select="." mode="end">
<xsl:with-param name="context" select="$innercontext"/>
</xsl:apply-templates>
</xsl:element>
</xsl:template>
<!-- Typically will end up with css display:none -->
<xsl:preserve-space elements="ltx:rdf"/>
<xsl:template match="ltx:rdf">
<xsl:param name="context"/>
<xsl:element name="{f:blockelement($context,'div')}" namespace="{$html_ns}">
<xsl:call-template name="add_id"/>
<xsl:call-template name="add_attributes"/>
<xsl:apply-templates select="." mode="begin">
<xsl:with-param name="context" select="$context"/>
</xsl:apply-templates>
<xsl:apply-templates>
<xsl:with-param name="context" select="$context"/>
</xsl:apply-templates>
<xsl:apply-templates select="." mode="end">
<xsl:with-param name="context" select="$context"/>
</xsl:apply-templates>
</xsl:element>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
|