2016-09-26 49 views
0

爲什麼Eclipse和eclipse中渲染的所有粗體字體在Linux和Windows之間都有很大不同?Eclipse和粗體字體在Linux和Windows之間呈現很不同

先看樣品爲「源代碼臨」字體: enter image description here

我測試了其他字體,所有這些在Linux渲染是多一點點勇敢的,字體的粗體版本似乎是另一種字體,是非常不同的。

有辦法減少這種影響?

編輯:硬件和虛擬化

兩者是相同的監視器上運行。裸機上的Windows,Virtualbox內的Linux(Windows是主機操作系統)。

回答

2

典型計算機屏幕的像素密度太低,無法準確顯示字體字形等小形狀(過多的舍入錯誤)。因此,每個主要的文本堆棧(足夠複雜,不會有多於操作系統的一個文本堆棧)必須決定當它們沒有整齊地適合精確的像素倍數時向上或向下舍入字形維度(將字形像素網格,又稱「網格擬合」),它準備在該過程中扭曲字形的多少(像素化,在一維中移動一些比特而在另一維中移動一些比特),是否使用灰度像素或甚至彩色像素平滑邊緣(「亞像素」平滑也會產生色邊)等。

而且,要一直這樣做。如果你生成一個非常清晰的字形,但它失去了與同一字體的其他字形的對齊,這沒有幫助。如果字體的連續大小不是線性的,則不會有幫助,因爲有些字體已被舍入,其他字體則被捨去。如果您的渲染算法更改或不同地移動相同字形的連續迭代,則不起作用,但一系列iiiiiii或lllll可能並不常見,但系列或11111111不在電子表格中。

粗體比普通文字更難,因爲在典型大小的典型屏幕上,字體已經收斂到大約一個或兩個像素寬度,但用戶期望大膽胖一點而不胖兩倍。

不是兩個文本堆棧可以做出相同的折衷,而Windows默認渲染特別極端,試圖以幾乎所有其他因素爲代價獲得尖銳細的形狀。蘋果和Adobe的渲染通常比較平滑(但「模糊」),而Linux則介於兩者之間,近年來Adobe在Linux渲染堆棧中貢獻巨大。

從來沒有人能夠證明一種渲染風格比其他渲染風格更好。唯一一致的因素是用戶習慣於的,將用戶暴露於一種渲染方式幾個月,他會恨所有其他人,他接觸到哪個渲染並且可以通過迫使他使用來改變另一個渲染幾個月。可能是由於大腦形狀識別過程自我訓練和優化他們最經常看到的方式。一個用戶接觸到特定字體和文本渲染的人越多,他會發現這種特殊的組合令人愉快且易於閱讀。

Linux非常強大,可以強制其渲染堆棧的行爲更像Windows。如果你習慣了Windows渲染,那對你來說會更愉快。對於任何不在Windows中度過生活的人來說,這將不那麼令人愉快。通常情況下,更改fontconfig中的暗示攻擊性,從灰度平滑到rgbA(即將產生色彩邊緣)。甚至使用像無限的修補版本(相當極端,而不是真的必要,改變fontconfig設置通常就足夠了)。像gnome-tweak-tool這樣的東西可以幫助你圖形化,而eclipse通過SWT繼承gtk設置。或者,使用更大的文本或購買高密度(highdpi)屏幕。與字形元素相比,較小的像素與您獲得的網格擬合舍入效果越少,無論使用何種文本堆棧。具有足夠高的像素密度,您可以獲得「理想」的字形形狀和重量,就像在一臺好的激光打印機上一樣。

當然,假設操作系統能夠驅動高分辨率的屏幕。 Linux應該到達那裏,但上次我檢查時Windows仍然堅持在96dpi的土地上。最後,如果您在虛擬環境中工作,VM層可能會隱藏虛擬軟件的一些硬件特性。因此,準確檢測屏幕特徵並相應地調整其渲染的機會較少。

相關問題