Linux - 已安装图标字体,但无法渲染

Linux - 已安装图标字体,但无法渲染

我安装了图标字体https://materialdesignicons.com在我的 Antergos 安装上,但它似乎没有渲染。运行fc-list它会在已安装字体的列表中显示它。我甚至可以使用gucharmap和查看字形。但尝试显示它们以进行复制时,什么都没有显示或显示奇怪的字符,如下所示:古查地图可能出了什么问题?

答案1

我再次阅读了你的问题:对于字体图标的工作方式似乎存在误解。

那么,他们如何不是有用吗?只需复制/粘贴即可。

如何它们有用吗?这是一种特殊的字体,没有常规字符字形。因此,当您输入时A,您实际上可能会得到一个 Microsoft Access 图标或其他东西。

让我们以 Font Awesome 为例。它是为在网络上使用而制作的,并附带 CSS 样式。例如,当您使用亚马逊图标时,将使用以下 CSS 类:

.fa-amazon::before {
    content: "\f270";
}

因此它使用代码点 0xF270 处的字符。当您尝试在其他字体中查看此字符时,您很可能看不到任何内容或看不到占位符:

根据 unicode-table.com这个代码点位于所谓的私有使用区域。那里没有标准化的字符。

只有当用于显示该字符的字体是 Font Awesome 时,您才会看到亚马逊图标。

所有这些也适用于您拥有的字体。“要复制的文本”字段不是使用图标字体来显示字符,这样你就可以绝不在那里看不到所选的图标。相反,您会看到看似“垃圾文本”的内容。

以下是以太网图标的 CSS 类:

.mdi-ethernet:before {
  content: "\F200";
}

如何在其他地方使用该字体?您可以打开 LibreOffice Writer 或其他程序,然后将“垃圾文本”粘贴到那里。现在您需要选择粘贴的文本并将其字体更改为图标字体,该字体应该像任何其他字体一样出现在字体选择中。只有这样,您才会看到所需的图标。

在此处输入图片描述

答案2

问题在于字体Adobe 空白已安装在我的系统上(不知道为什么)。来自 Adob​​e 本身:

Adobe Blank 是一种特殊用途的 OpenType 字体,旨在使用无间距和无标记字形呈现所有 Unicode 代码点。[...] 它有以下两个用途:

  • 调用此字体作为一种临时措施,可防止在预期字体呈现之前启动操作系统或应用程序级字体回退。
  • 与上述内容相关,使用字体可以让人们检测网络字体的实际加载时间,这可以说是一种克服 CSS 限制的技巧。

禁用此字体后,一切正常。也许这不是最好的解决方案,但这是我目前能想到的最好的解决方案。

相关内容