【问题标题】:How do you change the color of an equation containing images in mathjax?如何在 mathjax 中更改包含图像的方程的颜色?
【发布时间】:2012-09-20 17:43:34
【问题描述】:

我注意到 math.SE 使用 mathjax 并且有蓝色的方程式。

注意无穷大符号的颜色。

但是人们会期望它保持黑色,因为 - 如此处所述:How to change equations color in MathJax - 这些符号实际上是不影响颜色的图像。像这样:

那么,它们如何改变这些图像的颜色呢?我认为这是不可能的。

【问题讨论】:

    标签: mathjax


    【解决方案1】:

    MathJax 现在应该只在极少数情况下使用图像模式。主要是当您使用 Firefox 查看本地文件(通过 file:// url)并且 MathJax 与正在查看的 HTML 文件不在同一目录中时。在这种情况下,Firefox 的同源策略认为 MathJax 位于单独的域中,因此无法访问基于 Web 的字体,因为它认为这是跨域访问。所以 MathJax 使用图像字体作为后备,因为它不能使用基于 Web 的字体。我猜这就是你正在发生的事情。

    Math.SE 没有这个问题,因为它不是 file:// url,而且 Firefox 识别域是什么也没有问题,所以你得到实际的基于 Web 的字体而不是图像,它们可以着色正确(与图像不同)。 Math.SE 不需要做任何特别的事情来实现这一点,而且您不是看到彩色图像,而是实际的字体。这就是与您的未着色示例的区别。

    解决 Firefox 本地文件问题的方法是在系统的字体文件夹中安装 STIX fonts 或 MathJax 自己的 OTF 字体。您可以在本地安装的 MathJax 发行版的 MathaJax/fonts/HTML-CSS/TeX/otf 目录中找到 MathJax 字体。如果这些在您的系统上可以作为实际字体使用,MathJax 就不必使用基于 Web 的版本,因此它可以避免 Firefox 的同源策略问题。这也将加速任何使用 MathJax 的页面(如 Math.SE),因为它不必通过网络下载字体。

    【讨论】:

    • 您能否详细说明“在您系统的字体文件夹中”?这是什么意思,如果您使用子域,它会起作用吗?
    • 我说的是在运行浏览器的计算机上安装字体。无论您的操作系统为何有效,您都需要将字体安装为系统字体。在 Windows 上,您可以将字体拖到 Fonts 文件夹(通过控制面板打开它)。在 MacOS 上,您可以将字体移动到 ~/Library/Fonts 目录。在 unix 上,我认为您将它们放在 ~/.fonts 中。我假设您正在使用 Firefox 在本地开发网页(使用file:// URL)。如果不是这样,您能否详细介绍一下您的设置?
    • 很抱歉让您感到困惑。不,我不在本地工作。您可以在此处查看我的工作 mathJax 示例:lrn2college.com 和此处的子域页面示例:testsubdom.lrn2college.com。这适用于 Chrome,但不适用于 Firefox。
    • 好吧,这仍然是 Firefox 在字体加载过程中的跨域限制,这会阻止 MathJax 访问基于 Web 的字体,因此它会超时等待它们并使用图像字体。本地文件是最常见的方式,但子域是另一种方式。您需要在主服务器 (lrn2college.com) 上设置访问控制,以允许跨域访问字体。请参阅the documentation 了解如何执行此操作。
    • 效果很好。这只会允许访问我的字体,所以在任何情况下都不是安全问题,对吧?
    猜你喜欢
    • 2011-04-26
    • 2021-04-06
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多