X
和字体服务器)严格来说,并非绝对必要设置字体服务器才能在 X
服务器中使用 TrueType 字体。如果您希望使用静态文件而不是字体服务器,请参阅关于为 ghostscript
设置 TrueType 字体的说明。
xfs
字体服务器
此时,我假设您有一个可用的 /etc/X11/XF86Config
文件,该文件显式加载并指定了 FontPath
中的每个目录。我们将转换它以使用 xfs
字体服务器。
XFS
如果您尚未安装,请安装 main/binary-*/x11/xfs_*.deb
。
XFS
编辑 /etc/X11/xfs/config
并更改 catalogue
以包含您的 FontList
的内容。您可能还希望更改 default-resolutions
值。
/etc/X11/xfs/config
# paths to search for fonts
catalogue =
/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/Speedo/,
/usr/X11R6/lib/X11/fonts/Type1/,
/usr/X11R6/lib/X11/fonts/100dpi/,
/usr/X11R6/lib/X11/fonts/75dpi/
# x1,y1,x2,y2,...
default-resolutions = 100,100,75,75
XFS
以通常的 Debian 方式重启 XFS
root shell
# /etc/init.d/xfs restart
XFS
是否正在工作在我们更改 XF86Config
文件之前,我们应该通过字体服务器列出字体来验证 xfs
服务器是否正在工作
user shell
$ fslsfonts -server unix/:7100
-adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1
-adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1
-adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1
....
/etc/X11/XF86Config
以使用 xfs
我们现在准备告诉 X 服务器使用 xfs
字体服务器。我们保留一个静态字体路径作为后备位置,以防 xfs
出现问题。(我们保留 “misc”,因为它包含 fixed
,默认字体。)
/etc/X11/XF86Config
Section "Files"
FontPath "unix/:7100"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
EndSection
X
使用 startx
重启 X
,除非您喜欢冒险。如果是那样,请将我命名为您异常高额的人寿保险的受益人,然后重启 xdm
。
XFS
字体是否可见一旦我们建立了 X 会话,我们可以通过 X 服务器列出所有 xfs
字体来验证我们的服务器是否能看到它们。
user shell
$ xlsfonts
-adobe-courier-bold-i-normal--0-0-0-0-m-0-iso8859-1
-adobe-courier-bold-o-normal--0-0-100-100-m-0-iso8859-1
-adobe-courier-bold-o-normal--0-0-75-75-m-0-iso8859-1
....
xfstt
字体服务器并安装 TrueType 字体
此时,我假设您有一个可用的 xfs
字体服务器,并希望通过 xfstt
添加 TrueType 支持。
XFSTT
如果您尚未安装,请安装 main/binary-*/x11/xfstt_*.deb
。
将您的 TrueType 字体复制到 /usr/share/fonts/truetype
目录中。这些文件通常具有 .ttf
扩展名,并且应具有 0444
权限。
XFSTT
字体服务器使用 force-reload
标志重启 xfstt
服务器
root shell
# /etc/init.d/xfstt force-reload
XFSTT
是否正在工作在我们更改 XF86Config
文件之前,我们应该验证 xfstt
服务器是否正在工作。
重要提示:Debian xfstt
服务器监听端口 7101,而不是 7100。此外,默认权限将要求您以 root 身份运行此查询。
user 和 root shell
$ fslsfonts -server unix/:7101
_FSTransSocketUNIXConnect: Can't connect: errno = 111
fslsfonts: unable to open server "unix/:7101"
# fslsfonts -server unix/:7101
-ttf-arial black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial mt black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial narrow-bold-i-normal-bold italic-0-0-0-0-p-0-iso8859-1
/etc/X11/XF86Config
以使用 xfstt
我们现在准备告诉 X 服务器使用 xfstt
字体服务器。我们希望它优先使用 TrueType 字体。
/etc/X11/XF86Config
Section "Files"
FontPath "unix/:7101"
FontPath "unix/:7100"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
EndSection
XFSTT
字体是否可见一旦我们建立了 X 会话,我们可以通过列出它们来验证我们的服务器是否能看到所有 TrueType 字体。
$ xlsfonts | grep ttf
-ttf-arial black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial mt black-medium-r-normal-regular-0-0-0-0-p-0-iso8859-1
-ttf-arial narrow-bold-i-normal-bold italic-0-0-0-0-p-0-iso8859-1
....
此时,应该可以在 GIMP
、Netscape
或 StarOffice
等应用程序中使用 TrueType 字体。由于大多数 TrueType 字体都不是等宽字体,您可能不想在 xterm
中使用它们 - 这些程序使用最大字符单元格大小的等宽间距。
如果您正在使用 xfstt
字体服务器,则安装额外的 TrueType 字体非常简单。
/usr/share/fonts/truetype/
/etc/init.d/xfs restart
重启 xfs
xfstt
具有生成多种字体编码的能力,前提是 TrueType 字体包含必要的字形。要启用 iso8859-1/unicode-1 以外的字体,您必须手动编辑 /etc/init.d/xfstt
脚本
/etc/init.d/xfstt
- start-stop-daemon --start --quiet --exec $XFSTT -- \
--port $portno --daemon
+ start-stop-daemon --start --quiet --exec $XFSTT -- \
--port $portno --encoding iso8859-1,koi8-r,windows-1252,symbol-0 \
--daemon
Debian 2.1 中可识别的编码是
iso8859-x
编码中的前 128 个字符始终是 ASCII。 windows-
字体包含并扩展了 iso8859-1
,添加了诸如“弯引号”之类的附加字符。(由于这些扩展,例如“弯引号”在 iso8859-1
中未定义,因此通常呈现为问号。)
有关字符集编码的更多信息的优秀来源位于
http://ppewww.ph.gla.ac.uk/%7Eflavell/iso8859/iso8859-pointers.html
, http://anubis.dkuug.dk/i18n/
和
http://czyborra.com/charsets/iso8859.html
.
我在上面使用了 Unix 套接字,但是标准的 Debian 软件包也将 xfs
和 xfstt
配置为分别监听 TCP/IP 端口 7100 和 7101。对这些端口的访问应该由 /etc/X11/xfs/config
中的 trusted-clients
字段控制,但是此选项未在 XFree86 3.3.2.3a 中实现。
这意味着任何地方的任何人都可以连接到您的字体服务器。由于 xfs
(以及可能 xfsts
)“克隆”以支持更多用户,因此针对这些系统存在一种简单的拒绝服务攻击。在拨号线路上使用字体服务器可能是安全的(因为您在场可以处理问题),但是 DSL 和有线调制解调器用户应该使用防火墙。