javascript - XSLT 和 MathJax

标签 javascript xml xslt mathjax tei

我是 XSLT 和 StackOverflow 的新手。我正在尝试使用 TEI Boilerplate用于在浏览器中呈现 TEI 文档的样式表。一切都很顺利,直到我尝试让 MathJax 渲染公式。我已从 TEI Boilerplate 的本地副本修改了 teibp.xsl 以包含

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

就在 </head> 之前htmlHead 模板中的标签。但是,当我在浏览器中加载文档时,MathJax 根本不渲染公式,而我只是在将 LaTeX 标记键入 XML 文件时获得 LaTeX 标记。我尝试将对 MathJax.js 的调用移动到标题顶部、正文中的各个点,但没有成功。我还尝试加载页面,然后加载 MathJax bookmarklet但这也无法使其渲染。

我是不是在做一些愚蠢的事情?有人能指出我正确的方向吗?我在下面粘贴了一个最小的 XML 文件,该文件适用于 TEIBP,而不适用于 MathJax 渲染。

提前致谢。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="teibp.xsl"?>
<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_allPlus.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
   <teiHeader>
      <fileDesc>
         <titleStmt>
            <title>MathJax test</title>
         </titleStmt>
         <publicationStmt>
            <p>2015</p>
         </publicationStmt>
         <sourceDesc>
            <p>Born digital</p>
         </sourceDesc>
      </fileDesc>
      <encodingDesc>
         <p>Born digital</p>
      </encodingDesc>
   </teiHeader>
   <text>

      <body>
         <p>\(ax^2+bx+c=0\)</p>
      </body>
   </text>
</TEI>

最佳答案

据我所知,您使用的样式表使用 xsl:output method="xml" 将 XML 转换为 XHTML,看起来好像该组合(XHTML 是客户端生成的结果) side XSLT)与 MathJax 一起中断,至少在像 http://home.arcor.de/martin.honnen/xslt/test2015092902.xml 这样的简单测试用例中是这样。在 Firefox 中(错误消息“TypeError:this.div.style 未定义”)和 Chrome(“未捕获的 TypeError:无法设置未定义的属性“显示””)。在类似的测试用例中http://home.arcor.de/martin.honnen/xslt/test2015092903.xml转换为 HTML 时不使用 namespace ,并且 xsl:output method="html" XSLT 和 MathJax 的组合有效(意味着呈现数学公式)。然而,使用静态 XHTML(即静态 XHTML 文档)对 MathJax 进行简单测试表明 MathJax 可以处理 XHTML。因此,您要么需要有人修复 MathJax 以处理客户端 XSLT 转换的 X(HT)ML 结果,要么需要尝试修复必须创建没有命名空间的 HTML 的样式表。

关于javascript - XSLT 和 MathJax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812350/

相关文章:

javascript - 如何重置此变量?

javascript - 在不触发事件的情况下替换 Kendo ObservableArray 的内容

c# - xmlns ='' > 不是预期的。 - XML 文档中存在错误 (2, 2)

ios - XML 解析器仅加载第一个对象

javascript - 在 XSL 中呈现 JavaScript

javascript - 连接到 Heroku Postgres - 服务器不支持 SSL 连接

javascript - 使用 ajax 将 JSON 发送到 Web 服务

xml - 如何停止计算空白页 XSLT/XSLFO

xml - XSLT:替换两个节点之间的文本

java - XSLT 处理递归深度