2014-03-28 77 views
3

我想知道如何獲得相似的字體呈現在GNU Emacs的在gVim的如下圖所示的屏幕截圖。看起來Emacs默認情況下渲染字體的方式較差。我試過安裝無限字體修補程序,但得到了相同的結果。我在Arch Linux虛擬機上運行GNU Emacs 24.3。我沒有桌面環境,並使用OpenBox作爲我的窗口管理器。Emacs24不渲染字體正確

很多論壇帖子我挖出似乎在那個Emacs使用需要,在過去修補libxft庫暗示,但現在不是了。根據Emacs,它已被編輯爲--with-xft,所以不應該是一個問題。下面是來自這兩個應用程序的屏幕截圖以及放大視圖,以突出顯示渲染的不同之處。

emacs vs gvim rendering

回答

8

以我的經驗,Emacs的不可靠讀取字體配置或Gnome的字體設置,所以你可能需要改變Emacs的字體渲染設置。

值得注意的是,在周圍gVim的字體中的着色像素指示gVim的使用子像素着色,而沒有在Emacs這些像素的顯示,它僅使用提示。沒有子像素渲染通常會使字體看起來模糊。

找出GVims喜好

找出什麼字體渲染設置的GVim使用。我認爲它需要Gnome的標準版本,所以安裝Gnome Tweaktool來檢查Gnome的字體設置。

告訴Emacs的關於您的字體首

現在創建一個.Xresources文件,告訴Emacs的這些設置。以下是代表我的字體設置,根據你已經在侏儒Tweaktool發現適應它:

Xft.antialias: 1 
Xft.hinting: 1 
Xft.hintstyle: hintfull 
Xft.lcdfilter: lcddefault 
Xft.rgba:  rgb 

據我所知,lcdfilter設置不侏儒Tweaktool可用,所以只是把它留在lcddefault

$ xrdb -merge ~/.Xresources 
  • 驗證設置加載:

    $ xrdb -query | grep Xft 
    Xft.antialias: 1 
    Xft.hinting: 1 
    Xft.hintstyle: hintfull 
    Xft.lcdfilter: lcddefault 
    Xft.rgba:  rgb 
    
  • 重新啓動的Emacs

  • 與創建文件

    1. 退出Emacs與C-x C-c
    2. 加載這些設置後

    現在檢查字體是否現在看起來相同。請注意,GVim可能會使用不同的字體渲染器(例如Cairo,Harfbuzz或其他),因此無論如何需要一些細微的差異。

    檢查設置是否永久

    1. 註銷您的桌面
    2. 再次登錄
    3. 使用上述xrdb -query命令來驗證您的字體設置
    +1

    我忘了存在提到我沒有使用Gnome或任何其他桌面環境,我只運行OpenBox。但是,將這些Xft代碼行添加到我的.Xresources中也有竅門,謝謝。 – joonoro

    +1

    @ user1749222我無所謂你使用的是哪個桌面環境。作爲Gtk/Gnome應用程序,GVim將從fontconfig或Gnome獲取其設置。 – lunaryorn

    +1

    要進行實驗,您可以在命令行上傳遞Xft設置。這樣,您可以並排放置多個emacs框架,以便於比較。例如''emacs -xrm「Xft.hinting:1」-xrm「Xft.hintstyle:hintmedium」'''。當你找到你喜歡的設置時,將它們保存到'〜/ .Xresources' –