更正 MATHJAX 2.7.1 的 @font-face 以避免“确保文本在 Webfont 加载期间保持可见”错误

Posted

技术标签:

【中文标题】更正 MATHJAX 2.7.1 的 @font-face 以避免“确保文本在 Webfont 加载期间保持可见”错误【英文标题】:Correct @font-face for MATHJAX 2.7.1 to avoid a "Ensure text remains visible during Webfont load" error更正 MATHJAX 2.7.1 的 @font-face 以避免“确保文本在 Webfont 加载期间保持可见”错误 【发布时间】:2022-01-13 09:38:54 【问题描述】:

我在我的博客网站上使用 Mathjax 2.7.1。它可以很好地显示方程。但是,当我检查网页的性能时,我在 Google PageSpeed Insights 中遇到错误。

以下 URL 导致 “确保文本在 Webfont 加载期间保持可见” 错误:

https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/fonts/html-CSS/TeX/woff/MathJax_Main-Regular.woff?V=2.7.1

https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff?V=2.7.1

https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff?V=2.7.1

如何消除此错误? Mathjax 2.7.1 的正确 @font-face 是什么?

我正在使用以下脚本来启用我网站中的功能:

<script async='async' src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js' type='text/javascript'>
    MathJax.Hub.Config(
    extensions: ["tex2jax.js","TeX/AMSmath.js","TeX/AMSsymbols.js"],
    jax: ["input/TeX", "output/HTML-CSS"],
    tex2jax: 
        inlineMath: [ ['$','$'], ["\\(","\\)"] ],
        displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
    ,
    "HTML-CSS":  availableFonts: ["TeX"] 
    );
</script>

【问题讨论】:

【参考方案1】:

您可以在 CSS 中使用 font-display: swap;。这可以防止在渲染过程中出现阻塞,并且文本将保持可见。

* 
    font-display: swap;

https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display

【讨论】:

在CSS中加入这一行并不能达到目的。我使用了另一个字体名称“Fontawesome”。对于这个字体,我使用了 CSS 块:@font-face font-family: "FontAwesome";字体粗细:正常;字体显示:交换;字体样式:正常; src: url("maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/…) 格式("woff2"); 因此,mathjax 需要一个适当的 @font-face 块。

以上是关于更正 MATHJAX 2.7.1 的 @font-face 以避免“确保文本在 Webfont 加载期间保持可见”错误的主要内容,如果未能解决你的问题,请参考以下文章

MathJax基本的使用方式

MathJax的使用

MathJax 类型设置

MathJax 不处理乳胶环境

五分钟上手MAthJax

延迟特定元素的 MathJax 处理