我可以覆盖ttf-mscorefonts-installer安装的字体,更喜欢Liberation字体吗?

我不得不在Ubuntu 12.04 / 12.10上安装apt-get install ttf-mscorefonts-installer。 简短的版本是我需要从需要这些字体的应用程序中输出PDF文件以用于某些字形。

运行此命令后,问题是我的Web浏览器(以及一些Java应用程序)中的字体现在“很难看”。 显然这是一个主观意见,但它是我所持有的意见。

我想在大多数情况下恢复旧字体(Liberation,DejaVu,Ubuntu,…)。 我不确定如何描述这个,但这是一个例子:

Webbrowser中的CSS示例

font-family: Verdana,Arial,sans-serif;

没有ttf-mscorefonts-installer(案例1):

  $ fc-match Verdana LiberationSans-Regular.ttf: "Liberation Sans" "Regular" $ fc-match Arial LiberationSans-Regular.ttf: "Liberation Sans" "Regular" $ fc-match sans-serif LiberationSans-Regular.ttf: "Liberation Sans" "Regular"` 

使用ttf-mscorefonts-installer(案例2):

  $ fc-match Verdana Verdana.ttf: "Verdana" "Normal" $ fc-match Arial Arial.ttf: "Arial" "Normal" $ fc-match sans-serif LiberationSans-Regular.ttf: "Liberation Sans" "Regular"` 

我想要(案例1)。 或者,我希望(案例2)中的字体看起来不要“丑陋”IE。 在我的网络浏览器中,它们比它们的免费替代品更加锯齿,不那么流畅。

这可能吗?

fontconfig使用一整套字体替换系统。 字体定义有不同级别:字体名称和字体系列。 给定一个特定的字体,fontconfig使用相同名称的字体(如果可用),然后寻找相同名称的字体系列 。 如果仍然没有匹配,它使用标准字体系列定义作为替换,即Sans,Sans-serif和Mono。

Ubuntu在`/etc/fonts/conf.d/45-latin.conf’中定义了字体系列’Verdana’,其中’Verdana’默认设置为’Sans-serif’,这意味着Sans-serif用于’ Verdana’默认情况下。 但如果安装了’Verdana.ttf’将被使用。

在你的系统中,Sans-serif系列中的首选字体是’Liberation Sans’,因此fontconfig使用’Liberation Sans’代替’Verdana’,前提是没有相同名称的字体, 而使用’Verdana.ttf’如果它在搜索路径中 。 这解释了您发布的内容。

因此,您的问题的解决方案是, 您必须将字体’Verdana’重新映射为不同的字体,或者将一组字体 重新映射 到’Liberation Sans’的最高优先级 。 (推荐后一种情况)

打开或创建文件〜/ .config / fontconfig / fonts.conf,附加如下:

     Verdana  Liberation Sans Verdana    

请注意,现在不推荐使用〜/ .fonts.conf,如果已经有用户定义的fonts.conf,请删除页眉和页脚,只保留“匹配”部分。 在’Arial’上展示相同的解决方法太过啰嗦了。 我相信你可以自己找到它。