如何替换未知字体?

Byt*_*der 14 fonts openoffice.org libreoffice

假设我有一个使用识别字体的文本编辑工具(例如 LibreOffice Writer)打开的外文文本文档。在本文档中,可能使用了一些在我的 Ubuntu 安装中不可用的字体(例如 Garamond)。

问题是:Ubuntu 如何决定使用哪一种已安装的字体来替换未知字体?它会读取字体的任何特征并寻找相似的特征吗?是否始终使用默认替换字体?它是否搜索相似的字体名称?

除此之外,我想知道我是否可以以某种方式更改此行为或设置手动字体别名以自动使用例如免费字体EB-Garamont而不是非免费Garamont

Ron*_*Ron 9

我认为这不是由 Ubuntu 决定的,而是由程序(LibreOffice、OpenOffice 等)决定的。我看不到任何与 LibreOffice本身相关的内容,但 OpenOffice 有一个很好的wiki,其中包含有关“字体回退”如何工作的一些详细信息。一般来说,它也可能适用于 LibreOffice。

我正在从下面的 wiki 中复制一些部分以进行澄清。很难比wiki中的内容更好地解释,所以最好从那里阅读:

OpenOffice.org 2 中的字体回退是什么?

每当请求未安装在系统上的字体时,Font-Fallback 就会启动。(未安装意味着:OOo 不可用)。OOo 然后尝试使用与 OOo 知道的字体不同的字体,该字体尽可能地匹配所请求的字体。

字体回退如何工作?

为了使 font-fallback 产生令人满意的结果,OOo 必须以某种方式了解字体的相似性。OOo 必须知道它可以例如用Helvetica代替Arial,但不能用Comic Sans代替。这项任务并不像听起来那么容易,因为存在许多字体,而 OOo 无法了解所有字体。

OOo 使用多种方法来寻找合适的替代品:

  • 系统提供的字体别名信息(例如,来自fonts.dir 文件
  • 后备字体的硬编码列表,来自VCL.xcu(首先尝试)
  • 替代字体名称拼写
  • 字体属性(例如,它是否有 CJK 字符,它是符号字体)或样式(衬线/非衬线,比例/非比例)

如果这一切都失败了:

  • 使用默认字体

没有直接关系,但这个TLDP 文档很好读。