2010-09-23 133 views
0

我在編寫代碼時在emacs中使用了固定大小的像素字體。在emacs中指定字體大小時,它需要點數的字體大小。由於我在幾臺不同的顯示器尺寸的不同機器上使用我的.emacs文件,這意味着當一臺機器上的字體看起來很棒時,它在另一臺機器上通常很模糊或太大。我已經在我的.emacs中通過檢查像素的實際顯示器大小解決了這個問題,但正確的方法是以像素爲單位指定字體大小,或者使用小的lisp存根來計算給定的給定大小像素大小,假設可從emacs內獲得dpi值。固定大小像素字體的Emacs字體大小(以像素爲單位)?

對此提出建議? 更新9月26日

我在Linux(Ubuntu 10.04,x64)上。

我現在的hackish的解決辦法是:

(if (>= (x-display-pixel-height) 1200) 
(custom-set-faces 
'(default ((t (:stipple nil :background "black" :foreground "cornsilk" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 120 :width normal :family "proggycleanttsz")))))) 

只有高度屬性是從我前面已經在.emacs文件設置不同。在另一臺機器上,我必須將其設置爲90才能獲得「像素完美」。我試圖把:

(set-frame-font "proggycleanttsz") 

取而代之,但那是行不通的。當我回顧我以前的嘗試時,我發現我現在使用truetype版本的字體,這意味着問題的主題不完全正確,但無論如何,它看起來非常像像素字體,但只在準確的大小。不知道這與truetype如何工作。

+0

您是否知道,使用穩定的Emacs,您可以使用XFT字體,其中大小會自動適應DPI設置?請參閱C-h i d Emacs 字體 fschmitt 2010-09-24 19:16:46

+0

我確定可以在〜/ .Xresources文件中使用emacs.font設置字體大小,但我現在似乎無法做到這一點。 – Borbus 2010-09-24 19:25:23

回答

0

正如在你的問題的評論中提到的那樣,如果你在linux上,XFT就是你想要的,所以在你的.emacs中使用類似(set-frame-font "Terminus-8")的東西會很好。

Borbus提到〜/ .Xresources - 我想你可以在〜/ .Xdefaults中使用Emacs*font: Font-name

我快速瀏覽了一下你的個人資料,試圖確定你使用的操作系統,但是我猜不到。一些更多的信息可能是很好的(OS,emacs的版本)

+3

操作系統是Emacs;) – aaronasterling 2010-09-25 20:51:26

+1

你只是想誘惑一些vi/vim用戶加入無處不在的「...缺乏一個體面的文本編輯器」的聲明:P – davidb 2010-09-25 20:53:20

+0

我在Linux上(Ubuntu 10.04,x64)。我目前的解決方法是這樣的: – 2010-09-26 12:37:13

0

我一直在使用

(set-frame-font "font-name:pixelsize=16") 

有一段時間了。在Linux上與Emacs 25一起工作良好。這種字體名稱的樣式記錄爲MS Windows,但我一直在Linux上使用它多年。

相關問題