XFree86 字体美化 Mini HOWTO 作者: Doug Holland, [1]meldroc@frii.com 译者: Yu-Chia Chang, [2]joezhang@ms10.hinet.net v1.0, 23 November 1999. 翻译日期: 19-20 December 1999 _________________________________________________________________ 如何改善丑陋的,不可阅读的 X window 字型 _________________________________________________________________ 1. 简介 * 1.1 更新纪录 2. XF86Config 档 * 2.1 设定 FontPath 3. X server 命令列选项 (command line options) 4. TrueType 字型 (少数 Windows 做的很好的事情) * 4.1 xfstt * 4.2 xfs 5. KDE * 5.1 应用 KDE 的字型和颜色於非 KDE 的应用程式上 6. 在特定的应用程式中调整字型 * 6.1 Netscape Navigator/Communicator * 6.2 WordPerfect * 6.3 StarOffice 7. 致谢 8. 版权申明 _________________________________________________________________ 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 一致。 欢迎评论,更正,增补和批评。您可以在 [3]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。最新的版本是 [4]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/ 或是从 [5]Microsoft 直接下载。 这些字型是自解压缩的 zip 档。您仍可在 linux 中安装 unzip 注意字型的档名必须小写。一个快速又容易的转换方法是将他们拷贝到一个 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, /usr/share/fonts/ttfonts, /usr/X11R6/lib/X11/fonts/100dpi, /usr/X11R6/lib/X11/fonts/75dpi 或是您也可以用 'chkfontpath --add ' 命令来加入字型。当使用时,您 或许也会想要更改您的字型的预设点数。 default-point-size = 140 这让我从预设的 12 点字变为 14 点字。有些 X 的应用程式使用这个,有些则否 。接下来,确定您的 XF86Config 档中的 FontPath 是 FontPath "unix/:-1" 注意 "unix/:7100" 也可以做到,但是在刚出来时无法使用。将所有的 FontPath 用 '#' 让它变成注解,反正你也不用它们了。xfs 的 packages 应该 和其他 XFree 的 packages 一起安装了。要确定它是预设的服务,您可以使用 'ntsysv' 或是 chkconfig --add xfs 现在 xfs 在您每一次开机的时候都会启动。 现在重新启动 X 来读入新的 FontPath。用下面的的方式 启动/重新启动 xfs /etc/rc.d/init.d/xfs restart 现在您应该有个可以使用的字型伺服器了。您可以检查那些字型有被使用 xlsfonts | less 或用 xfontsel 甚至更好的 gfontsel 来检查它们。 5. KDE 在这段日子里,KDE 是在 Linux 和 X 发生过最好的事情之一。它提供了一个一 致的使用者介面,让一般大众能够接触 Linux。您可以在 [6]http://www.kde.org/. 找到更详细的资料。为什麽我会在这大大称赞它呢? 这是因为 KDE 1.1 有个新特色,能够让您程式的字型和颜色与现在的 KDE 风格 一致,这也包括非 KDE 的应用程式。 5.1 应用 KDE 的字型和颜色於非 KDE 的应用程式上 这很简单。只要打开 KDE 的控制中心(Control Center)下面的 Desktop 下面的 style。那里有个选项叫做 "Apply fonts and colors to non-KDE apps"(将字型 与颜色应用到非 KDE 的应用程式),打开他,选 OK,这样就好了! 下次您开启许 多的应用程式,它们就会像其他的 KDE 应用程式般,有相同的颜色与字型。有些 人最喜欢这项特色,但若您不喜欢的话,您也可以将它关掉。 6. 在特定的应用程式中调整字型 6.1 Netscape Navigator/Communicator Netscape Communicator 对於字型的问题相当的敏感。若您使用预设的 FontPath,您的字型将会非常小非常丑。您第一件要去做的事情就是修改您的 XF86Config 档中的 FontPath (参考第二章)。使用 100dpi 的字型大大的改善了 可读性。您也会想要去检查在 Edit/Preferences/Appearance/Fonts 的字型设定 。不选 Font 选项中的 "Allow Scaling" 可以让点阵字不会锯齿状。 若您有 xfstt 或 xfs,Netscape 非常适合使用 TrueType 字型。然而,它不能 得体的处理 xfstt 的锐角。在 Edit/Preferences 中,您可以将 TrueType 字型 设为固定宽度或是可变宽度,然而当您关闭 Netscape 後,它将不记得您选取的 字型点数。若您在开启 X 时未用 -dpi 或是在 xfstt 未使用 --res,您的字型 将会很小。当我用了上面两个修正,TrueType 字型真的很棒! 6.2 WordPerfect 即将登场。 6.3 StarOffice 即将登场。 7. 致谢 本 HOWTO 是由 Doug Holland 所撰写 Email: [7]meldroc@frii.com WWW: [8]http://www.frii.com/~meldroc/ 外加 [9]Hal Burgies 的贡献。 感谢 * 在 [10]comp.os.linux.x 的人们,他们在我刚开始研究这些的时候对我伸出 援手。 * 让这所有一切变为可能的 Linux 社群。 * Microsoft 和 Apple: 他们提供了字型,美化了我的桌面。 8. 版权申明 [译注:为尊重作者原意,这部份不翻译] Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator for more information. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would very much like to be notified of any plans to redistribute the HOWTOs, this one in particular! Web page authors are free to link to this HOWTO without restriction, though the author would appreciate an email informing him of this, just so he can boost his ego by knowing who else reads and links to this document. Many of the terms mentioned in this document are trade names.Unless otherwise stated, all trademarks are property of their respective owners. References 1. mailto:meldroc@frii.com 2. mailto:joezhang@ms10.hinet.net 3. mailto:meldroc@frii.com 4. http://metalab.unc.edu/pub/Linux/X11/fonts/Xfstt-0.9.10.tgz 5. file://localhost/tmp/zh-sgmltools.27782/www.microsoft.com/typography/fontpack/default.htm 6. http://www.kde.org/ 7. mailto:meldroc@frii.com 8. http://www.frii.com/~meldroc/ 9. mailto:hburgess@bellsouth.net 10. news:comp.os.linux.x