1

我是 XSLT 和 StackOverflow 的新手。我正在尝试使用TEI 样板样式表在浏览器中呈现 TEI 文档。一切顺利,直到我尝试让 MathJax 呈现公式。我已经从我的本地 TEI 样板副本中修改了 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 文件时得到它。我尝试将对 MathJax.js 的调用移动到标题的顶部,到正文中的各个点,但没有运气。我也尝试过加载页面,然后加载一个MathJax 小书签,但这也没有让它渲染。

我做的事情真的很愚蠢吗?有人能指出我正确的方向吗?我在下面粘贴了一个最小的 XML 文件,它与除了 MathJax 渲染之外的 TEIBP 一起使用。

提前致谢。

<?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>
4

2 回答 2

0

我遇到了这个问题,我解决了它动态加载 MathJax 脚本:

<script>//<![CDATA[
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/mml-svg.js';
  document.head.appendChild(script);
//]]></script>
于 2021-03-06T21:40:42.457 回答
0

据我所知,您使用的样式表将 XML 转换为xsl:output method="xml"XHTML http://home.arcor.de/martin.honnen/xslt/test2015092902.xml在 Firefox(错误消息“TypeError: this.div.style is undefined”)和 Chrome(“Uncaught TypeError: Cannot set property 'display'的未定义”)。在类似的测试用例http://home.arcor.de/martin.honnen/xslt/test2015092903.xml中,它转换为没有使用命名空间的 HTML,并且xsl:output method="html"XSLT 和 MathJax 的组合起作用(意味着呈现数学公式)。然而,使用静态 XHTML(即静态 XHTML 文档)对 MathJax 进行的简单测试表明,MathJax 可以处理 XHTML。因此,您需要有人修复 MathJax 以处理客户端 XSLT 转换的 X(HT)ML 结果,或者您需要尝试修复您必须创建没有命名空间的 HTML 的样式表。

于 2015-09-29T15:18:47.083 回答