%PDF- %PDF-
| Direktori : /proc/thread-self/root/data/old/usr/share/texlive/texmf-dist/tex4ht/xtpipes/ |
| Current File : //proc/thread-self/root/data/old/usr/share/texlive/texmf-dist/tex4ht/xtpipes/jsml.4xt |
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE xtpipes SYSTEM "xtpipes.dtd" >
<xtpipes signature="jsml.4xt (2007-09-01-14:10)">
<sax content-handler="xtpipes.util.ScriptsManager, tex4ht.GroupMn, tex4ht.JsmlFilter"
lexical-handler="xtpipes.util.ScriptsManagerLH" >
<script element="mn-group" >
<dom name="." xml="." method="mnGroup" class="tex4ht.HtJsml" />
<set name="rmXmlDecl" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="rmXmlDecl" />
<set name="merge" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="mn-group" >
<xsl:choose>
<xsl:when test=" not(child::mn) ">
<xsl:apply-templates select="*|text()" />
</xsl:when>
<xsl:otherwise>
<mn>
<xsl:value-of select="." />
</mn>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="merge" />
</script>
<script element="msup" >
<set name="m-sub-sup" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*[
(self::msup or self::msub or self::msubsup)
and
not(
child::mrow[ @class = 'mrow-sub' ]
/ child::*[ not(@title = 'speech-extra')
and
(normalize-space(.) != '')
]
)
and
not(
child::mrow[ @class = 'mrow-super' ]
/ child::*[ not(@title = 'speech-extra')
and
(normalize-space(.) != '')
]
)
]" >
<xsl:apply-templates select="child::mrow[
@class = 'mrow-base' ]/*" />
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="m-sub-sup" />
<set name="m-sup-2-3" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="msup[
(normalize-space(
child::mrow[ (@class = 'mrow-super') ]
/ child::*[ not (@class = 'begin-script')
and
not (@class = 'end-script')
]
) = '2')
and not(
child::mrow[ @class = 'mrow-base' ]
/ child::span[ not( @title = 'speech-extra' ) ]
[ position() = last() ]
/ self::* [ @class = 'mo-op' ]
)
and (normalize-space(mrow[@class = 'mrow-base']) != '' )
]" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()"
mode="squared" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()"
mode="squared" >
<xsl:copy>
<xsl:choose>
<xsl:when test=" @class = 'mrow-super' ">
<xsl:apply-templates select="@*" />
<mo class="mo-op">
<xsl:text> squared </xsl:text>
</mo>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="*|@*|text()" />
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
<xsl:template match="msup[
(normalize-space(
child::mrow[ (@class = 'mrow-super') ]
/ child::*[ not (@class = 'begin-script')
and
not (@class = 'end-script')
]
) = '3')
and not(
child::mrow[ @class = 'mrow-base' ]
/ child::span[ not( @title = 'speech-extra' ) ]
[ position() = last() ]
/ self::* [ @class = 'mo-op' ]
)
and (normalize-space(mrow[@class = 'mrow-base']) != '' )
]" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()"
mode="cube" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()"
mode="cube" >
<xsl:copy>
<xsl:choose>
<xsl:when test=" @class = 'mrow-super' ">
<xsl:apply-templates select="@*" />
<mo class="mo-op">
<xsl:text> cube </xsl:text>
</mo>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="*|@*|text()" />
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="m-sup-2-3" />
</script>
<script element="msub" >
<set name="m-sub-sup" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*[
(self::msup or self::msub or self::msubsup)
and
not(
child::mrow[ @class = 'mrow-sub' ]
/ child::*[ not(@title = 'speech-extra')
and
(normalize-space(.) != '')
]
)
and
not(
child::mrow[ @class = 'mrow-super' ]
/ child::*[ not(@title = 'speech-extra')
and
(normalize-space(.) != '')
]
)
]" >
<xsl:apply-templates select="child::mrow[
@class = 'mrow-base' ]/*" />
</xsl:template>
<xsl:template match="
msub [
normalize-space(child::*[1]) = 'log'
or
normalize-space(child::*[1]) = 'ln'
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="child::*[1]" />
<xsl:apply-templates select="child::*[2]"
mode="log" />
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="log" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:choose>
<xsl:when test="parent::mrow[ @class = 'mrow-sub' ]" >
<BREAK SIZE="small"/>
<xsl:apply-templates select="*" />
<BREAK SIZE="small"/>
<span title="speech-extra">
<xsl:text>of</xsl:text>
</span>
<BREAK SIZE="small"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates
select="*[ not(@title = 'speech-extra') ]"
mode="log" />
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="m-sub-sup" />
</script>
<script element="msubsup" >
<set name="subsup-prime" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="msubsup[
(count(
child::mrow [ @class='mrow-super' ]
/ child::* [ not(@title = 'speech-extra') ]
) = 1)
and
not(
child::mrow [ @class='mrow-super' ]
/ child::* [ not(@title = 'speech-extra') ]
/ descendant::*[ preceding-sibling::*
or following-sibling::*]
)
and
child::mrow [ @class='mrow-super' ]
/ child::* [ not(@title = 'speech-extra') ]
/ descendant-or-self::span[ @class='char' ]
/ child::span[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
]
]" >
<msub>
<mrow class="mrow-base">
<xsl:apply-templates select="
child::mrow[@class = 'mrow-base'] / *
" />
<BREAK SIZE="small"/>
<xsl:apply-templates select="
child::mrow[@class = 'mrow-super']
/ child::* [ not(@title = 'speech-extra') ]
" />
</mrow>
<mrow class="mrow-sub">
<xsl:apply-templates
select="*[@class = 'mrow-sub'] /* " />
<xsl:apply-templates select="
child::mrow[@class = 'mrow-super']
/ child::* [ @class = 'end-script' ]
" />
</mrow>
</msub>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="subsup-prime" />
<set name="m-sub-sup" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*[
(self::msup or self::msub or self::msubsup)
and
not(
child::mrow[ @class = 'mrow-sub' ]
/ child::*[ not(@title = 'speech-extra')
and
(normalize-space(.) != '')
]
)
and
not(
child::mrow[ @class = 'mrow-super' ]
/ child::*[ not(@title = 'speech-extra')
and
(normalize-space(.) != '')
]
)
]" >
<xsl:apply-templates select="child::mrow[
@class = 'mrow-base' ]/*" />
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="m-sub-sup" />
<set name="m-subsup-2-3" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="msubsup[
(normalize-space(
child::mrow[ (@class = 'mrow-super') ]
/ child::span[ (@class != 'mid-script')
and
(@class != 'end-script')
]
) = '2')
and not(
child::mrow[ @class = 'mrow-base' ]
/ child::span[ not( @title = 'speech-extra' ) ]
[ position() = last() ]
/ self::* [ @class = 'mo-op' ]
)
]" >
<xsl:copy>
<xsl:attribute name="class" >
<xsl:text>msub</xsl:text>
</xsl:attribute>
<xsl:apply-templates select="*|text()|comment()"
mode="sub-squared" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()"
mode="sub-squared" >
<xsl:copy>
<xsl:choose>
<xsl:when test=" @class = 'mrow-sub' ">
<xsl:apply-templates select="*[
not( @class = 'end-script' )
]
|@*|text()|comment()" />
<xsl:apply-templates select="
following-sibling::*[1] / *[
@class = 'end-script'
] " />
</xsl:when>
<xsl:when test=" @class = 'mrow-super' ">
<xsl:attribute name="class" >
<xsl:text>squared-super</xsl:text>
</xsl:attribute>
<mo class="mo-op">
<xsl:text> squared </xsl:text>
</mo>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
<xsl:template match="msubsup[
(normalize-space(
child::mrow[ (@class = 'mrow-super') ]
/ child::span[ (@class != 'mid-script')
and
(@class != 'end-script')
]
) = '3')
and not(
child::mrow[ @class = 'mrow-base' ]
/ child::span[ not( @title = 'speech-extra' ) ]
[ position() = last() ]
/ self::* [ @class = 'mo-op' ]
)
]" >
<xsl:copy>
<xsl:attribute name="class" >
<xsl:text>msub</xsl:text>
</xsl:attribute>
<xsl:apply-templates select="*|text()|comment()"
mode="sub-cube" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()"
mode="sub-cube" >
<xsl:copy>
<xsl:choose>
<xsl:when test=" @class = 'mrow-sub' ">
<xsl:apply-templates select="*[
not( @class = 'end-script' )
]
|@*|text()|comment()" />
<xsl:apply-templates select="
following-sibling::*[1] / *[
@class = 'end-script'
] " />
</xsl:when>
<xsl:when test=" @class = 'mrow-super' ">
<xsl:attribute name="class" >
<xsl:text>cube-super</xsl:text>
</xsl:attribute>
<mo class="mo-op">
<xsl:text> cube </xsl:text>
</mo>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="m-subsup-2-3" />
</script>
<script element="mfrac" >
<set name="mfrac" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="mfrac" >
<xsl:copy>
<xsl:choose>
<xsl:when test="
(string-length(
normalize-space(child::mrow[ @class = 'mrow-numerator' ][1])
) = 1)
and
(string-length(
normalize-space(child::mrow[ @class = 'mrow-enumerator' ][1])
) = 1)
">
<xsl:variable name="a">
<xsl:value-of select="
normalize-space(child::mrow[ @class = 'mrow-numerator' ][1])
" />
</xsl:variable>
<xsl:variable name="b">
<xsl:value-of select="
normalize-space(child::mrow[ @class = 'mrow-enumerator' ][1])
" />
</xsl:variable>
<xsl:choose>
<xsl:when test="
(translate($a,'123456789','') != '')
or
(translate($b,'123456789','') != '')
" >
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:when>
<xsl:when test=" $a < $b ">
<xsl:attribute name="class">
<xsl:text>word-frac</xsl:text>
</xsl:attribute>
<xsl:choose>
<xsl:when test=" $a = 1 "><xsl:text> one </xsl:text></xsl:when>
<xsl:when test=" $a = 2 "><xsl:text> two </xsl:text></xsl:when>
<xsl:when test=" $a = 3 "><xsl:text> three </xsl:text></xsl:when>
<xsl:when test=" $a = 4 "><xsl:text> four </xsl:text></xsl:when>
<xsl:when test=" $a = 5 "><xsl:text> five </xsl:text></xsl:when>
<xsl:when test=" $a = 6 "><xsl:text> six </xsl:text></xsl:when>
<xsl:when test=" $a = 7 "><xsl:text> seven </xsl:text></xsl:when>
<xsl:when test=" $a = 8 "><xsl:text> eight </xsl:text></xsl:when>
<xsl:when test=" $a = 9 "><xsl:text> nine </xsl:text></xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test=" $b = 2 "><xsl:text> half</xsl:text></xsl:when>
<xsl:when test=" $b = 3 "><xsl:text> third</xsl:text></xsl:when>
<xsl:when test=" $b = 4 "><xsl:text> fourth</xsl:text></xsl:when>
<xsl:when test=" $b = 5 "><xsl:text> fifth</xsl:text></xsl:when>
<xsl:when test=" $b = 6 "><xsl:text> sixth</xsl:text></xsl:when>
<xsl:when test=" $b = 7 "><xsl:text> seventh</xsl:text></xsl:when>
<xsl:when test=" $b = 8 "><xsl:text> eighth</xsl:text></xsl:when>
<xsl:when test=" $b = 9 "><xsl:text> nineth</xsl:text></xsl:when>
</xsl:choose>
<xsl:if test=" $a > 1 "><xsl:text>s</xsl:text></xsl:if>
<xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="
self::mfrac
and
child::mrow[ @class = 'mrow-enumerator' ]
/ child::mfrac[ @class = 'continued-mfrac' ]
and
( normalize-space(
child::mrow[ @class = 'mrow-numerator' ]
)
=
normalize-space(
child::mrow[ @class = 'mrow-enumerator' ]
/ child::mfrac[ @class = 'continued-mfrac' ]
/ child::mrow[ @class = 'mrow-numerator' ]
)
)
and (
normalize-space(
child::span[ @class = 'mrow-enumerator' ] /
child::mfrac /
preceding-sibling::*[1] )
=
normalize-space(
child::span[ @class = 'mrow-enumerator' ] /
child::mfrac /
child::span[ @class = 'mrow-enumerator' ] /
child::span[ @class = 'continued-mfrac' ] /
preceding-sibling::*[1] )
)
" >
<xsl:variable name="a">
<xsl:apply-templates select="
child::span[ @class = 'mrow-enumerator' ] /
child::span[ @class = 'mcontinued-mfrac' ] /
preceding-sibling::*[2]
" mode="enum-op" />
</xsl:variable>
<xsl:variable name="b">
<xsl:apply-templates select="
child::span[ @class = 'mrow-enumerator' ] /
child::span[ @class = 'mcontinued-mfrac' ] /
child::span[ @class = 'mrow-enumerator' ] /
child::span[
self::mfrac or (@class = 'mcontinued-mfrac')
] /
preceding-sibling::*[2]
" mode="enum-op" />
</xsl:variable>
<xsl:choose>
<xsl:when test="
normalize-space($a)=normalize-space($b)
" >
<xsl:attribute name="class">
<xsl:value-of select=" 'continued-mfrac' " />
</xsl:attribute>
<xsl:apply-templates select="*|text()|comment()" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="
(translate(
normalize-space(
child::mrow[ @class = 'mrow-numerator' ]),
'0123456789','')= '')
and ( normalize-space(
child::mrow[ @class = 'mrow-numerator' ])
and
normalize-space(
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
child::mrow[ @class = 'mrow-numerator' ])
)
and
( normalize-space(
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
child::mrow[ @class = 'mrow-numerator' ])
and
normalize-space(
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
child::mrow[ @class = 'mrow-numerator' ])
)
and ( child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
preceding-sibling::*[1][@class = 'MathClass-bin']
)
and
( normalize-space(
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
preceding-sibling::*[1] )
=
normalize-space(
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
preceding-sibling::*[1] )
)
">
<xsl:variable name="a">
<xsl:apply-templates select="
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
preceding-sibling::*[2]
" mode="enum-op" />
</xsl:variable>
<xsl:variable name="b">
<xsl:apply-templates select="
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
preceding-sibling::*[2]
" mode="enum-op" />
</xsl:variable>
<xsl:variable name="c">
<xsl:value-of select="
normalize-space(
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
child::mrow[ @class = 'mrow-enumerator' ] )
" />
</xsl:variable>
<xsl:choose>
<xsl:when test="
( translate($a,'0123456789 ','') = '')
and (normalize-space($a)=normalize-space($b))
and starts-with( $c, normalize-space( $a ))
and starts-with(
normalize-space(
substring-after( $c, normalize-space( $a )) )
,
normalize-space(
child::mrow[ @class = 'mrow-enumerator' ] /
child::mfrac /
preceding-sibling::*[1] )
)
" >
<xsl:attribute name="class">
<xsl:value-of select=" 'continued-mfrac' " />
</xsl:attribute>
<xsl:apply-templates select="*|text()|comment()" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="enum-op">
<xsl:if test="preceding-sibling::*" >
<xsl:apply-templates select=" preceding-sibling::*[1] " />
</xsl:if>
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="mfrac" />
</script>
<script element="munder::munder-underline" >
<set name="munder" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*" mode="content" >
<xsl:choose>
<xsl:when test=" @class = 'char' " >
<xsl:if test="not( child::*[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
] )">
<xsl:text>x</xsl:text>
</xsl:if>
</xsl:when>
<xsl:when test=" not(
(@title = 'speech-extra') or (@class = 'accent-char')
) " >
<xsl:apply-templates select="*|text()" mode="content" />
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="munder[
(@class = 'munder-underline')
and
child::mrow[
(@class = 'mo-0332')
and
descendant::mi
]
]" >
<xsl:variable name="content">
<xsl:apply-templates select="*" mode="content" />
</xsl:variable>
<xsl:choose>
<xsl:when test="
string-length( normalize-space( $content )) = 1
" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates
select=" *[ @class != 'begin-end' ] " />
<span class="begin-end" title="speech-extra" >
<BREAK SIZE="small"/>
<xsl:text> under bar </xsl:text>
<BREAK SIZE="small"/>
</span>
</xsl:copy>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="child::mrow / child::mover">
<xsl:apply-templates select="child::mrow / child::mover"
mode="under-mover" />
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select=" *|@*|text() " />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="*" mode="under-mover" >
<xsl:choose>
<xsl:when test="self::mover">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="*" mode="under-mover" />
</xsl:copy>
</xsl:when>
<xsl:when test="self::mrow[ parent::mover ]">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:choose>
<xsl:when test="child::mover">
<xsl:apply-templates select="*" mode="under-mover" />
</xsl:when>
<xsl:otherwise>
<munder class="munder-underline">
<xsl:apply-templates select="
ancestor::munder[1] / child::*[following-sibling::mrow]
"/>
<mrow class="mo-0032">
<xsl:apply-templates select="*" />
</mrow>
<xsl:apply-templates select="
ancestor::munder[1] / child::*[preceding-sibling::mrow]
"/>
</munder>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="munder" />
</script>
<script element="mover::mover-overline" >
<set name="mover" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*" mode="content" >
<xsl:choose>
<xsl:when test=" @class = 'char' " >
<xsl:if test="not( child::*[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
] )">
<xsl:text>x</xsl:text>
</xsl:if>
</xsl:when>
<xsl:when test=" not(
(@title = 'speech-extra') or (@class = 'accent-char')
) " >
<xsl:apply-templates select="*|text()" mode="content" />
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="mover[
(@class = 'mover-overline')
and
child::mrow[
(@class = 'mo-00AF')
and
descendant::mi
]
]" >
<xsl:variable name="content">
<xsl:apply-templates select="*" mode="content" />
</xsl:variable>
<xsl:choose>
<xsl:when test="
string-length( normalize-space( $content )) = 1
" >
<BREAK SIZE="small"/>
<xsl:choose>
<xsl:when test="child::mrow / child::munder">
<xsl:apply-templates select="child::mrow / child::munder"
mode="under-munder" />
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates
select=" *[ @class != 'begin-end' ] " />
<span class="begin-end" title="speech-extra" >
<BREAK SIZE="small"/>
<xsl:text> over bar </xsl:text>
<BREAK SIZE="small"/>
</span>
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates
select="*|text()|comment()" />
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="*" mode="under-munder" >
<xsl:choose>
<xsl:when test="self::munder">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="*" mode="under-munder" />
</xsl:copy>
</xsl:when>
<xsl:when test="self::mrow[ parent::munder ]">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:choose>
<xsl:when test="child::munder">
<xsl:apply-templates select="*" mode="under-munder" />
</xsl:when>
<xsl:otherwise>
<mover class="mover-overline">
<mrow class="mo-00AF">
<xsl:apply-templates select="*" />
</mrow>
<span class="begin-end" title="speech-extra" >
<BREAK SIZE="small"/>
<xsl:text> over bar </xsl:text>
<BREAK SIZE="small"/>
</span>
</mover>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="mover" />
</script>
<script element="msub::limits-msub-msup" >
<set name="smash" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*[
(@class = 'limits-msub-msup')
and
child::*[ (position() = 1)
and (@class = 'limits-mrow-base')
and child::*[ (position() = 1)
and (@class = 'limits-msub-msup')
] ]
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="
*[1]
/ *[1]
/ *[ not(@class='limits-mrow-super') ] " />
<xsl:apply-templates select=" *[
preceding-sibling::*
and
not(@class='limits-mrow-super') ]" />
<xsl:apply-templates select="
*[1]
/ *[1]
/ *[@class='limits-mrow-super' ] " />
<xsl:apply-templates select=" *[
preceding-sibling::*
and
(@class='limits-mrow-super') ]" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="smash" />
</script>
<script element="msup::limits-msub-msup" >
<set name="smash" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*[
(@class = 'limits-msub-msup')
and
child::*[ (position() = 1)
and (@class = 'limits-mrow-base')
and child::*[ (position() = 1)
and (@class = 'limits-msub-msup')
] ]
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="
*[1]
/ *[1]
/ *[ not(@class='limits-mrow-super') ] " />
<xsl:apply-templates select=" *[
preceding-sibling::*
and
not(@class='limits-mrow-super') ]" />
<xsl:apply-templates select="
*[1]
/ *[1]
/ *[@class='limits-mrow-super' ] " />
<xsl:apply-templates select=" *[
preceding-sibling::*
and
(@class='limits-mrow-super') ]" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="smash" />
</script>
<script element="msubsup::limits-msub-msup" >
<set name="smash" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*[
(@class = 'limits-msub-msup')
and
child::*[ (position() = 1)
and (@class = 'limits-mrow-base')
and child::*[ (position() = 1)
and (@class = 'limits-msub-msup')
] ]
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="
*[1]
/ *[1]
/ *[ not(@class='limits-mrow-super') ] " />
<xsl:apply-templates select=" *[
preceding-sibling::*
and
not(@class='limits-mrow-super') ]" />
<xsl:apply-templates select="
*[1]
/ *[1]
/ *[@class='limits-mrow-super' ] " />
<xsl:apply-templates select=" *[
preceding-sibling::*
and
(@class='limits-mrow-super') ]" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="smash" />
</script>
<script element="mi" >
<set name="math-cap" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="mi" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:if test=" string-length(.) = 1 " >
<xsl:if test="
(translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'') = '' )
" >
<span class="capital-description"
title="speech-extra" >
<xsl:text> capital </xsl:text>
</span>
</xsl:if>
</xsl:if>
<xsl:apply-templates select="*|text()|comment()" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="math-cap" />
</script>
<script element="tr" >
<set name="eqnum" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="div[
(parent::tr or parent::mtr)
and ( normalize-space(.) = '' )
and not( normalize-space(following-sibling::*) != '' )
]" >
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="eqnum" />
</script>
<script element="mtr" >
<set name="eqnum" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="div[
(parent::tr or parent::mtr)
and ( normalize-space(.) = '' )
and not( normalize-space(following-sibling::*) != '' )
]" >
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="eqnum" />
</script>
<script element="span::inline-math" >
<set name="num-sub" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="msub[
(
(count( child::mrow[ @class = 'mrow-base' ]
/ child::* ) = 1 )
and child::mrow[ @class = 'mrow-base' ] / descendant::mi
and not( ancestor::*[
self::msub or self::msup or self::msubsup
] )
or
(
count( child::mrow[ @class = 'mrow-base' ]
/ child::* [
not(self::BREAK)
]
) = 2 )
and child::mrow[ @class = 'mrow-base' ] [
child::*[1][ self::mi ]
and
child::*[
(position() > 1)
and
(normalize-space(.) =
normalize-space(
descendant-or-self::span[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
]
))
]
]
and not( ancestor::*[
self::msub or self::msup or self::msubsup
] )
)
and
child::mrow[ @class = 'mrow-sub' ]
/ child::*[ not(@title = 'speech-extra') ][1]
/ self::*[
normalize-space(.)
= normalize-space( descendant::mn ) ]
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<BREAK SIZE="small"/>
<xsl:apply-templates select="*[1]" />
<mrow class="mrow-sub">
<xsl:apply-templates
select="*[2] / *[
not(@title = 'speech-extra')
]" />
<BREAK SIZE="small"/>
</mrow>
</xsl:copy>
</xsl:template>
<xsl:template match="msubsup[
(
(count( child::mrow[ @class = 'mrow-base' ]
/ child::* ) = 1 )
and child::mrow[ @class = 'mrow-base' ] / descendant::mi
and not( ancestor::*[
self::msub or self::msup or self::msubsup
] )
)
and
child::mrow[ @class = 'mrow-sub' ]
/ child::*[ not(@title = 'speech-extra') ][1]
/ self::*[
normalize-space(.)
= normalize-space( descendant::mn ) ]
]" >
<msup>
<BREAK SIZE="small"/>
<xsl:apply-templates select="*[1]" />
<mrow class="mrow-sub">
<xsl:apply-templates
select="*[2] / *[
not(@title = 'speech-extra')
]" />
<BREAK SIZE="small"/>
</mrow>
<xsl:apply-templates select="*[3]" />
</msup>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="num-sub" />
<dom name="." xml="." method="fracLevel" class="tex4ht.HtJsml" />
<set name="rmXmlDecl" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="rmXmlDecl" />
<dom name="." xml="." method="scriptLevel" class="tex4ht.HtJsml" />
<set name="rmXmlDecl" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="rmXmlDecl" />
<dom name="." xml="." method="rootLevel" class="tex4ht.HtJsml" />
<set name="rmXmlDecl" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="rmXmlDecl" />
<set name="inline-math" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="mn-group-s" >
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:template>
<xsl:template match="mo[
(@class='MathClass-punc')
and ( (.='.') or (.=',') or (.='!')
or (.=';') or (.=':') or (.='?') )
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<BREAK SIZE="small"/>
<xsl:choose>
<xsl:when test=" .='.' " >
<SAYAS SUB="dot">.</SAYAS>
</xsl:when>
<xsl:when test=" .=',' " >
<SAYAS SUB="comma">,</SAYAS>
</xsl:when>
<xsl:when test=" .=';' " >
<SAYAS SUB="semicolon">;</SAYAS>
</xsl:when>
<xsl:when test=" .=':' " >
<SAYAS SUB="colon">:</SAYAS>
</xsl:when>
<xsl:when test=" .='!' " >
<SAYAS SUB="exclamation mark">!</SAYAS>
</xsl:when>
<xsl:when test=" .='?' " >
<SAYAS SUB="question mark">?</SAYAS>
</xsl:when>
</xsl:choose>
<BREAK SIZE="small"/>
</xsl:copy>
</xsl:template>
<xsl:template match="mn[
ancestor::mover[
not( descendant::*[
(count( child::*[ not(@title = 'speech-extra')
and not( self::BREAK )
]
) > 1)
])
and
(
preceding-sibling::*[1][self::dot or self::mn-group-s]
or
following-sibling::*[1][self::dot or self::mn-group-s]
)
]
or
ancestor::munder[
not( descendant::*[
(count( child::*[ not(@title = 'speech-extra')
and not( self::BREAK )
]
) > 1)
])
and
(
preceding-sibling::*[1][self::dot or self::mn-group-s]
or
following-sibling::*[1][self::dot or self::mn-group-s]
)
]
]" >
<xsl:copy>
<SAYAS CLASS="digits">
<xsl:value-of select="." />
</SAYAS>
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="content" >
<xsl:choose>
<xsl:when test=" @class = 'char' " >
<xsl:if test="not( child::*[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
] )">
<xsl:text>x</xsl:text>
</xsl:if>
</xsl:when>
<xsl:when test=" not(
(@title = 'speech-extra') or (@class = 'accent-char')
) " >
<xsl:apply-templates select="*|text()" mode="content" />
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
ancestor::* [ following-sibling::* [
not( @class = 'content-less' )
]
][1]
/ following-sibling::* [
not( @class = 'content-less' )
][1]
/ self::*
[
(@class = 'end-math')
or
(@class = 'end-script')
or
(@class = 'end-root')
or
(@class = 'end-stack')
or
(@class = 'mid-stack')
or
(@class = 'end-array')
or
self::td or self::mtd or self::tr or self::mtr
or
(@title = 'implicit-baseline')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
parent::mrow / parent::msub
and
ancestor::* [ following-sibling::* ][1]
/ following-sibling::* [ normalize-space(.) != '' ][1]
[
(self::msub or self::msubsup)
and
(normalize-space(child::mrow[
@class = 'mrow-base' ]) = '')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
parent::mrow /parent::*[ self::msup or self::msubsup]
and
ancestor::* [ following-sibling::* ][1]
/ following-sibling::* [ normalize-space(.) != '' ][1]
[
self::msup
and
(normalize-space(child::mrow[
@class = 'mrow-base' ]) = '')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="span[
(@class = 'begin-script')
or (@class = 'mid-script')
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="*|text()|comment()"
mode="clean-script" />
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="clean-script" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="*|text()|comment()"
mode="clean-script" />
</xsl:copy>
</xsl:template>
<xsl:template match="text()" mode="clean-script" >
</xsl:template>
<xsl:template match="span[@class = 'scripts-extra']"
mode="clean-script" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:value-of select="
ancestor::span[
(@class = 'begin-script')
or (@class = 'mid-script') ] [1]
" />
</xsl:copy>
</xsl:template>
<xsl:template match="mfrac[
(
(translate(
concat(
mrow[ (@class = 'mrow-numerator')],
mrow[ (@class = 'mrow-enumerator')]
) ,'0123456789','') = '')
and
not(descendant::*/descendant::*
/descendant::mn-group-s)
or
(@class = 'word-frac')
)
and
preceding-sibling::*[1]
/ self::mn-group-s[ child::*[
(position() = last())
and
self::mn
] ]
]" >
<xsl:text> and </xsl:text>
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
<xsl:template match="mo[
(@class = 'MathClass-bin')
and
( normalize-space(.) =
normalize-space(descendant::span[@class = 'ch 2212'])
)
and
( preceding-sibling::*[1][
(@title='speech-extra')
or (@class='MathClass-bin')
or (@class='MathClass-rel')
or (@class='MathClass-punc')
or (@class='MathClass-op')
or self::mn-group-s [ child::* [
(position() = last())
and
(@class='MathClass-punc')
] ] ]
and
(
following-sibling::*[1][ self::mn-group-s
or self::mi ]
or
(count(following-sibling::*[
not(@title = 'speech-extra')
]) = 1)
)
or
not(preceding-sibling::*) and following-sibling::*
)
]" >
<xsl:copy>
<xsl:attribute name="class">
<xsl:text>mo-unary</xsl:text>
</xsl:attribute>
<xsl:apply-templates select="*|text()|comment()"
mode="minus-neg" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" mode="minus-neg" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()"
mode="minus-neg" />
</xsl:copy>
</xsl:template>
<xsl:template match="text()" mode="minus-neg" >
<xsl:choose>
<xsl:when test=" . = 'minus' " >
<xsl:text>negative</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="span[ @class = 'end-limits-script' ]" >
<xsl:if test=" parent::*[ not(following-sibling::*) ] ">
<xsl:copy>
<xsl:apply-templates select=" @* " />
<xsl:choose>
<xsl:when test="
parent::*[ preceding-sibling::mrow[
@class != 'limits-mrow-base'
] ]
" >
<BREAK SIZE="small"/>
<xsl:text> end scripts </xsl:text>
<BREAK SIZE="small"/>
</xsl:when>
<xsl:otherwise>
<BREAK SIZE="small"/>
<xsl:text> end script </xsl:text>
<BREAK SIZE="small"/>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:if>
</xsl:template>
<xsl:template match="span[ @class = 'begin-limits-script' ]" >
<xsl:copy>
<xsl:apply-templates select=" @* " />
<xsl:choose>
<xsl:when test="
parent::*[ @class = 'limits-mrow-super' ]
" >
<xsl:apply-templates
select=" parent::*
/ preceding-sibling::*[1] "
mode = "extra-over" />
</xsl:when>
<xsl:when test="
parent::*[ @class = 'limits-mrow-sub' ]
" >
<xsl:apply-templates
select=" parent::*
/ preceding-sibling::*[1] "
mode = "extra-under" />
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="*|text()|comment()" />
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="extra-over" >
<xsl:if test = " self::mrow[ @class = 'limits-mrow-super' ] " >
<xsl:text> over </xsl:text>
<xsl:apply-templates select=" preceding-sibling::*[1] "
mode = "extra-over" />
</xsl:if>
</xsl:template>
<xsl:template match="*" mode="extra-under" >
<xsl:if test = " self::mrow[ @class = 'limits-mrow-sub' ] " >
<xsl:text> under </xsl:text>
<xsl:apply-templates select=" preceding-sibling::*[1] "
mode = "extra-under" />
</xsl:if>
</xsl:template>
<xsl:template match="span[
(@class = 'begin-script')
and
following-sibling::*[ not(@title = 'speech-extra') ] [1]
/ descendant-or-self::*[ not( self::PROS ) ][1]
/
child::span / child::span[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
preceding-sibling::*[ not(@title = 'speech-extra') ] [1]
/ descendant-or-self::*[ not( self::PROS ) ][1]
/
child::span / child::span[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="mrow[
(@class = 'mrow-super')
and
parent::msup
and
(count( child::*[ not(@title = 'speech-extra')
and not( self::BREAK )
]
) = 1)
and
child::*[ not(@title = 'speech-extra')
and not( self::BREAK )
]
[1][
normalize-space(.)
=
normalize-space(
descendant::span[@class = 'ch 2218']
)
]
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates
select="*[not(@title = 'speech-extra')
and
not(self::BREAK)
]"
mode="degree" />
<BREAK SIZE="small"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="degree" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:choose>
<xsl:when test="self::span[ @class='ch 2218' ]" >
<xsl:text>degree</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates
select="*[not(self::BREAK)]|text()"
mode="degree"/>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="inline-math" />
<sax name="." xml="." content-handler="tex4ht.JsmlMathBreak" />
<set name="inline-math-2" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*" mode="content" >
<xsl:choose>
<xsl:when test=" @class = 'char' " >
<xsl:if test="not( child::*[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
] )">
<xsl:text>x</xsl:text>
</xsl:if>
</xsl:when>
<xsl:when test=" not(
(@title = 'speech-extra') or (@class = 'accent-char')
) " >
<xsl:apply-templates select="*|text()" mode="content" />
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
ancestor::*[ preceding-sibling::* [
((@class = 'begin-script') or (@class = 'mid-script')) ]]
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="
ancestor::*[ preceding-sibling::* [
((@class = 'begin-script') or
(@class = 'mid-script')) ]][1]
/ preceding-sibling::* [
((@class = 'begin-script') or
(@class = 'mid-script')) ][1]
" mode="script-copy" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()"
mode="script-copy" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
<xsl:template match="span[
(@class = 'begin-script') or
(@class = 'mid-script') ]" mode="script-copy" >
<xsl:apply-templates select="*|text()|comment()" />
</xsl:template>
<xsl:template match="span[
((@class = 'begin-script') or (@class = 'mid-script'))
and
following-sibling::*
/ following-sibling::span[ @class = 'end-script' ]
and
following-sibling::*[1]
/ descendant-or-self::*[ not(self::PROS) ][1]
/ child::*[1][
(@class = 'mrow-base')
and
(normalize-space(.)='')
]
]" >
</xsl:template>
<xsl:template match="span[
(@class = 'begin-script')
and
following-sibling::* [1] / child::*[
(position() = 1)
and
(@class = 'mrow-base')
and
( normalize-space(.) = '' )
]
]" >
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="inline-math-2" />
</script>
<script element="div::display-math" >
<set name="num-sub" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="msub[
(
(count( child::mrow[ @class = 'mrow-base' ]
/ child::* ) = 1 )
and child::mrow[ @class = 'mrow-base' ] / descendant::mi
and not( ancestor::*[
self::msub or self::msup or self::msubsup
] )
or
(
count( child::mrow[ @class = 'mrow-base' ]
/ child::* [
not(self::BREAK)
]
) = 2 )
and child::mrow[ @class = 'mrow-base' ] [
child::*[1][ self::mi ]
and
child::*[
(position() > 1)
and
(normalize-space(.) =
normalize-space(
descendant-or-self::span[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
]
))
]
]
and not( ancestor::*[
self::msub or self::msup or self::msubsup
] )
)
and
child::mrow[ @class = 'mrow-sub' ]
/ child::*[ not(@title = 'speech-extra') ][1]
/ self::*[
normalize-space(.)
= normalize-space( descendant::mn ) ]
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<BREAK SIZE="small"/>
<xsl:apply-templates select="*[1]" />
<mrow class="mrow-sub">
<xsl:apply-templates
select="*[2] / *[
not(@title = 'speech-extra')
]" />
<BREAK SIZE="small"/>
</mrow>
</xsl:copy>
</xsl:template>
<xsl:template match="msubsup[
(
(count( child::mrow[ @class = 'mrow-base' ]
/ child::* ) = 1 )
and child::mrow[ @class = 'mrow-base' ] / descendant::mi
and not( ancestor::*[
self::msub or self::msup or self::msubsup
] )
)
and
child::mrow[ @class = 'mrow-sub' ]
/ child::*[ not(@title = 'speech-extra') ][1]
/ self::*[
normalize-space(.)
= normalize-space( descendant::mn ) ]
]" >
<msup>
<BREAK SIZE="small"/>
<xsl:apply-templates select="*[1]" />
<mrow class="mrow-sub">
<xsl:apply-templates
select="*[2] / *[
not(@title = 'speech-extra')
]" />
<BREAK SIZE="small"/>
</mrow>
<xsl:apply-templates select="*[3]" />
</msup>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="num-sub" />
<dom name="." xml="." method="fracLevel" class="tex4ht.HtJsml" />
<set name="rmXmlDecl" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="rmXmlDecl" />
<dom name="." xml="." method="scriptLevel" class="tex4ht.HtJsml" />
<set name="rmXmlDecl" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="rmXmlDecl" />
<dom name="." xml="." method="rootLevel" class="tex4ht.HtJsml" />
<set name="rmXmlDecl" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="rmXmlDecl" />
<set name="display-math" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="mn-group-s" >
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:template>
<xsl:template match="mo[
(@class='MathClass-punc')
and ( (.='.') or (.=',') or (.='!')
or (.=';') or (.=':') or (.='?') )
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<BREAK SIZE="small"/>
<xsl:choose>
<xsl:when test=" .='.' " >
<SAYAS SUB="dot">.</SAYAS>
</xsl:when>
<xsl:when test=" .=',' " >
<SAYAS SUB="comma">,</SAYAS>
</xsl:when>
<xsl:when test=" .=';' " >
<SAYAS SUB="semicolon">;</SAYAS>
</xsl:when>
<xsl:when test=" .=':' " >
<SAYAS SUB="colon">:</SAYAS>
</xsl:when>
<xsl:when test=" .='!' " >
<SAYAS SUB="exclamation mark">!</SAYAS>
</xsl:when>
<xsl:when test=" .='?' " >
<SAYAS SUB="question mark">?</SAYAS>
</xsl:when>
</xsl:choose>
<BREAK SIZE="small"/>
</xsl:copy>
</xsl:template>
<xsl:template match="mn[
ancestor::mover[
not( descendant::*[
(count( child::*[ not(@title = 'speech-extra')
and not( self::BREAK )
]
) > 1)
])
and
(
preceding-sibling::*[1][self::dot or self::mn-group-s]
or
following-sibling::*[1][self::dot or self::mn-group-s]
)
]
or
ancestor::munder[
not( descendant::*[
(count( child::*[ not(@title = 'speech-extra')
and not( self::BREAK )
]
) > 1)
])
and
(
preceding-sibling::*[1][self::dot or self::mn-group-s]
or
following-sibling::*[1][self::dot or self::mn-group-s]
)
]
]" >
<xsl:copy>
<SAYAS CLASS="digits">
<xsl:value-of select="." />
</SAYAS>
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="content" >
<xsl:choose>
<xsl:when test=" @class = 'char' " >
<xsl:if test="not( child::*[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
] )">
<xsl:text>x</xsl:text>
</xsl:if>
</xsl:when>
<xsl:when test=" not(
(@title = 'speech-extra') or (@class = 'accent-char')
) " >
<xsl:apply-templates select="*|text()" mode="content" />
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
ancestor::* [ following-sibling::* [
not( @class = 'content-less' )
]
][1]
/ following-sibling::* [
not( @class = 'content-less' )
][1]
/ self::*
[
(@class = 'end-math')
or
(@class = 'end-script')
or
(@class = 'end-root')
or
(@class = 'end-stack')
or
(@class = 'mid-stack')
or
(@class = 'end-array')
or
self::td or self::mtd or self::tr or self::mtr
or
(@title = 'implicit-baseline')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
parent::mrow / parent::msub
and
ancestor::* [ following-sibling::* ][1]
/ following-sibling::* [ normalize-space(.) != '' ][1]
[
(self::msub or self::msubsup)
and
(normalize-space(child::mrow[
@class = 'mrow-base' ]) = '')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
parent::mrow /parent::*[ self::msup or self::msubsup]
and
ancestor::* [ following-sibling::* ][1]
/ following-sibling::* [ normalize-space(.) != '' ][1]
[
self::msup
and
(normalize-space(child::mrow[
@class = 'mrow-base' ]) = '')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="span[
(@class = 'begin-script')
or (@class = 'mid-script')
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="*|text()|comment()"
mode="clean-script" />
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="clean-script" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="*|text()|comment()"
mode="clean-script" />
</xsl:copy>
</xsl:template>
<xsl:template match="text()" mode="clean-script" >
</xsl:template>
<xsl:template match="span[@class = 'scripts-extra']"
mode="clean-script" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:value-of select="
ancestor::span[
(@class = 'begin-script')
or (@class = 'mid-script') ] [1]
" />
</xsl:copy>
</xsl:template>
<xsl:template match="mfrac[
(
(translate(
concat(
mrow[ (@class = 'mrow-numerator')],
mrow[ (@class = 'mrow-enumerator')]
) ,'0123456789','') = '')
and
not(descendant::*/descendant::*
/descendant::mn-group-s)
or
(@class = 'word-frac')
)
and
preceding-sibling::*[1]
/ self::mn-group-s[ child::*[
(position() = last())
and
self::mn
] ]
]" >
<xsl:text> and </xsl:text>
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
<xsl:template match="mo[
(@class = 'MathClass-bin')
and
( normalize-space(.) =
normalize-space(descendant::span[@class = 'ch 2212'])
)
and
( preceding-sibling::*[1][
(@title='speech-extra')
or (@class='MathClass-bin')
or (@class='MathClass-rel')
or (@class='MathClass-punc')
or (@class='MathClass-op')
or self::mn-group-s [ child::* [
(position() = last())
and
(@class='MathClass-punc')
] ] ]
and
(
following-sibling::*[1][ self::mn-group-s
or self::mi ]
or
(count(following-sibling::*[
not(@title = 'speech-extra')
]) = 1)
)
or
not(preceding-sibling::*) and following-sibling::*
)
]" >
<xsl:copy>
<xsl:attribute name="class">
<xsl:text>mo-unary</xsl:text>
</xsl:attribute>
<xsl:apply-templates select="*|text()|comment()"
mode="minus-neg" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" mode="minus-neg" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()"
mode="minus-neg" />
</xsl:copy>
</xsl:template>
<xsl:template match="text()" mode="minus-neg" >
<xsl:choose>
<xsl:when test=" . = 'minus' " >
<xsl:text>negative</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="span[ @class = 'end-limits-script' ]" >
<xsl:if test=" parent::*[ not(following-sibling::*) ] ">
<xsl:copy>
<xsl:apply-templates select=" @* " />
<xsl:choose>
<xsl:when test="
parent::*[ preceding-sibling::mrow[
@class != 'limits-mrow-base'
] ]
" >
<BREAK SIZE="small"/>
<xsl:text> end scripts </xsl:text>
<BREAK SIZE="small"/>
</xsl:when>
<xsl:otherwise>
<BREAK SIZE="small"/>
<xsl:text> end script </xsl:text>
<BREAK SIZE="small"/>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:if>
</xsl:template>
<xsl:template match="span[ @class = 'begin-limits-script' ]" >
<xsl:copy>
<xsl:apply-templates select=" @* " />
<xsl:choose>
<xsl:when test="
parent::*[ @class = 'limits-mrow-super' ]
" >
<xsl:apply-templates
select=" parent::*
/ preceding-sibling::*[1] "
mode = "extra-over" />
</xsl:when>
<xsl:when test="
parent::*[ @class = 'limits-mrow-sub' ]
" >
<xsl:apply-templates
select=" parent::*
/ preceding-sibling::*[1] "
mode = "extra-under" />
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="*|text()|comment()" />
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="extra-over" >
<xsl:if test = " self::mrow[ @class = 'limits-mrow-super' ] " >
<xsl:text> over </xsl:text>
<xsl:apply-templates select=" preceding-sibling::*[1] "
mode = "extra-over" />
</xsl:if>
</xsl:template>
<xsl:template match="*" mode="extra-under" >
<xsl:if test = " self::mrow[ @class = 'limits-mrow-sub' ] " >
<xsl:text> under </xsl:text>
<xsl:apply-templates select=" preceding-sibling::*[1] "
mode = "extra-under" />
</xsl:if>
</xsl:template>
<xsl:template match="span[
(@class = 'begin-script')
and
following-sibling::*[ not(@title = 'speech-extra') ] [1]
/ descendant-or-self::*[ not( self::PROS ) ][1]
/
child::span / child::span[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
preceding-sibling::*[ not(@title = 'speech-extra') ] [1]
/ descendant-or-self::*[ not( self::PROS ) ][1]
/
child::span / child::span[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
]
]" >
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="mrow[
(@class = 'mrow-super')
and
parent::msup
and
(count( child::*[ not(@title = 'speech-extra')
and not( self::BREAK )
]
) = 1)
and
child::*[ not(@title = 'speech-extra')
and not( self::BREAK )
]
[1][
normalize-space(.)
=
normalize-space(
descendant::span[@class = 'ch 2218']
)
]
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates
select="*[not(@title = 'speech-extra')
and
not(self::BREAK)
]"
mode="degree" />
<BREAK SIZE="small"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="degree" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:choose>
<xsl:when test="self::span[ @class='ch 2218' ]" >
<xsl:text>degree</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates
select="*[not(self::BREAK)]|text()"
mode="degree"/>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="display-math" />
<sax name="." xml="." content-handler="tex4ht.JsmlMathBreak" />
<set name="display-math-2" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*" mode="content" >
<xsl:choose>
<xsl:when test=" @class = 'char' " >
<xsl:if test="not( child::*[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
] )">
<xsl:text>x</xsl:text>
</xsl:if>
</xsl:when>
<xsl:when test=" not(
(@title = 'speech-extra') or (@class = 'accent-char')
) " >
<xsl:apply-templates select="*|text()" mode="content" />
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="span[
(@class = 'end-script')
and
ancestor::*[ preceding-sibling::* [
((@class = 'begin-script') or (@class = 'mid-script')) ]]
]" >
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="
ancestor::*[ preceding-sibling::* [
((@class = 'begin-script') or
(@class = 'mid-script')) ]][1]
/ preceding-sibling::* [
((@class = 'begin-script') or
(@class = 'mid-script')) ][1]
" mode="script-copy" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()"
mode="script-copy" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
<xsl:template match="span[
(@class = 'begin-script') or
(@class = 'mid-script') ]" mode="script-copy" >
<xsl:apply-templates select="*|text()|comment()" />
</xsl:template>
<xsl:template match="span[
((@class = 'begin-script') or (@class = 'mid-script'))
and
following-sibling::*
/ following-sibling::span[ @class = 'end-script' ]
and
following-sibling::*[1]
/ descendant-or-self::*[ not(self::PROS) ][1]
/ child::*[1][
(@class = 'mrow-base')
and
(normalize-space(.)='')
]
]" >
</xsl:template>
<xsl:template match="span[
(@class = 'begin-script')
and
following-sibling::* [1] / child::*[
(position() = 1)
and
(@class = 'mrow-base')
and
( normalize-space(.) = '' )
]
]" >
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="display-math-2" />
</script>
<script element="PARA" >
<set name="apostro" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="span[
(@class = 'char-del')
and child::span [ @class = 'ch 2019' ]
]" >
<xsl:text>'</xsl:text>
</xsl:template>
<xsl:template match="PROS[ parent::SENT[@class='ol-mark'] ]" >
<xsl:copy>
<xsl:apply-templates
select="*[not(@class='char-del')]|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
<xsl:template match=" PARA[ normalize-space(.) = '' ] " >
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="apostro" />
</script>
<script element="div::split-side" >
<set name="clean-split" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="*" mode="content" >
<xsl:choose>
<xsl:when test=" @class = 'char' " >
<xsl:if test="not( child::*[
(@class = 'ch 2032') or (@class = 'ch 2033')
or (@class = 'ch 2034')
] )">
<xsl:text>x</xsl:text>
</xsl:if>
</xsl:when>
<xsl:when test=" not(
(@title = 'speech-extra') or (@class = 'accent-char')
) " >
<xsl:apply-templates select="*|text()" mode="content" />
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match=" div[ @class='split-side' ]
" >
<xsl:variable name="content">
<xsl:apply-templates select="*" mode="content" />
</xsl:variable>
<xsl:if test="
string-length( normalize-space( $content )) != 0
" >
<xsl:copy>
<xsl:apply-templates select=" *|@*|text()|comment() " />
</xsl:copy>
</xsl:if>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="clean-split" />
</script>
<script element="div::newtheorem" >
<set name="newtheorem" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="
div[ (@class='newtheorem')
and
descendant::*[ self::p ][1]
/ descendant::*[ self::span ][1]
[ @class = 'theorem-head' ]
]
" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
<div class="begin-end" title="speech-extra">
<BREAK SIZE="small"/>
<xsl:value-of select="
concat( ' end ',
substring-before(concat(
normalize-space(
string(
descendant::*[ self::p ][1]
/ descendant::*[ self::span ][1]
[ @class = 'theorem-head' ]
) )
, ' '
)
, ' ')
) " />
</div>
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="newtheorem" />
</script>
<script element="br" >
<set name="br" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="br" >
<xsl:copy>
<xsl:apply-templates select="@*" />
</xsl:copy>
<BREAK SIZE="small"/>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="br" />
</script>
<script element="BREAK" >
<set name="BREAK" >
<![CDATA[
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output omit-xml-declaration = "yes" />
<xsl:template match="BREAK" >
<xsl:copy>
<xsl:apply-templates select="@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="*|@*|text()|comment()" >
<xsl:copy>
<xsl:apply-templates select="*|@*|text()|comment()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
]]>
</set>
<xslt name="." xml="." xsl="BREAK" />
</script>
</sax>
</xtpipes>