【问题标题】:MathJax TypeSettingMathJax 类型设置
【发布时间】:2019-01-17 23:35:11
【问题描述】:

我将 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

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

【问题讨论】:

    标签: mathjax


    【解决方案1】:

    你问的是两个完全不同的问题,但还是让我把它们总结一下。

    闪烁

    “闪烁”(可能)是 PreviewHTML 输出 )docs)。这可能令人惊讶,但因为您正在加载的组合配置文件 (TeX-AMS-MML_HTMLorMML) MathJax 将首先运行 PreviewHTML 输出,然后是 HTML-CSS 输出(参见 the combined config docsfastpreview extension docs

    您可以像手动使用任何其他输出一样使用 PreviewHTML 输出,但请记住,它是一个不太完整(但速度更快)的输出处理器,它不需要网络字体(但使用系统具有的任何类似 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 可以为您做到这一点,参见 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>
    

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

    【讨论】:

    • 啊!是的,谢谢!!通过切换到仅 PreviewHTML,它起作用了!然而,由于不完整,一些方程变得不可读。那么请问是否有办法只减少 MML 输出的 font-size 或 font-weight ?当前的方程式字体看起来太大太重了...
    • 您不能更改将重量减少到低于其最小值。您可以更改字体大小(例如使用 CSS),但 x-height 将不再匹配周围的字体(这是 MathJax 的一个功能)。根据我的经验,您可能想测试 MathJax 支持的另一种字体是否更适合您周围的字体。查看文档以了解如何切换字体。
    • 那是非常有见地和教育的!谢谢你:)
    • 彼得给了你正确的解决方案,但他说的一件事不太对。他说页面上的所有脚本都是异步加载的,但事实并非如此。在您的情况下,脚本同步加载的,但是由于您使用的是旧 CDN,因此该服务器上的 MathJax.js 文件会同步加载,但它会通过插入新脚本将您重定向到新 CDN从那里加载(并且该脚本异步的)。如果您已更改为 cdnjs.cloudflare.com 地址,那么您的页面将像过去一样工作。一个小小的挑剔。
    • @davide 是的,我一开始也是这么想的。但是源与页面上的 html 不匹配,其中源被 Octopress 处理为异步调用。不过我应该说清楚的。
    猜你喜欢
    • 2014-11-26
    • 2016-03-05
    • 2011-08-04
    • 2014-03-02
    • 2019-02-09
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    相关资源
    最近更新 更多