Answers:
aldeby提供了另一个适用于所有应用程序(包括Libre Office)的解决方案:
编辑或创建文件~/.fonts.conf
并将此代码粘贴到其中:
<match target="font" >
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
确保保留XML结构。
注销并再次登录,Calibri(可能还有其他一些字体)看起来会好得多(实际上比这里给出的其他答案还要好,因为丑陋的位图替换已完全禁用)。
<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"><fontconfig><match target="font"><edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit></match></fontconfig>
禁用连字(请参见Calimo的fonts.conf
答案)是错误的方向!它可能会消除Calibri等字体中过分锯齿的“粗体”连字,但同时也会消除某些排版的美感。这与缩小字体非常相似,直到您无法分辨出区别为止。
我通过删除Calibri字体,安装“ 与Calibri 度量兼容 ”并与“到fontconfig的映射项(local.conf)打包在一起”的Carlito并刷新字体缓存来解决我的系统问题:
$ rm ~/.fonts/microsoft/CALIBRI*
$ sudo apt install fonts-crosextra-carlito
$ fc-cache
然后,您可以验证Carlito代表Calibri:
$ fc-match Calibri
Carlito-Regular.ttf: "Carlito" "Regular"
(如果这不起作用,sudo rm /usr/share/fonts/truetype/msttcorefonts/calibri*
尽管情况和确切位置可能有所不同,但是您可能需要类似的东西。)
在删除Microsoft的Calibri之前,我在使用Calibri的LibreOffice中保存了一个测试文档,并进行了截屏。之后,我退出LibreOffice,再次打开它,然后加载我的测试文档。“ Calibri”字体名称用斜体表示,表示已被替换。我拍摄了该替代版本的屏幕截图,并将其粘贴到原始版本下方:
上面的文本是一对13pt Calibri的屏幕截图,Microsoft的Calibri在Carlito上方,并通过fontconfig进行了匹配。没有使用LibreOffice 5.0.5.1呈现的粗体,无格式“对字距调整”。
Carlito非常接近Calibri,连字正确渲染,并且整体上更漂亮。
您可以使用Caladea for Cambria进行相同的操作fonts-crosextra-caladea
,也可以将Google的Croscore字体 Arimo,Tinos和Cousine用于Arial,Times New Roman和Courier New与fonts-croscore
。在Debian的替代Calibri和Cambria字体 Wiki中了解更多信息。
该问题询问Helvetica字体,这是Apple首选的sans-serif字体。在更改为Calibri之前,Microsoft更喜欢Arial。默认的Linux映射因发行版而异,但通常为Nimbus Sans L或Liberation Sans,例如
$ fc-match Helvetica
n019003l.pfb: "Nimbus Sans L" "Regular"
如果运行该命令并获得Arial,则这是出现上述连字问题的一个很好的理由-Arial并不是很好的字体。
Helvetica具有相当的文化底蕴,我找不到与Helvetica完全公制兼容的字体。Arial(以及与Arial 公制兼容的字体,包括Liberation Sans及其fork Arimo,具有相同的字符宽度(这意味着它们“主要”与公制兼容;文本将使用与Helvetica相同的包装方式)。在免费字体中, Liberation Sans和Nimbus Sans 似乎具有最相似的美学。
还有IBM Plex,这是一种背后有很多钱的新字体[ 1 ] [ 2 ]。Plex旨在代替IBM的所有材料中的Helvetica(它也压缩了sans以及衬线和等宽字体),尽管它与Helvetica或其他字体在度量上完全不兼容。Font Squirrel可以很好地查看Plex字体的示例。
要将Helvetica手动别名为另一种字体(因此不需要删除Calibri和/或Arial,尽管在这种情况下,您还应该手动别名那些字体),请编辑~/.config/fontconfig/fonts.conf
文件(对于较旧的系统,即~/.fonts.conf
。为避免混淆,我将后者符号化前者)作为注意到这个答案,加入了新的<alias>
。对于黑体(此人使用阿里莫部分请确保您有它安装):
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
<family>Helvetica</family>
<prefer><family>Arimo</family></prefer>
</alias>
</fontconfig>
/usr/share/fonts/truetype/msttcorefonts/callibri*
。我将更新我的答案以解决字体别名问题,因为它不会包含在注释中。
lgarzo的答案将工作只能在具有上的文字是“noligs”类网站(大部分网站都没有)。
要全局禁用所有网站上的连字,请将以下行添加到您的userChrome.css
:
* { -moz-font-feature-settings: "liga" 0; }
最简单的方法是使用时尚扩展名创建新样式。
看图片时,我想到了几句话:
我认为问题是由于字体不正确支持连字/字距调整。
您可以使用以下CSS规则禁用FF中的连字:
/* disable common ligatures, usually on by default */
.noligs { -moz-font-feature-settings: "liga" 0; }
除了Calimo的答案外,Archlinux用户还可以找到帮助https://wiki.archlinux.org/index.php/font_configuration-禁用位图字体
它建议创建一个本地配置文件〜/ .config / fontconfig / conf.d / 20-no-embedded.conf,但是我选择了系统范围的选项
sudo touch /etc/fonts/conf.d/20-no-embedded.conf
sudo chmod 777 /etc/fonts/conf.d/20-no-embedded.conf
nano 777 /etc/fonts/conf.d/20-no-embedded.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>
然后重新启动应用程序(在我的情况下是雷鸟)