跳转到内容

微软字体

来自 Arch Linux 中文维基

本文或本章节的语言、语法或风格需要改进。参考:帮助:风格

原因:Could be converted to use Template:App.(在Talk:微软字体讨论)

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

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

安装

自动安装

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

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

现有软件包

注意:这些包需要用户预先从 Windows 分区或者 Windows 和/或 Office 2007 ISO 中手动提取字体。参阅相关的 PKGBUILD 获取更多信息。

使用 Windows 分区中的字体

如果有一个 Windows 分区已被挂载,可以直接使用其中的字体。有以下几种方法(假设 Windows 的 C:\ 盘被挂载在 /windows):

  • 使用符号链接:
# ln -s /windows/Windows/Fonts /usr/local/share/fonts/WindowsFonts
注意:google-chromeAUR 的用户不应该选择这种方法,因为链接的字体会导致 Chrome 崩溃。
  • 将字体文件复制到 /usr/local/share/fonts/
# mkdir -p /usr/local/share/fonts/WindowsFonts
# cp -r /windows/Windows/Fonts/* /usr/local/share/fonts/WindowsFonts/
# chmod -R 644 /usr/local/share/fonts/WindowsFonts/*
  • 使用绑定挂载:
# mount --bind /windows/Windows/Fonts /usr/local/share/fonts/WindowsFonts

要使其永久生效,像这样修改 fstab 文件:

/etc/fstab
/windows/Windows/Fonts    /usr/local/share/fonts/WindowsFonts    none    bind    0    0

更多详细信息参见 mount(8) § Bind mount operation

请注意,若不能读取字体文件,可能需要对系统压缩的文件采取权变措施。

在选择以上任一方法后,重新生成字体缓存:

# fc-cache --force
# fc-cache-32 --force

从 Windows ISO 中提取字体

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

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

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

旧软件包

注意:由这些包提供的字体已过时,缺少现代微调指令和完整的字符集,但好处是不需要用户提供字体文件。建议使用#现有软件包所述的软件包。

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,包含了特定大小的内嵌位图字体,这些字体不支持抗锯齿。如果启用了字体内嵌位图,在这些特定的尺寸下,字体不会被进行抗锯齿处理。通过字体配置可以禁用内嵌位图字体

已知问题

基于 Poppler 的 PDF 阅读器无法正确显示符号

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