微软字体

来自 Arch Linux 中文维基
(重定向自MS Fonts

本文介绍如何安装微软 TrueType 字体并模拟 Windows 的渲染设置。

提示:参见 公制兼容字体 以获取替代方案。

安装[编辑 | 编辑源代码]

自动安装[编辑 | 编辑源代码]

注意: 这些包将自动获取 Windows Enterprise 90 天评估版,并从中提取所需的字体。

安装字体的最简单方法是安装以下包中的一个:

使用 Windows 分区中的字体[编辑 | 编辑源代码]

如果有一个安装了 Windows 的分区,可以通过链接字体文件的方式来使用其字体。若不能读取字体文件,可以参见 NTFS-3G#已压缩的文件

注意: google-chromeAUR 的用户应该选择复制,因为链接的字体会导致 Chrome 崩溃。

例如,Windows 的 C:\ 盘被挂载在 /windows

# ln -s /windows/Windows/Fonts /usr/share/fonts/WindowsFonts

然后重新生成字体缓存:

# fc-cache -f

或者,将 Windows 的字体复制到 /usr/share/fonts

# mkdir /usr/share/fonts/WindowsFonts
# cp /windows/Windows/Fonts/* /usr/share/fonts/WindowsFonts
# chmod 644 /usr/share/fonts/WindowsFonts/*

然后重新生成字体缓存:

# fc-cache -f

从 Windows ISO 中提取字体[编辑 | 编辑源代码]

在 Windows ISO 文件中也可以找到字体。若 ISO 是在网络上下载的,则包含字体的镜像文件格式为 WIM (Windows Imaging Format);若是使用 Windows 媒体创建工具创建的,则为 ESD (Windows Electronic Software Download)。从 ISO 文件中提取 sources/install.esdsources/install.wim 文件并从中找到 Windows/Fonts 目录。它可以用 7z (p7zip) 或 wimextract (wimlib) 提取。以下是一个使用 7z 的示例:

$ 7z e Win10_1709_English_x64.iso sources/install.wim
$ 7z e install.wim 1/Windows/{Fonts/"*".{ttf,ttc},System32/Licenses/neutral/"*"/"*"/license.rtf} -ofonts/
$ 7z e install.wim Windows/{Fonts/"*".{ttf,ttc},System32/Licenses/neutral/"*"/"*"/license.rtf} -ofonts/ # Windows 7

字体和许可证将放在 fonts 目录。

现有软件包[编辑 | 编辑源代码]

注意: 这些包需要访问 Windows 7/8/10/11 和/或 Office 2007 的安装程序或介质,参阅相关的 PKGBUILD 获取更多信息。

旧软件包[编辑 | 编辑源代码]

注意: 由这些包提供的字体已过时,缺少现代微调指令和完整的字符集。建议使用上面所述的软件包。

ttf-ms-fontsAUR 包含:

警告: 根据原《微软最终用户许可协议》,使用上述字体时存在一些法律限制。

ttf-tahomaAUR 包含 Tahoma

ttf-vista-fontsAUR包括:

适用于微软字体的 Fontconfig 规则[编辑 | 编辑源代码]

相似字体的映射规则[编辑 | 编辑源代码]

网站通常使用字体的通用名称 (helvetica, courier, times 或 times new roman),Fontconfig 的一个规则文件 /etc/fonts/conf.d/30-metric-aliases.conf 将其替换为免费字体(Liberation、Google CrOS、GUST TeX Gyre……)。

要使用微软字体,需要将上述通用名称映射到微软的字体:

 <?xml version="1.0"?>
 <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
 <fontconfig>
 <!-- Map generics to MS specifics -->
        <!-- PostScript -->
        <alias binding="same">
          <family>Helvetica</family>
          <accept>
          <family>Arial</family>
          </accept>
        </alias>
        <alias binding="same">
          <family>Times</family>
          <accept>
          <family>Times New Roman</family>
          </accept>
        </alias>
        <alias binding="same">
          <family>Courier</family>
          <accept>
          <family>Courier New</family>
          </accept>
        </alias>
 </fontconfig>

建议在浏览器中,将 serif、sans-serif 和 monospace 字体也映射到微软字体。

禁用字体内嵌位图[编辑 | 编辑源代码]

一些微软的 TTF 字体,如 Calibri 和 Cambria,包含了特定大小的内嵌位图字体,这些字体不支持抗锯齿。如果启用了字体内嵌位图,在这些特定的尺寸下,字体不会被进行抗锯齿处理。通过字体配置可以禁用内嵌位图字体:

 <?xml version="1.0"?>
 <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
 <fontconfig>
   <match target="font">
     <edit name="embeddedbitmap" mode="assign">
       <bool>false</bool>
     </edit>
   </match>
 </fontconfig>

已知问题[编辑 | 编辑源代码]

基于 Poppler 的 PDF 阅读器无法正确显示符号[编辑 | 编辑源代码]

微软的 TrueType 符号字体(Symbol)在 Poppler 上有问题,数学符号可能无法在基于 Poppler 的 PDF 阅读器中正确显示。