下一页 上一页 目录

2. 显示设置

我们假设您已经为您的键盘和区域设置调整了 Linux 控制台和 X11 配置。这在 Danish/International HOWTO 以及其他国家/地区的 HOWTO 中有解释:芬兰语、法语、德语、意大利语、波兰语、斯洛文尼亚语、西班牙语、西里尔语、希伯来语、中文、泰语、世界语。但是请不要遵循泰语 HOWTO 中给出的建议,即当您实际输入的是泰语字符 (U0E01..U0E5B) 时,假装您正在使用 ISO-8859-1 字符 (U0000..U00FF)。这样做只会在您切换到 Unicode 时引起问题。

2.1 Linux 控制台

我在这里没有过多谈论 Linux 控制台,因为在那些没有运行 xdm 的机器上,我只用它来输入我的登录名、密码和“xinit”。

无论如何,kbd-0.99 软件包 ftp://sunsite.unc.edu/pub/Linux/system/keyboards/kbd-0.99.tar.gz 和一个大量扩展的版本 console-tools-0.2.3 软件包 ftp://sunsite.unc.edu/pub/Linux/system/keyboards/console-tools-0.2.3.tar.gz 在 kbd-0.99/src/(或 console-tools-0.2.3/screenfonttools/)目录中包含两个程序:`unicode_start' 和 `unicode_stop'。当您调用 `unicode_start' 时,控制台的屏幕输出将被解释为 UTF-8。此外,键盘被置于 Unicode 模式(参见“man kbd_mode”)。在这种模式下,作为 Alt-x1 ... Alt-xn(其中 x1,...,xn 是数字键盘上的数字)键入的 Unicode 字符将以 UTF-8 编码发出。如果您的键盘或更准确地说,您的普通键盘映射具有非 ASCII 字母键(如德语变音符号),并且您希望这些键可以进行大写锁定,则需要应用内核补丁 linux-2.2.9-keyboard.difflinux-2.3.12-keyboard.diff

您将希望在同一屏幕上使用来自不同文字系统的显示字符。为此,您需要一个 Unicode 控制台字体。ftp://sunsite.unc.edu/pub/Linux/system/keyboards/kbd-0.99.tar.gzftp://sunsite.unc.edu/pub/Linux/system/keyboards/console-data-1999.08.29.tar.gz 软件包包含一个字体 (LatArCyrHeb-{08,14,16,19}.psf),它涵盖拉丁文、西里尔文、希伯来文、阿拉伯文字系统。它一次性涵盖了 ISO 8859 的第 1、2、3、4、5、6、8、9、10 部分。要安装它,请将其复制到 /usr/lib/kbd/consolefonts/ 并执行“/usr/bin/setfont /usr/lib/kbd/consolefonts/LatArCyrHeb-14.psf”。

Dmitry Yu. Bolkhovityanov <D.Yu.Bolkhovityanov@inp.nsk.su>http://www.inp.nsk.su/~bolkhov/files/fonts/univga/index.htmlhttp://www.inp.nsk.su/~bolkhov/files/fonts/univga/uni-vga.tgz 中提供了一种更灵活的方法。为了解决 VGA 字体一次只能覆盖 512 个字符的限制,他提供了一个丰富的 Unicode 字体(2279 个字符,涵盖拉丁文、希腊文、西里尔文、希伯来文、亚美尼亚文、IPA、数学符号、箭头等等),尺寸为典型的 8x16,以及一个脚本,允许提取任何 512 个字符作为控制台字体。

如果您希望剪切&粘贴与 UTF-8 控制台一起工作,您需要 Edmund Thomas Grimley Evans 和 Stanislav Voronyi 提供的补丁 linux-2.3.12-console.diff

在 2000 年 4 月,Edmund Thomas Grimley Evans <edmundo@rano.org> 实现了 UTF-8 控制台终端模拟器。它使用 Unicode 字体并依赖于 Linux 帧缓冲设备。

2.2 X11 外文字体

不要犹豫安装西里尔文、中文、日文等字体。即使它们不是 Unicode 字体,它们也将有助于显示 Unicode 文档:至少 Netscape Communicator 4 和 Java 将在可用时使用外文字体。

以下程序在安装字体时很有用

以下字体是免费提供的(不是完整列表)

2.3 X11 Unicode 字体

希望同时显示属于不同文字系统(如西里尔文和希腊文)的文本的应用程序可以通过为各种文本使用不同的 X 字体来实现。这是 Netscape Communicator 和 Java 所做的。然而,这种方法更复杂,因为程序员必须处理 `XFontSet' 而不是 `Font' 和 `XFontStruct',而且字体集中并非所有字体都需要具有相同的尺寸。

2.4 Unicode xterm

xterm 是 X11R6 和 XFree86 的一部分,但由 Tom Dickey 单独维护。http://www.clark.net/pub/dickey/xterm/xterm.html 较新版本(补丁级别 146 及以上)包含将击键转换为 UTF-8,然后再将其发送到在 xterm 中运行的应用程序的支持,以及显示应用程序输出为 UTF-8 字节序列的 Unicode 字符的支持。它还包含对双倍宽度字符(主要是 CJK 表意文字)和组合字符的支持,由 Robert Brady <robert@suse.co.uk> 贡献。

要使 UTF-8 xterm 运行,您需要

2.5 TrueType 字体

上面提到的字体是固定大小且不可缩放的。对于某些应用程序,尤其是打印,高分辨率字体是必要的。可缩放、高分辨率字体最重要的类型是 TrueType 字体。它们目前受以下支持:

一些具有大 Unicode 覆盖范围的免费 TrueType 字体是

Bitstream Cyberbit

涵盖罗马文、西里尔文、希腊文、希伯来文、阿拉伯文、组合变音标记、中文、韩文、日文等。

可从 ftp://ftp.netscape.com/pub/communicator/extras/fonts/windows/Cyberbit.ZIP 下载。它是免费供非商业用途的。

Microsoft Arial

涵盖罗马文、西里尔文、希腊文、希伯来文、阿拉伯文、一些组合变音标记、越南文。

可下载;在搜索引擎中查找名为 arial.ttfariali.ttfarialbd.ttfarialbi.ttf 的 ftp 文件。

Lucida Sans Unicode

涵盖罗马文、西里尔文、希腊文、希伯来文、组合变音标记。

下载:包含在 IBM 的 Linux JDK 1.3.0 中,网址为 http://www.ibm.com/java/jdk/linux130/,或直接从 ftp://ftp.maths.tcd.ie/Linux/opt/IBMJava2-13/jre/lib/fonts/ 下载为 LucidaSansRegular.ttfLucidaSansOblique.ttf

Arphic

涵盖中文(繁体和简体)。

下载:在 ftp://ftp.gnu.org/non-gnu/chinese-fonts-truetype/。这些字体是真正免费的。

这些字体和其他 TrueType 字体的下载位置可以在 Christoph Singer 的免费可下载 Unicode TrueType 字体列表 http://www.ccss.de/slovo/unifonts.htm 中找到。

TrueType 字体的安装方式与固定大小字体类似,只是它们放在单独的目录中,并且必须在 mkfontdir 之前调用 ttmkfdir

# mkdir -p /usr/X11R6/lib/X11/fonts/truetype
# cp /somewhere/Cyberbit.ttf ... /usr/X11R6/lib/X11/fonts/truetype
# cd /usr/X11R6/lib/X11/fonts/truetype
# ttmkfdir > fonts.scale
# mkfontdir
# xset fp rehash

TrueType 字体可以使用 Mark Leisher 的 ttf2bdf 实用程序 ftp://crl.nmsu.edu/CLR/multiling/General/ttf2bdf-2.8-LINUX.tar.gz 转换为低分辨率、不可缩放的 X11 字体。例如,要生成用于 cooledit 的比例 Unicode 字体

# cd /usr/X11R6/lib/X11/fonts/local
# ttf2bdf ../truetrype/Cyberbit.ttf > cyberbit.bdf
# bdftopcf -o cyberbit.pcf cyberbit.bdf
# gzip -9 cyberbit.pcf
# mkfontdir
# xset fp rehash

有关 TrueType 字体的更多信息,请参见 Linux TrueType HOWTO http://www.moisty.org/~brion/linux/TrueType-HOWTO.html

2.6 杂项

Ricardas Cepas 的 ftp://sunsite.unc.edu/pub/Linux/system/keyboards/x-lt-1.24.tar.gz 软件包中的 testUTF-8.c 和 testUTF8.c 文件中可以找到一个小程序,用于测试 Linux 控制台或 xterm 是否处于 UTF-8 模式。但是,大多数应用程序不应使用此方法:它们应查看环境变量,请参见 “区域设置环境变量” 部分。


下一页 上一页 目录