Linux如何管理字体?

Linux如何管理字体?

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

Linux 中如何管理字体?是否还有一个所有程序(没有 X 的 shell、有 X 的 shell、窗​​口管理器、其他 GUI 软件)都可以使用的字体中央存储?或者字体是单独管理的吗?如何在 Linux 中高效、轻松地管理我的字体?

答案1

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

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

大多数现代程序通常通过客户端字体渲染xft字体配置。由于服务器端字体渲染不支持抗锯齿,因此需要一种新机制。

在X之外(即在VGA控制台上),有VGA字体,它们是特定尺寸的位图字体。但与X11相比,没有人使用VGA控制台,因此没有在他们身上花费太多精力。

在实践中,您需要通过两种方式配置字体:

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

答案2

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

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

相关内容