Linux如何管理字体?


11

当我使用Windows(很久以前!)和Mac OS X时,总是有一个中央的“存储库”,供OS和所有程序(Windows中的字体文件夹和Mac中的字体簿)共享和访问字体。 OS X)。

在Linux中如何管理字体?是否还存在所有程序(没有X的外壳,带有X的外壳,窗口管理器,其他GUI软件)可以使用的字体中央存储?还是字体分别管理?如何在Linux中高效,轻松地管理字体?

Answers:


13

X land中的字体有两种机制:服务器端和客户端。

渲染字体的传统方法是让客户端告诉服务器“ foo在字体F的位置(x,y)处渲染”(字体规范包括字体,大小,编码和其他属性)。X服务器本身或称为字体服务器的专用程序都会打开字体文件以构建每个字形的描述。字体可以是位图或矢量字体,但是在渲染之前,矢量字体已转换为位图。

大多数现代程序通常通过xftfontconfig使用客户端字体渲染。因为服务器端字体渲染不支持抗锯齿,所以需要一种新的机制。

在X外部(即在VGA控制台上),有VGA字体,它们是特定大小的位图字体。但是与X11相比,没有人使用VGA控制台,因此在它们上的花费很少。

实际上,您将需要通过两种方式配置字体:

  • 对于较旧样式的程序:字体目录通过中的FontPath指令列出,xorg.conf并且xset fp运行X的用户可以使用命令对其进行操作。如果安装新字体,则可能需要运行mkfontdir
  • 对于较新样式的程序,包括所有Gtk(Gnome等)和Qt(KDE等)程序:字体位于中的<dir>指令指示的目录中/etc/fonts/fonts.conf~/.fonts.conf以及其他一些地方。有关更多信息,请参见fontconfig文档。如果安装新字体,则可能需要运行fc-cache

3

控制台字体和X字体是Linux中的两个独立的东西。使用命令setfont更改字体,并showconsolefont查看其外观。每个发行版都有其自己的设置默认控制台字体的方式。阅读setfont手册页以获取控制台字体的位置。对于我的Fedora 14系统,它是/ lib / kbd / consolefonts /。控制台字体是定义EGA / VGA控制台字体的文件格式。

X字体与控制台字体的格式不同。它们通常由X配置中的定义(在“文件”部分中包含FontPath)或通过字体服务器(xfs)处理,该服务器也通过“字体”在“文件”部分中进行设置。您还可以通过运行添加FontPaths xset +fp path。我的系统在/ usr / share / X11 / fonts中拥有所有X字体。


那么这是否意味着在X上运行的所有GUI程序都将使用X字体?
2011年

1
@penyuan:不一定,但是在大多数情况下,是的。许多GUI程序使用更高级的库(例如GTK或Qt)来为您管理字体。
jsbillings 2011年

请注意,文档(例如(La)TeX)使用另一组字体。
vonbrand
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.