如何更改 Emacs 的默认字体大小和字体类型?

问题描述 投票:0回答:10

我使用的是 Emacs 23.3。如何更改字体大小和字体类型?

emacs emacs23
10个回答
149
投票

您还可以在

.emacs
文件中执行以下操作。

Emacs 23.1

(set-frame-font "Inconsolata 12" nil t)

旧版本的 Emacs

(set-default-font "Inconsolata 12" nil t)

99
投票

您可以使用菜单栏。前往

Options
->
Set Default Font...

选择字体后,不要忘记按

Options
->
Save Options
— 否则关闭 Emacs 后您的新字体将不会被保存。


14
投票

通过以下方式获取当前字体:

M-x describe-font

(如果看到

Enter
,请点击
Font name (default current choice for ASCII chars): 

这将显示可在

init.el
中设置的属性列表。查看完这些值后,将消息缓冲区最小化
C-x 1

现在做一个

M-x customize-face
并且:

  1. 向下滚动到“默认”部分
  2. 更改“字体系列”的值
  3. 更改“高度”的值
  4. 在“状态”上点击
    Enter
    ,然后 1 = 保存以供将来使用

或者,在

init.el
中你可以有类似的东西:

(set-face-attribute 'default nil :font "Monospace" :height 160)

注意: 如果您预设了窗口大小(宽度和高度),则字体的

height
属性将干扰该布局。


8
投票

要获取自定义使用的扩展列表

M-x 定制面 RET


4
投票

在我的回答中,我将集中精力通过 X 资源设置默认字体大小。 X资源的使用在提到

~/.Xdefaults
的答案中已经提到过;我将提供更多详细信息(与我已经在https://unix.stackexchange.com/a/426914/4319中描述的相同。除了 Emacs 中“默认”“面”的高度之外,还可以同样设置其他字体参数。

要为 Emacs 设置特定的默认字体高度,我已放入

/etc/X11/Xresources-site
/etc/X11/Xresources
也可以,但可以被您的发行版覆盖):

Emacs.default.attributeHeight: 94

这也会影响作为 Emacs 的远程 X 客户端(例如,通过 ssh 在远程主机上启动的 emacs)。

/etc/X11/Xresources-site
/etc/X11/Xresources
(可能还有
~/.Xresources
~/.Xdefaults
)通常在 X 会话开始时阅读;要立即影响您当前的 X 资源,请运行类似
xrdb -merge /etc/X11/Xresources-site
的命令。 X资源可以通过
xrdb -query
查看。

实际上,就我而言,由于

/etc/X11/Xresources-site
中的一行(由启动脚本读取),
/etc/X11/Xresources
正在被读取:

#include "/etc/X11/Xresources-site"

所以

/etc/X11/Xresources
是肯定要读的东西。

还有一些具有相同语法的文件,每次启动像 emacs 这样的 X 程序时都会读取这些文件。就我而言,它们是:

~/.Xdefaults-MY_HOST_NAME
/etc/X11/app-defaults/Emacs
(仅适用于 emacs-athena,不适用于 emacs-gtk3)、
/usr/share/X11/app-defaults/Emacs
等(但我更喜欢加载 X 资源的想法 - 用
xrdb -query 显示) 
;以便远程 X 客户端读取相同的 X 资源。)

Emacs 理解的其他 X 资源描述于 https://www.gnu.org/software/emacs/manual/html_node/emacs/Table-of-Resources.html#Table-of-Resources

Emacs 24.3 有 一个 bug ,这使得它不支持来自 X 资源的默认界面的属性,例如我上面的示例。自 24.4 起,此问题已修复


4
投票

macOS 上的 Emacs 25.1 默认使用 Menlo 12。我想增加尺寸。

C-x C-f
~/.emacs

将此添加到

~/.emacs
文件的末尾:

(设置默认字体“Menlo 14”)

要在入住期间看到更改立即生效

~/.emacs
:

M-x eval-buffer [RET]


3
投票

Emacs 方式

  1. M-x
    customize-group
  2. 输入
    faces
  3. 点击“基本面孔”
  4. 打开/展开“默认”
  5. 更改字体名称(如“Inconsolata”)并取消选择“foundry”
  6. 点击“应用并保存”

2
投票

如果您使用Linux/X11,您可能需要在

~/.Xdefaults
中进行设置。 我 已经在那里设置了字体,因为这里的其他答案没有效果。

我可以通过在 Emacs 中运行来查看可用的字体设置:

helm-select-xfont

然后我开始输入

Conso
,我看到如下条目:

-Consolas-normal-normal-normal-*-*-*-*-*-m-0-iso10646-1
...

然后我把它放入

~/.Xdefaults
,设置大小
12
为:

Emacs.font: xft:-*-Consolas-normal-normal-normal-*-12-*-*-*-m-0-iso10646-1

然后重新启动 Emacs。


2
投票

只需按

M-x
,然后输入
set-frame-font
。将显示您机器中存在的所有可用字体。

选择您要查找的一个。我用这种方法来简单地改变我的 Emacs 中的字体类型;而不是更改

.spacemacs
.emacs
文件。


0
投票

使用 customize 设置字体大小发生得太晚了,第一个 emacs 框架“闪烁”(并且可能会在屏幕边缘调整大小), 因此,在 emacs 29.4 中我添加了以下内容

~/.emacs.d/early-init.el

(when initial-window-system ;; i-w-s from stack exchange
  (add-to-list 'default-frame-alist '(font . "EmblCondHack-13")))

s/EmblCondHack/Monospace/
应该适合每个人

© www.soinside.com 2019 - 2024. All rights reserved.