Jekyll 从MathJax 2.7.5升级到3.0,尝试保留自定义TeX环境
我在GitHub页面上的Jekyll博客中使用MathJax。事实上,我写了一篇博客文章,详细介绍了我为建立MathJax 2.7.5所采取的步骤:(2018年8月) 对于一些帖子,我想使用一个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中获得“预加载”命令,我正在这样做
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]
}
}
};