Jekyll 从MathJax 2.7.5升级到3.0,尝试保留自定义TeX环境

Jekyll 从MathJax 2.7.5升级到3.0,尝试保留自定义TeX环境,jekyll,github-pages,mathjax,tex,Jekyll,Github Pages,Mathjax,Tex,我在GitHub页面上的Jekyll博客中使用MathJax。事实上,我写了一篇博客文章,详细介绍了我为建立MathJax 2.7.5所采取的步骤:(2018年8月) 对于一些帖子,我想使用一个psmallmatrix环境,就像mathtools包中的环境:$\begin{psmallmatrix}1\\0\end{psmallmatrix}$$。我知道如何使用\newenvironment命令在实际TeX中创建这样的环境: 但是为了在MathJax 2.7.5中获得“预加载”命令,我正在这样做

我在GitHub页面上的Jekyll博客中使用MathJax。事实上,我写了一篇博客文章,详细介绍了我为建立MathJax 2.7.5所采取的步骤:(2018年8月)

对于一些帖子,我想使用一个
psmallmatrix
环境,就像
mathtools
包中的环境:
$\begin{psmallmatrix}1\\0\end{psmallmatrix}$$
。我知道如何使用
\newenvironment
命令在实际TeX中创建这样的环境:

但是为了在MathJax 2.7.5中获得“预加载”命令,我正在这样做,从MathJax版本的AMSmath包中提取一些代码:

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: [
      "MathMenu.js",
      "MathZoom.js",
      "AssistiveMML.js",
      "a11y/accessibility-menu.js"
    ],
    jax: ["input/TeX", "output/CommonHTML"],
    TeX: {
      extensions: [
        "AMSmath.js",
        "AMSsymbols.js",
        "noErrors.js",
        "noUndefined.js",
      ]
    }
  });
  MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
    var TEX = MathJax.InputJax.TeX;
    var COLS = function (W) {
      var WW = [];
      for (var i = 0, m = W.length; i < m; i++)
        {WW[i] = TEX.Parse.prototype.Em(W[i])}
      return WW.join(" ");
    };
    TEX.Definitions.Add({
      environment: {
        psmallmatrix: ['Array',null,'(',')','c',COLS([1/3]),".2em",'S',1],
      }
    });
  });
</script>
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js">
</script>
如何在MathJax 3.0中恢复手工制作的
psmallmatrix
环境?只要我能继续用
\begin{psmallmatrix}
调用它,格式就只需要大致相同

我应该提到的是,给出一个如何用宏“预加载”TeX解析器的示例,大致相当于
\newcommand
的作用。文件说:

window.MathJax = {
  tex: {
    macros: {
      RR: "{\\bf R}",
      bold: ["{\\bf #1}", 1]
    }
  }
};

但是文档缺少如何为
\newenvironment

执行相同操作的示例。下面是一个将
psmallmatrix
环境添加到AMS环境列表的配置。应该有一种预配置环境的方法,类似于对宏执行的操作。我已经在MathJax GitHub存储库中为它做了一个测试

现在,添加


MathJax={
启动:{
就绪(){
startup.defaultReady();
const Macro=MathJax.jax.input.tex.Symbol.Macro;
const MapHandler=MathJax.\ujax.input.tex.MapHandler.MapHandler;
const Array=MathJax.\ujax.input.tex.ams.AmsMethods.AmsMethods.Array;
const env=new宏('psmallmatrix',Array,[null',(','),'c','.333em','.2em','S',1]);
getMap('AMSmath-environment').add('psmallmatrix',env);
}
}
};

作为启用
psmallmatrix
环境的配置。

以下是将
psmallmatrix
环境添加到AMS环境列表中的配置。应该有一种预配置环境的方法,类似于对宏执行的操作。我已经在MathJax GitHub存储库中为它做了一个测试

现在,添加


MathJax={
启动:{
就绪(){
startup.defaultReady();
const Macro=MathJax.jax.input.tex.Symbol.Macro;
const MapHandler=MathJax.\ujax.input.tex.MapHandler.MapHandler;
const Array=MathJax.\ujax.input.tex.ams.AmsMethods.AmsMethods.Array;
const env=new宏('psmallmatrix',Array,[null',(','),'c','.333em','.2em','S',1]);
getMap('AMSmath-environment').add('psmallmatrix',env);
}
}
};

作为您启用
psmallmatrix
环境的配置。

我一周前交叉发布了这个问题,但它似乎死在那里了。MathJax 3的
ams
扩展的未精简源代码是(及其同级源文件),但是我不知道MathJax是如何从另一个代码中找到一位代码的。我在一周前交叉发布了这个问题,但它似乎死在那里了。MathJax 3的
ams
扩展的未精简源代码是(及其兄弟源文件),但我不知道MathJax是如何从另一个代码中找到一位代码的。当我,我得到一个JS错误,Safari控制台报告为
未处理的承诺拒绝:TypeError:t.setAttribute不是函数。(在“t.setAttribute(e,r)”中,“t.setAttribute”未定义)
和Chrome控制台报告为
Uncaught(In promise)TypeError:t.setAttribute不是函数/at c.setAttribute(tex-chtml.js:1)at e.assistiveMml(tex-chtml.js:1)[…]at new promise()
。想法?尝试通过在配置中添加
选项:{renderActions:{assistiveMml:[]}}
来禁用辅助mml扩展(Chrome表示错误正在发生),并查看是否允许页面处理。此外,这可能与页面内容有关(它在您发送给我的页面上起作用)。页面上是否有任何转义的美元符号?此外,如果您删除配置,页面是否处理(缺少的psmallmatrix环境除外)?它在您发送给我的页面上工作-您的意思是为您呈现?对我来说,之后,我明白了。之后,我明白了。之后,我看到了。在定义
数组
变量的行中将
default
更改为
AmsMethods
。版本3.1.2改变了这种结构。当我看到一个JS错误时,Safari控制台报告为
未处理的承诺拒绝:TypeError:t.setAttribute不是一个函数。(在“t.setAttribute(e,r)”中,“t.setAttribute”未定义)
和Chrome控制台报告为
Uncaught(In promise)TypeError:t.setAttribute不是函数/at c.setAttribute(tex-chtml.js:1)at e.assistiveMml(tex-chtml.js:1)[…]at new promise()
。想法?尝试通过在配置中添加
选项:{renderActions:{assistiveMml:[]}}
来禁用辅助mml扩展(Chrome表示错误正在发生),并查看是否允许页面处理。此外,这可能与页面内容有关(它在您发送给我的页面上起作用)。页面上是否有任何转义的美元符号?此外,如果您删除配置,页面是否处理(缺少的psmallmatrix环境除外)?它在您发送给我的页面上工作-您的意思是为您呈现?对我来说,之后,我明白了。之后,我明白了。之后,我看到了。在定义
数组
变量的行中将
default
更改为
AmsMethods
。版本3.1.2改变了这种结构。
window.MathJax = {
  tex: {
    macros: {
      RR: "{\\bf R}",
      bold: ["{\\bf #1}", 1]
    }
  }
};