我如何让Emacs从文件加载字体?

为了使我的emacs设置更加便于移动,我希望能够通过指定文件而不是字体名来设置当前字体,即“Load〜/ config / myfont.ttf并使用大小12”。 有没有办法做到这一点在我的.emacs? 我发现的所有说明都假定字体已经安装在系统上。 我在Linux上使用XFT支持,所以一个linux特定的黑客应该是可以的,但我更喜欢一些可以在所有目标上工作的东西。

更新:为了清楚起见,我使用的是Windows / OS X / Linux上不标准的字体。 我不只是希望设置一个基于平台的不同的字体,而是要指定一个特定的字体文件(TTF在Windows和Linux上工作,如果不是在Mac上,我会得到另一个版本的文件,但我仍然想通过文件而不是名称来指定字体)。

不幸的是,你不能。

不同平台上的Emacs使用不同的窗口工具包,所有这些工具包都会为其处理字体。 我不相信你可以在任何平台上的Emacs中指定一个字体文件名 – 它不会那样工作。

至于如何找到字体:

  • 在Linux上,你可以使用XFT支持用户特定的字体配置文件,这个文件通常是~/.fonts.conf (但是检查/etc/fonts/font.conf确定)来添加你放置字体的目录。

  • 在Mac上,您可以将字体添加到~/Library/Fonts 。 TTF在Mac上工作正常,BTW。

  • 在Windows上,我认为你只需要将它添加到系统字体目录。

从那里,然后你去告诉Emacs(通过定制或不定制)来使用你的字体。 你会发现命名方案在每个平台上都不一样(不知道Windows是什么样子的),但是定制应该帮助你处理这个问题 – 如果需要的话,每台机器只保留一个单独的定制文件。

…所以基本上你的便携式Emacs设置必须包含不仅仅是一个Emacs配置文件(考虑到你已经有一个字体文件,它已经)。

Emacs在每个平台上都使用特定于平台的小部件,因此您应该使用系统例程来设置具体的字体。 我有不同的文件系统相关的配置,这是从.emacs加载类似的东西

 (load (concat "~/.emacs.d/rc-" system-type))