MathJax 类型设置

MathJax TypeSetting

我正在为我的个人博客使用 MathJax(使用 Jekyll 在 Github 上托管)。

我发现刷新页面时MathJax方程式会闪烁,本来字体比较小,看起来很细,不到半秒后,刷新一下就加粗了很多。

与粗体版本相比,我认为我更喜欢细字体样式和更小的方程式(与文本内联看起来更好),所以我尝试配置它但失败了。这是我现在正在查看的文档:http://docs.mathjax.org/en/latest/options/output-processors/HTML-CSS.html#configure-html-css

我的设置不起作用:

 <script type="text/x-mathjax-config"> 
    MathJax.Hub.Config({
      tex2jax: {
        inlineMath: [['$','$'], ['\(','\)']],
        displayMath: [['$$','$$']],
        processEscapes: true,
        skipTags: ["script","noscript","style","textarea"],
        preferredFont: "TeX",
        scale: 90,
        EqnChunkFactor: 1,
        EqnChunk: 1,
        EqnChunkDelay: 10
      }
    });
    </script>
    <script
      type="text/javascript"
      charset="utf-8"
      src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
    </script>
    <script
      type="text/javascript"
      charset="utf-8"
      src="https://vincenttam.github.io/javascripts/MathJaxLocal.js">
    </script>

顺便说一句,我也收到了这个烦人的错误消息 MathJaxLocal.js:1 Uncaught ReferenceError: MathJax is not defined

如果有人回答这个问题,将不胜感激!!

你问的是两个完全不同的问题,但让我把它们放在一起。

闪烁

"flickering"(可能)是 PreviewHTML 输出)docs). This may be surprising but comes from the fact that the combined configuration file you're loading (TeX-AMS-MML_HTMLorMML) MathJax will run the PreviewHTML output first, then the HTML-CSS output (cf. the combined config docs and the fastpreview extension docs

您可以像使用任何其他手动输出一样使用 PreviewHTML 输出,但请记住,它是一个不太完整(但速度更快)的输出处理器,它不需要 webfonts(但使用系统拥有的任何类似 Times 的字体) .

所以在 configuration docs 之后,类似于

  MathJax.Hub.Config({
    messageStyle: "none",
    extensions: ["tex2jax.js"],
    jax: ["input/TeX", "output/PreviewHTML"],
    tex2jax: {
      inlineMath: [ ['$','$'], ["\(","\)"] ],
      displayMath: [ ['$$','$$'], ["\[","\]"] ],
      processEscapes: true
      skipTags: ["script","noscript","style","textarea"]
    }
    TeX: { 
    // whatever is in MathJaxlocal.js
    }
  });

MathJax 未定义

错误是由于页面上的所有脚本都是异步加载的。 MathJaxlocal.js 很可能会在 MathJax.js 之前加载和执行(因为它在同一个域中)。

您需要确保在 MathJax 之前加载配置。幸运的是,MathJax 可以为您做到这一点 cf the docs.

把你的配置放在MathJaxLocal.js然后只加载

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=https://vincenttam.github.io/javascripts/MathJaxLocal.js"></script>

请参阅 link 以了解如何添加其他配置文件,包括来自 CDN 的组合文件 - 如果您想返回到完整的输出处理器,这将很有意义,因为组合配置的打包效率更高.