如何在config中的MathJax中定义自定义颜色?

时间:2017-06-23 07:22:37

标签: colors mathjax

注意:我知道我可以在$$\definecolor{somecolor}{RGB}{1243,45,46}$$的MathJax中定义自定义颜色,然后将其用作$$\color{somecolor}{test}$$

问题:但是,我想在MathJax配置对象中定义颜色,即我不想渲染相同的命令,例如每当我需要颜色时,每页都会$$\definecolor{somecolor}{RGB}{1243,45,46}$$。因此,我正在寻找一个看起来像这样的解决方案。

MathJax.Hub.Config({
  TeX: {
    // I can use this extension
    extensions: ["color.js"]
  }
  // I would like to define my custom colors here.
});

2 个答案:

答案 0 :(得分:1)

添加

MathJax.Hub.Register.StartupHook("TeX color Ready", function() {
     var color = MathJax.Extension["TeX/color"];
     color.colors["somecolor"] = color.getColor('RGB','123,45,46');
});

到配置块的底部(或者如果您正在使用plain JS,请将其放入AuthorInit来电。)

<强>更新

要回答评论中的问题,您可以通过直接写入颜色对象来在配置中使用HTML颜色。

MathJax.Hub.Register.StartupHook("TeX color Ready", function() {
     MathJax.Extension["TeX/color"].colors["somecolor"] = '#2B2B2B';
});

答案 1 :(得分:0)

如果最重要的是在一次定义颜色的中心位置,另一种解决方案是在MathJax配置文件中使用TeX扩展名“ HTML.js”(found here)来定义自定义颜色使用CSS。在TeX下的MathJax配置文件中,添加扩展名:

MathJax.Hub.Config({
  TeX: {
    extensions: ["HTML.js"] //plus any other extensions
  }
});

然后,您可以将CSS中的所有自定义颜色定义为类,并使用\{class}{math}将它们应用于表达式。例如,CSS可以为每种颜色(此处为“红色”和“蓝色”)提供类。

CSS

.red {color: #FF0011;}
.blue {color: #2200FF;}

然后$$\class{red}{a+b} + \class{blue}{c}$$将创建表达式“ a + b + c”,其中“ a + b”是红色阴影,而“ c”是蓝色阴影。