安装了微软字体之后,字体仍然与Windows上的不一样。

在安装了微软字体之后,Firefox和Chromium中的字体仍然与Windows FF和Chrome中的字体不同。
我的意思是,现在显示出了之前缺失的字体,但它们与Windows上的字体不同。
它们要么太"宽",要么太"窄/高",例如,在Windows上FF中加粗的字体在Ubuntu的FF中看起来非常粗。
我该如何改善Ubuntu的FF和Chromium中的字体显示?
我不介意Ubuntu操作系统中默认的宽字体,但在浏览器中,将其与80-90%的访问者看到的方式不一样,这并不好看。
因为现在它与Windows上的不同。
我正在使用Ubuntu的13.04版本。
编辑:
页面:www.bild.de 如果你仔细看,你会发现差异(Ubuntu中的字体更宽,不那么高):

enter image description here


可能是重复问题:http://askubuntu.com/q/19770/21195 - Rodrigo Oliveira
7你真的不能指望每个访问者在每个平台上使用每个操作系统都能完美地呈现你的网站。这不是万维网的工作方式。在Windows 7上的Firefox 21中的网页与在Windows XP上的Firefox 21中的网页并不完全相同,也不同于在Mac OS X上的Firefox 21中的网页。在IE 9中的网页与在Chrome中的网页也不完全相同。要习惯这种情况。如果你的布局因为字体比例在某个平台上有所不同而破坏了,那么你的网站开发就有问题了。 - Steven K
请参阅 http://stackoverflow.com/questions/15873623/web-development-on-linux-font-rendering-different-from-windows - Steven K
@StevenKath - 那是一个有效的回答,如果你能给出一些例子来整理一下,那么请发表它。谢谢。 - fossfreedom
5个回答

Ubuntu和Windows使用不同的字体渲染技术。Windows使用ClearType,而Ubuntu使用FreeType。这些字体渲染产生了相当不同的结果,FreeType倾向于产生更粗/更粗的字体,而ClearType倾向于产生更细的字体。
作为一个网页开发者,你真的无法对此做任何事情,除了确保这种差异不会导致文本被截断。

在Ubuntu或其他Linux发行版中是否有办法安装ClearType?是否存在任何端口或类似的东西? - Derfder
在Linux上应该有其他方法来获得ClearType。 - Derfder
@Derfder,那根本不可能。它甚至不是自由软件。 - fitojb
我的问题是错误的。我试着重新表达一下。从技术上讲,这是否可能?道德问题不是我在这里问的。只是想知道在Ubuntu中是否可以模拟ClearType。 - Derfder

抱歉,我不使用Chromium。但是对于Firefox来说,要使字体看起来像在Windows中一样,只需点击“编辑”,然后选择“首选项”。

enter image description here

然后请确保您的字体设置与下面的图像相同。

enter image description here

enter image description here

这是我在研究后找到的结果:
大多数网站使用“层叠样式表”来设置字体和其他布局特性。设计良好的样式表会请求一系列字体,以便在某个字体不可用时尝试替代方案。毫不奇怪,大多数商业网站都是为Windows设计的,开发人员往往对其他操作系统的渲染效果没有太多考虑,除了可能是Mac OS X。
你可以告诉Firefox始终在内容对话框中使用自己的字体,但更好的选择是安装核心字体包。通常这就足够了。
话虽如此,在Windows上的字体渲染与Ubuntu或其他Linux平台上的渲染总会有些微不同。其中一部分原因与知识产权问题有关。许多商业字体被“提示”以改善显示效果(例如抗锯齿问题),Linux通常无法遵循这些提示,因为这需要安装需要许可的专有技术。
你还可以尝试安装其他浏览器,如Chrome或Opera,或者如果你使用Kubuntu,可以尝试Konqueror或rekonq。
另外,你也可以尝试以下方法:
编辑~/.font.config文件,并确保其内容如下所示。
<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd">  
 <fontconfig>  
  <match target="font">  
  <edit mode="assign" name="rgba">  
   <const>rgb</const>  
  </edit>  
  </match>  
  <match target="font">  
  <edit mode="assign" name="hinting">  
   <bool>true</bool>  
  </edit>  
  </match>  
 <match target="font">  
  <edit mode="assign" name="autohint">  
   <bool>false</bool>  
  </edit>  
  </match>  
  <match target="font">  
  <edit mode="assign" name="hintstyle">  
   <const>hintslight</const>  
  </edit>  
  </match>  
  <match target="font">  
  <edit mode="assign" name="antialias">  
   <bool>true</bool>  
  </edit>  
  </match>  
 </fontconfig>  

来源:在Ubuntu中更改Web浏览器字体以看起来像Windows


谢谢,但在Ubuntu机器上,小字体仍然太宽了。我将在10分钟内在我的问题中添加图片。 - Derfder
我已经用一张图片更新了我的问题,展示了在Windows 7和Ubuntu 13.04上使用Firefox时的内容显示。你有什么办法可以让Ubuntu上的字体与之相同?目前如果使用Arial字体,它看起来太“短”且太“宽”。 - Derfder
有没有办法修复它,让它看起来像Windows 7而不是在Ubuntu中变得如此畸形? - Derfder
我实际上还在调查中。 - Mitch
有没有想法是什么出了问题?你能截个图给我看看bild.de这个网站的部分吗?看看它是否变形了或者正常。如果不是,你用的是哪个版本的Ubuntu? - Derfder
还没有。我也有同样的问题。我会继续寻找。 - Mitch
哇,我猜我已经部分解决了Arial变形的问题;D。由于某种原因,Ubuntu的Firefox无法正确解释12px。而Windows则没有这个问题。所以,在Firefox的Firebug中,我将那个部分的12px改为1em,看起来几乎和Windows版本一样。我觉得虽然不完全一样,但非常接近,我可以接受。问题是,在其他页面而不是bild.de上,我尝试了同样的方法来解决12px Arial的问题,但我需要将其设置为0.9em而不是1em。如何解决这个问题? - Derfder
Linux的MS字体是基于旧版本的字体,与当前的Windows版本不同,并且Ubuntu的Firefox并非适用于Linux的Mozilla Firefox。(而且是哪个版本号?不同版本可能在渲染引擎方面有所差异。)网页设计师最终对客户端显示的字体和大小几乎没有控制权。如果过于关注这些细节,你将会让自己陷入困境并浪费大量时间。 - chaskes
你现在走在正确的轨道上了,不过要注意解决跨浏览器脚本的问题。网上有很多免费的好网站和文章,如果你能买一本书,那就更好了。然后尽可能在不同的浏览器和平台上进行测试。你的现实目标是让所有内容都能合理地呈现,不破坏布局,并且你的脚本能够正常工作,而不是让页面在不同平台上完全一样。 - chaskes
@chaskes 我在Ubuntu上使用的Firefox版本是21.0。 - Derfder
@chaskes 你有没有想过如何让字体在Ubuntu中显示得像Windows 7那样宽?你觉得我应该尝试删除当前的Arial字体,并尝试安装来自Windows 7的Arial字体。我猜它是ttf格式的。这样行得通吗? - Derfder
我完全不明白;(。在字体管理器或者Libre Office里面,Arial 字体看起来是 Arial,但在 Firefox 和 Chromium 里面不是;(。 - Derfder
希望我所提供的有用评论没有被误解为发牢骚。;) 我不知道如何使其更宽。从Windows复制字体将侵犯版权,我不能赞同这样做。你可以购买字体的副本,但我认为对你的工作来说并不必要。在设计方面,你应该考虑使用通用字体系列。在访问者的浏览器中显示的效果取决于浏览器引擎、客户端的字体设置以及客户端安装的字体,这些都是你无法控制的。(请记住我们不能一直保持评论来回交流。) - chaskes
在字体管理器或Libre Office中,Arial显示得很好,但在Firefox和Chromium中却不行。我猜问题出在Firefox和Chromium上。有什么办法可以解决吗? - Derfder

你真的不能指望每个平台上的每个操作系统的每个网站访问者都能完美地渲染你的网站。这不是万维网的工作方式。
你永远无法知道用户对默认字体DPI、平滑/提示/反锯齿、浏览器缩放或其他一切用户可以在他们的设备上更改的美妙事物做了什么。
看看这个网站:http://browsershots.org/ 你知道他们是如何通过展示一个网页在数十个不同的浏览器版本和四个不同的操作系统上的截图来赚钱的吗?因为其中的每一个可能在某些方面与其他任何一个有所不同。
要习惯这一点。
如果你的布局因为在某个平台上字体比例稍有不同而破裂,那么你的网页开发就错了。作为网页开发人员,你的任务不是让它在每个地方看起来完全相同,而是使其对每个访问者在功能上和视觉上都愉悦,不论这些差异如何。
如果你过分强调一致性,最终你会得到一个违背访问者对其操作系统或浏览器的审美期望的页面。(值得一提的是,我真的更喜欢你在示例中试图避免的Ubuntu风格。)
如果你真的想要像素级完美的一致性,无视访问者的期望和偏好,你可以考虑成为一名Flash开发者!

OP在询问如何控制访问者网页浏览器中字体的外观。我之前发表了一些评论,现在将它们整理成一个回答。
Linux上的MS字体是基于旧版本的字体,并不与当前的Windows版本相同,而且这不是Ubuntu的Firefox,而是Mozilla的Linux版Firefox。(还有哪个版本号?不同版本可能在渲染引擎方面存在差异。)
实际上,网页设计师对客户端显示的字体和大小几乎没有什么控制权。如果你过于关注这一点,最终只会让自己疯狂并浪费很多时间。
寻找跨浏览器脚本编写的解决方案。有很多免费的在线网站和文章,如果你能购买一本更好的书籍,那就更好了。然后在尽可能多的不同浏览器和平台上进行测试。
你的现实目标是使所有内容都能合理地呈现,不破坏布局,并确保你的脚本正常工作,而不是让页面在不同平台上完全相同。

你可以尝试对/etc/fonts/conf.avail/51-local.conf进行修改。
添加hinting、antialias和hintstyle可能能够解决在LibreOffice、Firefox、Chromium等软件中出现的外观差异。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>    

  <!-- settings go here -->

</fontconfig>