簡體   English   中英

emacs 23和字體大小

[英]emacs 23 and font size

我在Ubuntu上網本版本上使用emacs 23。 每個應用程序都會自動進入全屏模式(我的emacs也是如此)。 但是根據字體大小(:height),我會得到一個較小的工作窗口。 如果我去:height normal我可以得到整個區域,但是字體很大!

有任何想法嗎?

您的窗口管理器已損壞。 更改字體大小時,emacs會自動調整大小(這種情況在啟動時發生)。 您的窗口管理器應告訴emacs,窗口管理器已調整了emacs的大小,此時一切正常。

無論如何,以“ emacs --daemon”啟動emacs並與“ emacsclient -c”連接,您應該不會注意到此問題。

好的,所以實際上我將此添加到了我的initfile中:

(add-hook 'after-make-frame-functions
      (lambda (frame)
        (progn
          (add-to-list 'default-frame-alist
               (cons 'height
                 (/ (x-display-pixel-height)
                    (frame-char-height)))
               (add-to-list 'default-frame-alist
                    (cons 'width
                          (/ (x-display-pixel-width)
                         (frame-char-width))))))))

現在該窗口的大小與全屏相同。 如果要在after-make-frame-functions掛鈎中設置字體,那么重要的是,它首先出現在您的initfile中(我認為是因為掛鈎以相反的順序運行),但是如果您只是設置字體,則這應該在任何地方都可以。

當然,為了獲得最大的安全性,您可以將此字體和“設置字體”的內容放到相同的定義中,並在設置字體之后進行。

編輯:這是一種稍微更有力的方法,以防萬一。

不過,這給我帶來了一些問題,實際上,您可能要從將其設置為的高度中減去頂部面板的高度。

(add-hook 'after-make-frame-functions
  (lambda (frame)
    (progn
      (set-frame-height frame
            (/ (x-display-pixel-height)
               (frame-char-height)))
      (set-frame-width frame
            (/ (x-display-pixel-width)
               (frame-char-width))))))

可以通過選擇其他大小的字體作為默認字體(選項->設置默認字體),然后保存選項(選項->保存選項)來解決字體大小問題。 Emacs似乎存在與系統大小匹配的字體點大小問題(有關X標准DPI與GTK標准DPI的討論),但是如果選擇一個有效的字體,它將保持不變。

為了使窗口正確最大化,我發現框架列表存在一個問題,即不能正確考慮minibuffer以及不同的字體大小無法觸發框架正確調整大小。 如果將初始幀警報設置為包括(fullscreen。fullwidth)和(minibuffer-lines。1),它將正確考慮minibuffer的大小並提供正確的寬度,從而產生一種效果,就像您手動調整窗口大小一樣到最大可見區域(與最大化不完全相同)。 您可以通過“選項”->“自定義Emacs”->“設置匹配正則表達式”進行設置,然后鍵入initial-frame-alist。 設置兩個新的參數和值,“ minibuffer-lines”設置為“ 1”,“ fullscreen”設置為“ fullwidth”。

刪除“ minibuffer-lines”參數將為您提供一個錯誤高度的全屏寬度窗口,而刪除“ fullscreen”參數則意味着沒有正確調整大小。 嘗試將“全屏”設置為“全屏”會產生與不設置任何內容相同的問題,而將“全屏”設置為“ fullheight”會在使用較小字體時僅在整個高度(而不是寬度)上提供空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM