emacs 23和字体大小

emacs 23和字体大小,emacs,Emacs,我在我的Ubuntu上网本版本上使用emacs 23。每个应用程序都会自动进入全屏(我的emacs也是如此)。但是根据字体大小(:height),我会得到一个更小的工作窗口。 如果我去:高度正常,我会得到完整的区域,但字体是巨大的 有什么想法吗?你的窗口管理器坏了。当您更改字体大小时,emacs会自动调整大小(这在启动时发生)。您的窗口管理器应该告诉emacs,emacs已由窗口管理器调整大小,此时一切都将正常工作 无论如何,将emacs作为“emacs--daemon”启动并连接到“EmacC

我在我的Ubuntu上网本版本上使用emacs 23。每个应用程序都会自动进入全屏(我的emacs也是如此)。但是根据字体大小(:height),我会得到一个更小的工作窗口。 如果我去:高度正常,我会得到完整的区域,但字体是巨大的


有什么想法吗?

你的窗口管理器坏了。当您更改字体大小时,emacs会自动调整大小(这在启动时发生)。您的窗口管理器应该告诉emacs,emacs已由窗口管理器调整大小,此时一切都将正常工作


无论如何,将emacs作为“emacs--daemon”启动并连接到“EmacClient-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))))))))
只需选择不同大小的字体作为默认字体(选项->设置默认字体),然后保存选项(选项->保存选项),即可解决字体大小问题。Emacs似乎在字体点大小与系统大小匹配方面存在问题(有关于X标准DPIs与GTK标准DPIs的讨论),但如果您选择一个有效的,它将保持不变

为了使窗口正确地最大化,我发现框架列表没有正确地考虑小缓冲区,以及不同的字体大小没有触发框架正确地调整大小。如果将初始帧列表设置为包含(fullscreen.fullwidth)和(minibuffer lines.1),它将正确地说明minibuffer大小,并得出正确的宽度,强制产生一种效果,就像手动将窗口调整为最大可见区域(与最大化不完全相同)。您可以通过选项->自定义Emacs->设置匹配Regexp。。。然后输入初始帧列表。设置两个新的参数和值,“minibuffer lines”为“1”,而“fullscreen”为“fullwidth”


删除“minibuffer lines”参数将为您提供一个全屏幕宽度的窗口,该窗口的高度不正确,删除“fullscreen”参数意味着任何内容都无法正确调整大小。尝试将“全屏”设置为“全屏”会产生与不设置任何内容相同的问题,而将“全屏”设置为“全高”只会在使用较小字体时在高度上留下空白,而不会在宽度上留下空白。

我认为这不一定是窗口管理器的错:我有
(将框架字体设置得漂亮)
在我的
after-make-frame-functions
钩子中,如果emacs启动时最大化或全屏,我会在一个大框架内看到一个小窗口,但如果emacs在某个框架内启动,emacs会缩小框架以适应窗口。我还没能想出一个解决办法。(
(窗口高度)
给出了与
(框架高度)
相同的值,因此emacs对其环境肯定有一些错误的认识) (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))))))