今天的 Tetralet 又在唧唧喳喳了



« 四月 2017 »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30






 

在 GNU/Linux 上設定字型 (中) - 安裝與設定 X11 字型

Tetralet | 10 十二月, 2006 00:43

安裝與設定 X11 Core Font

安裝 X11 Core Font 管理程式

在 Debian GNU/Linux 裡,要安裝 X11 Core Font 管理程式只要一行指令就夠:

aptitude install x-ttcidfont-conf libft-perl libttf2 defoma

其中的 defoma 套件全名為 Debian Font Manager,Debian GNU/Linux 的使用者可以利用它來方便得管理 X11 Core Font。而在安裝 X Window 的過程中,應該已經安裝了以上套件才是。

安裝 Debian 官方所提供的 X11 Core Font

以下所列出的是一些由 Debian 官方所提供的、建議中文桌面使用者安裝的 X11 Core Font:

  • xfonts-75dpi:有些應用程式可能會用到。預設上應該會安裝。

  • xfonts-intl-chinese:包含了 GB2312、GB8565-88、BIG5 (ETen)、SiSheng 等字型。XCIN 的使用者可能會用到。

  • unifont:一個常見的 UTF-8 字型。如果您是以中文語系來安裝 Debian Etch 的話,預設上應該會安裝。

  • xfonts-wqy:一個常見的 UTF-8 字型。即著名的文泉驛字型。

而這些字型也是一行指令搞定:

aptitude install xfonts-75dpi xfonts-intl-chinese unifont xfonts-wqy

另外,也能讓 defoma 支援 TTF 字型。但因為這種方法不管在效能及美觀上都有著重大缺陷,在此就略過不提了。

檢查系統上可用的 X11 Core Font

在安裝完 X11 Core Font 後,您可以利用 xlsfonts 指令來得知系統上已安裝了哪些字型。例如以下指令可以找出在系統裡安裝了哪些 iso10646 (UTF-8) 字型:

xlsfonts | grep iso10646

沒有意外的話,您應該可以看到 unifont 及 wenquanyi 出現在列表裡。

使用者自行安裝 X11 Core Font

對於使用者而言,也許無法滿意於 Debian GNU/Linux 所提供的字型。其實您也可以自行手動安裝 X11 Core Font。以螢火飛 (Firefly) 前輩所提供、以 GPL 授權的 螢火飛新宋體 為例:

首先,先建立一個放點陣字的子目錄:

mkdir -p ~/.fonts/bitmap

將您所下載到的字型搬到這個目錄裡:(以大小為 16 之點陣字為例)

mv fireflyR16.pcf.gz ~/.fonts/bitmap

然後,在該目錄下產生必須的字型資訊:

cd ~/.fonts/bitmap
mkfontdir

接下來,在您的 ~/.xinitrc 裡新增如下一行:

#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $

xset fp+ ~/.fonts/bitmap

# invoke global X session script

. /etc/X11/Xsession

然後重新啟動 X Window,就能用 xlsfonts 看到大小為 16 的螢火飛新宋體了:

-firefly-firefly new sung-medium-r-normal--0-0-75-75-p-0-iso10646-1
-firefly-firefly new sung-medium-r-normal--16-150-75-75-p-159-iso10646-1

X11 Core Font編輯程式

另外,您也可以利用像是 gbdfed 之類的 X11 Core Font 編輯程式來由 TTF 字型裡匯出點陣字、或是自行繪製 X11 Core Font。

設定應用程式使用 X11 Core Font

  • 修正 Xorg 的錯誤編碼:

    由於一些(愚不可及)的因素,在 Xorg 裡的 zh_TW.UTF-8 編碼是壞的,所以一些使用 X11 Core Font的應用程式,像是 XMMS 或是 ePSXe 在 UTF-8 環境下所顯示的全是亂碼。

    解決方案:請下載正確的 XLC_LOCALE 檔案並蓋過 /usr/share/X11/locale/zh_TW.UTF-8/XLC_LOCALE 即可。

  • Gtk+ 1.x 應用程式(例如 ePSXe)

    您可以修改 ~/.gtkrc.utf-8 來設定在 UTF-8 環境下的 Gtk+ 1.x 應用程式所使用的字型。例:

    style "default-text" {
    fontset = "-firefly-firefly new sung-medium-r-normal--16-150-75-75-p-159-iso10646-1"
    }

    class "GtkWidget" style "default-text"

    以及修改 ~/.gtkrc.zh_TW 來設定在 zh_TW.Big5 環境下的 Gtk+ 1.x 應用程式所使用的字型。例:

    style "gtk-default-zh-tw" {
    fontset = "-sony-*-16-*-iso8859-1,
    -eten-*-medium-r-*-16-*-c-*-big5-0"
    }
    class "GtkWidget" style "gtk-default-zh-tw"

  • XMMS:

    XMMS 是極受歡迎的音樂播放程式。由於 XMMS 是 Gtk+ 1.x based 的程式,所以在設定 XMMS 的字型之前,請參考上文修正好 Xorg 的錯誤編碼,並設定好 ~/.gtkrc.utf-8 ~/.gtkrc.zh_TW

    設定 XMMS 的字型畫面如下所示:

    XMMS 字型設定

  • MLTerm

    MLTerm 是現今 GNU/Linux 裡少數能完全支援 UTF-8 的 X Window Emulator。您可以在 ~/.mlterm/font 裡設定 MLTerm 在未啟用 Anti-Alias 字型時所使用的字型名稱:

    ISO8859_1 = -sony-*-16-*-iso8859-1;
    ISO10646_UCS4_1 = -sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1;
    ISO10646_UCS4_1_BIWIDTH = -freetype-ar pl new sung-reguler-r-normal--16-160-72-72-p-149-iso10646-1;
(待續)
迴響

感謝Tetralet

現在安裝點陣字的方法跟以前不一樣了
路徑變了
mlterm的字看起來很不習慣
還好有您這篇文章指點迷津
我自己試了一下按照您的步驟修改mlterm未啟用Anti-Alias(圓滑字型)時所使用的字型名稱時
mlterm還是不能顯示firefly的點陣字型
後來參考您之前的文章更改了一下就可以了
更改如下
ISO8859_1 = -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1;
ISO10646_UCS4_1 = -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1;
ISO10646_UCS4_1_BIWIDTH =-firefly-firefly new sung-medium-r-normal--16-150-75-75-p-159-iso10646-1

請問第一行跟第二行是指定什麼字型呢?
謝謝您的分享讓mlterm又順眼多了

[回應] silice @ 23/12/2006, 16:40

authimage
驗證碼皆為英文大寫字母
僅輸入前4碼即可。後2碼是假的,欺敵用。
這是為了防制 Spam 而設計的。若造成您的不便還請見諒!
Accessible and Valid XHTML 1.0 Strict and CSS
Powered by LifeType - Design by BalearWeb