当前位置:操作系统 > Unix/Linux >>

XFree86字体美化MiniHOWTO

作者: Doug Holland, meldroc@frii.com

  译者: Yu-Chia Chang, joezhang@ms10.hinet.net

  1. 简介

  在我必须处理的一堆讨厌事中,有一项就是没完没了的 X 缺省字体和字体设定 (我专指 XFree86,其它的 X 也许比较好)。有些程序缺省使用固定宽度字体 (fixed width fonts),但其实可变宽度字体 (variable width fonts) 较为适当。而有些程序使用不可思议的小字,而无法辨认。伴随 XFree86 而来的字体根本不适於使用。它的确有还算体面的 courier 字体,但是它附的 Times 和 Helvetica 只是简单的点阵字,当缩放的时候就产生锯齿状。

  本 HOWTO 尝试说明如何调整各式各样的字体设定,如何安装新字体,和其它可以大大改善 X window 字体的外观和可读性的方法。这是藉由调整 XF86Config 档中的字体路径 (FontPath),在 startx 或 xdm 加上 X server 命令列选项(command line options),加入新的字体,安装 TrueType 字体服务器 (font server) xfstt,和使用 K Desktop Environment 1.1 的功能来调整许多应用程序的字体设定,包含设定让非 KDE 应用程序的颜色和字体能够与 KDE 一致。

  欢迎评论,更正,增补和批评。您可以在 meldroc@frii.com 联络到我。

  1.1 更新纪录

  * 0.1: Feb. 21, 1999: 第一次公布。

  * 0.11: Feb. 27, 1999: 放入 copyright。

  * 0.12: Jun. 10, 1999: 放入请求援助。

  * 0.20: Sep. 14, 1999: 为 redhat 使用者放入有关于 xfs 的一节。感谢 Hal Burgiss 的贡献。

  * 1.0: Nov. 23, 1999: 将文章转为 SGML 格式,传送给 linux Document Project。将请求援助的部份移除。

  2. XF86Config 档

  要想解决字体的问题,首先先得看看 XF86Config 档。(通常放在 /usr/X11/lib/X11/XF86Config 或 /etc/X11/XF86Config)。您猜到了吗? 这个档中关于字体最重要的部份就是 FontPath。在我们研究它之前,最好先检查 X 的其它设定。错误的屏幕设定比错误的字体设定更令人头痛。确定您屏幕的更新频率 (refresh rate) 在正常使用范围中已经设到最高 (85Hz 很好,75Hz 普通,60 Hz 很不舒服)。

  2.1 设定 FontPath

  用您最顺手的文字编辑器来编辑 XF86Config。在文件的开头,您应该会看到类似下面的东西:

  FontPath "/usr/X11R6/lib/X11/fonts../misc/"

  FontPath "/usr/X11R6/lib/X11/fonts/Type1/"

  FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"

  FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"

  FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"

  FontPath 告诉 X 到那里去找在屏幕上显示用的字体。顺序是很重要的,当一个 X 的应用程序向 X 要求使用一些字体,X server 通常偏好使用正在用的字体。然后它去看看 FontPath,使用最先看到能满足 X client 要求的字体。

  缺省的 FontPath 通常将 75dpi 的字体放在 100dpi 的字体前面。若您有一台高解析度的屏幕,这表示非常小的字。第一个你要用的方法就是将 75dpi 和 100dpi 的 FontPath 对调。

  FontPath "/usr/X11R6/lib/X11/fonts../misc/"

  FontPath "/usr/X11R6/lib/X11/fonts/Type1/"

  FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"

  FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"

  FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"

  然后指出您偏好使用不能缩放的点阵字。若您曾经使用 Netscape 或是其它使用较大字体来显示标题的程序,您将会发现这些字体呈现锯齿状的。这样很丑,需要修改。所以在 misc,100dpi 和 75dpi 的最后加上 :unscaled。若您想要的话,您也可以同时使用能缩放和不能缩放的字,只要将不能缩放的字的 FontPath 放在前面,告诉 X 说若可能的话,尽量使用不能缩放的字。

  FontPath "/usr/X11R6/lib/X11/fonts../misc:unscaled"

  FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"

  FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"

  FontPath "/usr/X11R6/lib/X11/fonts/Type1"

  FontPath "/usr/X11R6/lib/X11/fonts/Speedo"

  FontPath "/usr/X11R6/lib/X11/fonts../misc"

  FontPath "/usr/X11R6/lib/X11/fonts/100dpi"

  FontPath "/usr/X11R6/lib/X11/fonts/75dpi"

  再做了这些改变後,重新启动 X。桌面是不是已经比较漂亮呢?

  3. X server 命令列选项 (command line options)

  下面一件要做的事是调整 X server 的命令列选项。您将会想要用 -dpi 来指定显示的解析度是每英□几点。现在很多的系统使用高解析度的显示器,可能它们将会要用 100dpi。

  若您在 console 下启动 X,键入

  startx -dpi 100

  若您用 xdm 这种图形登录界面,您需要编辑您的 /usr/X11/lib/X11/xdm/Xservers 档。在里面有 Xserver 的命令列。我的文件里有下面这一行

  :0 local /usr/X11R6/bin/X -dpi 100 -gamma 1.6

  您可在 X 和 Xserver 的 manpage 中找到更多的信息。

  4. TrueType 字体 (少数 Windows 做的很好的事情)

  因为在 Redmond 的那群家伙非常关心他们软件的外观而不是内容,他们在 Windows 里加上对 TrueType 字体的支持。Window 95 和其它的 Windows 都内含 Arial,Times New Roman,和 Courier New。他们约等於 Helvetica,Times,和 Courier。TrueType 字体是能缩放的,所以它们在放大时很好看,而它们也被好好的调整过,故在缩小的时候依然可读。有许多的 Windows 应用程序附送好几打的 TrueType 字体。先别急著把您的 Windows CD 拿去微波,您得先拿到这些字体。

  4.1 xfstt

  不幸的是 XFree86 并没有内部支持 TrueType 字体,所以必须自己加入。最简单的方式使用 xfstt,一个没镅的 TrueType 字体服务器。(译注: 这里没镅是 free,严格来说,并不是没镅,而是自由的意思)

  Installation

  xfstt 安装非常容易。首先从网站上下载 tarball。最新的版本是 http://metalab.unc.edu/pub/linux/X11/fonts/Xfstt-0.9.10.tgz

  有了 tarball後,把它解开

  tar -zxvf Xfstt-0.9.10.tgz

  然后编译和安装它。INSTALL 档有简单的说明。有个不用大脑的方法 make; make install 就可以了。当做好後,把由各式管道取得的 TrueType 字体拷贝到 /usr/ttfonts 就可以了。键入下面的指令来启动 xfstt

  xfstt --sync # 更新 xfstt 的字体数据库

  xfstt & # 在背景执行 xfstt

  然后键入

  xset +fp unix/:7100 # 让 X 使用 xfstt

  或是在您的 XF86Config 档中加入下面的指令,让 X 使用这项服务

  FontPath "unix/:7100"

  调整缺省字体的大小

  若您的 TrueType 字体显得相当小,下面的指令可能有帮助

  在 X server 命令列加上 -dpi (请参考第 3 章)。

  使用 --res 来告诉 xfstt 增加缺省的解析度。用下面的指令

  xfstt --res 120

  4.2 xfs

  xfs 是另一种字体服务器的选择。它已经包含在以 RedHat 为基础的 distribution 中。xfs 是基於 FreeType Font library,提供了类似於 xfstt 的功能。xfs 不只能处理 TrueType 和 Type 1 字体,也可以对付原本的 X 字体。

  安装

  第一步是将 TrueType 字体加入您的 linux 里。su 为超级使用者,建一个目录来存放这些字体:

  mkdir /usr/share/fonts/ttfonts

  然后将字体放入这个目录里。您可以从您的 Windows 系统中拷贝过去

  cp /mnt/win/path_to_fonts/*ttf /usr/share/fonts/ttfonts/

  或是从 Microsoft 直接下载。

  这些字体是自解压缩的 zip 档。您仍可在 linux 中安装

  unzip <FONT.EXE>

  注意字体的文件名必须小写。一个快速又容易的转换方法是将他们拷贝到一个 DOS(FAT16) 文件系统中,然后再拷贝回来。DOS 不处理大写。另一个较像 linuxer 会用的方法是先进入到存放字体的目录下,然后键入:

  ls *TTF | while read f

  do

  [ -f "$f" ] && mv -f "$f" "`echo "$f" | tr A-Z a-z`"

  done

  您在键入每一行得时候会有 ">" 的提示符号,在上述每一行的最后按下 return。 注意标点符号 -- 那些 "backquotes" 很重要。当 TrueType 字体正确安装後,以超级使用者执行:

  ttmkfdir -o fonts.scale

  mkfontdir

  当您字体目录下的内容改变後,重新执行上面的命令。接下来,编辑您的 xfs 字体设定文件 /etc/X11/fs/config 在您字体表中加入您的 TrueType 字体:

  catalogue = /usr/X11R6/lib/X11/fonts../misc:unscaled,

  /usr/X11R6/lib/X11/fonts/100dpi:unscaled,

  /usr/X11R6/lib/X11/fonts/75dpi:unscaled,

  /usr/X11R6/lib/X11/fonts../misc,

  /usr/X11R6/lib/X11/fonts/Type1,

  /usr/X11R6/lib/X11/fonts/Speedo,

  /usr/share/fonts/default/Type1,<
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,