如何替换未知字体?


14

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

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

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


当我在这里回答问题时,出现了这个问题:superuser.com/a/945192/418736
字节指挥官

Answers:


9

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

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

OpenOffice.org 2中的字体后备是什么?

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

字体后备如何工作?

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

OOo使用几种方法来找到合适的替代品:

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

如果所有这些都失败了:

  • 使用默认字体

没有直接关系,但是 TLDP文档是不错的阅读。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.