-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- X TrueType Server Version 1.3 [Aoi MATSUBARA Release 3] Setup Example Note (C)1998,1999 X TrueType Server Project All rights reserved. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ------------------------------------------------------------- 0. はじめに ------------------------------------------------------------- この文章は X-TT 上で実際のアプリケーションを使用する際の設定の方法な どを幾つか実例をまじえて解説したものです。 文書の内容にはある程度のチェックをおこなっていますが、もしかしたら不 正確な部分、不十分な部分があるかもしれません。そういう点に関するご意 見などありましたら、X-TT メーリングリストあるいは 塩崎 拓也 AoiMoe@isoternet.org 渡邊 剛 go@isoternet.org まで、ぜひご連絡下さい。 -------------------- 0.1 概説 X-TT は、単に TrueType フォントを X のフォントとして利用可能にするだ けのものです。このため、本来は特に気にすることなくいままで利用してい たアプリケーションで自由に使用可能なはずです。 ところが、従来のアプリケーション、特に「日本語対応」なものの多くは、 歴史的経緯から、プロポーショナル/スケーラブルな多様なフォントが利用で きることを *想定せずに* 作成されているものが多くあり、有効に利用でき ないような場合があります。 また、多様なフォントが使用可能に設計されたアプリケーションにおいても、 その設定方法は広くは知られていないのが現状でしょう。 この文書では、プロポーショナル/スケーラブルフォントに対応しているアプ リケーションでのより効率のよい設定方法や、対応してない、または対応が おかしいアプリでの適切な設定方法などについて解説してあります。 ----------------------------- 0.2 フォントの種類について プロポーショナルフォント 文字単位でその文字幅や高さなどが異なるフォント 固定幅フォント 文字の横(縦)幅が全て同じにつくられたフォント ビットマップフォント 小さな点の集合で文字の形状をあらわしたフォント アウトラインフォント 輪郭線の情報で文字の形状をあらわしたフォント 拡大しても綺麗なままである スケーラブルフォント 文字のサイズを任意に指定可能なフォント ・X の場合は、サイズ指定関連パラメータ (PIXEL_SIZE, POINT_SIZE, AVERAGE_WIDTH)が全て 0 になっているものがスケーラブルフォントとみ なされる ・通常アウトラインフォントはスケーラブルフォントである ・現在の X の ビットマップフォントレンダラは、ビットマップフォント を自動的に拡大縮小するビットマップ・スケーリング機能をもっている。 xlsfonts でサイズ指定パラメータが 0 になっているビットマップフォ ントが存在するなら、この自動スケーリングが有効な状態になっている。 # ただし、この自動スケーリングを行う場合、最初に全グリフを生成するよ # うになっており、16bit フォントでこれをおこなうと非常に処理に時間が # かかり、X の全処理が一時停止することになります。XFree86 では、 # /etc/XF86Config での FontPath 指定で :unscaledをつけることにより、 # その FontPath でのビットマップスケーリングを抑制できるようになって # いる。X-TT を使用する場合は抑制したほうがよいでしょう -------------------------- XF86Config Example (部分) Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Speedo" FontPath "/usr/X11R6/lib/X11/fonts/ttf" # FontPath "/usr/X11R6/lib/X11/fonts/misc" # FontPath "/usr/X11R6/lib/X11/fonts/75dpi" # FontPath "/usr/X11R6/lib/X11/fonts/100dpi" EndSection ------------------------- X のアウトラインフォントは、RESOLUTION_X, RESOLUTION_Y が 0 になてと り、またスケーラブルなので、PIXEL_SIZE, POINT_SIZE, AVERAGE_WIDTH も 0 になっています。 例: -adobe-utopia-bold-r-normal--0-0-0-0-p-0-iso8859-1 また、ビットマップで自動スケーラブルなものは、RESOLUTION_X, RESOLUTION_Y はもともとの値のまま (75,100 が多い)になっています。 例: -misc-fixed-medium-r-normal--0-0-75-75-c-0-jisx0208.1983-0 X-TT において、TrueType フォントは、アウトラインかつスケーラブルなフォ ントとして利用可能です。プロポーショナル/固定幅の設定はフォントによっ て、また X-TT での設定によっても変ります。 ------------------------------------------------------------- 1. X-TT の設定に関する一般的なこと ------------------------------------------------------------- --------------------------------- 1.1 True Type Collection について True Type Collection とは、拡張子が ttc となっているような TrueType Font です。この形式のフォントは、中に複数のメトリック情報(face)がふく まれていて、同一のフォントから、固定幅のものとプロポーショナルなもの など、複数の種類のフォントをとりだすことが可能です。 # 単一フェイスのフォントは通常拡張子 ttf になっています。 X-TT においては、このような TTC フォントを用いる場合、TTCap を用いて フェイス番号を指定することによって可能となっています。具体的には、フォ ントのファイル名の前に、fn=番号 の形でフェイスの番号を指定することに なります。 1byte 系の文字セット (iso-8859-1, jisx0201 など) は、プロポーショナル なものを、2byte 系の文字セット (jisx0208, ksc5601 など) は、固定幅な ものを指定するのが良いでしょう。 ただし、端末で利用する場合には、1byte 系も固定幅なものが要求されます。 そこで、1byte 系については 固定幅/プロポーショナルなものを両方準備する ことにします。 X-TT の spacing 指定で 'c' にすると、強制固定幅になりますが、フェイス 自体が固定幅な場合、'p' でも当然固定幅になります。可能ならこちらを指 定したほうが良いでしょう。Netscape においては、'p' を指定してある場合 「プロポーショナルフォント」して認識してしまうので、その場合は 'm'を 使う、または 'c' にして TTCap でプロポーショナル指定をかけます。 # fonts.alias でも解決は可能です。 実例 Dynalab DF平成明朝体 W3 / W9 の場合 Windows/Shift_JIS encoding face 0: 固定幅 DFHSMincho-W3/DFHSMincho-W9 face 1: プロポーショナル DFPHSMincho-W3/DFPHSMincho-W9 ・w3 を medium, w9 を bold として登録。それぞれ斜体も登録する(ai=0.3) ・jisx0201, jisx0208 くわえて iso8859-1(ホントはうそっこ) を登録する ○1byte 系プロポーショナルフォント 「プロポーショナル」にするため、spacing に 'p' を指定します。なおフォ ントの face としてプロポーショナルなもの(fn=1)を強制指定してあります。 Netscape は spacing が 'p' な場合、プロポーショナルフォントとみなしま す。 本来、名前は "mincho" で良いところなのですが、Netscape が、認識のとき は 'p' を理解するにもかかわらず、フォントのロード時には '*' で要求を かけるため、'm' 'c' が存在すると、これが先にマッチしてしまうというこ まったちゃんな仕様になっています。これを避けるためフォントの名称を "pmincho" にして区別してあります(けっこう本末転倒) # なお、1byte 系プロポーショナルフォントは jisx0201 は今後はあまり使 # 用されることはないでしょうし、iso-8859-1 については、海外のフリーで # 良質な Type1 や TrueType のスケーラブルなものがたくさんあるので、そ # ちらを利用するほうが良いかと思います。 ----------------------------------------------------------------------------- fn=1:dfhsmw3.ttc -dynalab-pmincho-medium-r-normal--0-0-0-0-p-0-iso8859-1 fn=1:dfhsmw3.ttc -dynalab-pmincho-medium-r-normal--0-0-0-0-p-0-jisx0201.1976-0 fn=1:dfhsmw9.ttc -dynalab-pmincho-bold-r-normal--0-0-0-0-p-0-iso8859-1 fn=1:dfhsmw9.ttc -dynalab-pmincho-bold-r-normal--0-0-0-0-p-0-jisx0201.1976-0 fn=1:ai=0.3:dfhsmw3.ttc -dynalab-pmincho-medium-i-normal--0-0-0-0-p-0-iso8859-1 fn=1:ai=0.3:dfhsmw3.ttc -dynalab-pmincho-medium-i-normal--0-0-0-0-p-0-jisx0201.1976-0 fn=1:ai=0.3:dfhsmw9.ttc -dynalab-pmincho-bold-i-normal--0-0-0-0-p-0-iso8859-1 fn=1:ai=0.3:dfhsmw9.ttc -dynalab-pmincho-bold-i-normal--0-0-0-0-p-0-jisx0201.1976-0 ----------------------------------------------------------------------------- ○1byte 系固定幅フォント 「固定幅」な名称で、かつ Proportional な計算をほどこすためspacing を 'c' にして、さらに fp でプロポーショナル計算指定します。フォントには固定 幅なものをえらんであります。 ----------------------------------------------------------------------------- fp=y:dfhsmw3.ttc -dynalab-mincho-medium-r-normal--0-0-0-0-c-0-iso8859-1 fp=y:dfhsmw3.ttc -dynalab-mincho-medium-r-normal--0-0-0-0-c-0-jisx0201.1976-0 fp=y:dfhsmw9.ttc -dynalab-mincho-bold-r-normal--0-0-0-0-c-0-iso8859-1 fp=y:dfhsmw9.ttc -dynalab-mincho-bold-r-normal--0-0-0-0-c-0-jisx0201.1976-0 fp=y:ai=0.3:dfhsmw3.ttc -dynalab-mincho-medium-i-normal--0-0-0-0-c-0-iso8859-1 fp=y:ai=0.3:dfhsmw3.ttc -dynalab-mincho-medium-i-normal--0-0-0-0-c-0-jisx0201.1976-0 fp=y:ai=0.3:dfhsmw9.ttc -dynalab-mincho-bold-i-normal--0-0-0-0-c-0-iso8859-1 fp=y:ai=0.3:dfhsmw9.ttc -dynalab-mincho-bold-i-normal--0-0-0-0-c-0-jisx0201.1976-0 ----------------------------------------------------------------------------- 各種 iso8859-1 なプロポーショナルフォントを強制固定幅で使用したい場合、 spacing 'c' を指定して幅を決めうちした上で、TTCap の bw/sw オプション で幅を調整するという方法が一応可能です。 例: ------------------------------------------------------------------------- bw=0.7:cour.ttf -ms-courier-medium-r-normal--0-0-0-0-c-0-iso8859-1 bw=0.7:courbd.ttf -ms-courier-bold-r-normal--0-0-0-0-c-0-iso8859-1 bw=0.7:couri.ttf -ms-courier-medium-i-normal--0-0-0-0-c-0-iso8859-1 bw=0.7:courbi.ttf -ms-courier-bold-i-normal--0-0-0-0-c-0-iso8859-1 ------------------------------------------------------------------------- 端末エミュレータなど、固定幅フォントがどうしても必要な場合にはこれを 用いてサイズ調整をかけることができます。ただし、はみでなどについては 切れてしまうため、可能ならばはじめから固定幅で設計されたフォントを利 用したほうがよいでしょう。 固定幅のフォントは Monospace/Terminal/Fixed などの名前がついているこ とが多いです。 ○2byte 系固定幅 「固定幅」でかつ Metric 計算を省略させるため 'c' を指定してあります。 Netscape は 'c' の場合プロポーショナル、固定幅両用のフォントとみなし ます。 ----------------------------------------------------------------------------- dfhsmw3.ttc -dynalab-mincho-medium-r-normal--0-0-0-0-c-0-jisx0208.1983-0 dfhsmw9.ttc -dynalab-mincho-bold-r-normal--0-0-0-0-c-0-jisx0208.1983-0 ai=0.3:dfhsmw3.ttc -dynalab-mincho-medium-i-normal--0-0-0-0-c-0-jisx0208.1983-0 ai=0.3:dfhsmw9.ttc -dynalab-mincho-bold-i-normal--0-0-0-0-c-0-jisx0208.1983-0 ----------------------------------------------------------------------------- 2byte 系においても、プロポーショナルな指定は(p または TTCap)当然可能 ですが、一般的に文字数が多く、1byte 系と同様の指定をしたのではメトリッ クの計算のためにフォントのオープン時に非常に時間がかかる ようになりま す。Ver1.1-pl01 以降の X-TT では、TTCap に vl オプションの指定が追加 されており、これを y に指定すると、メトリック計算をある程度簡略化して 行うようになります。当然メトリック計算を簡略化してあるため、多少正確 さは失われますが、実用上問題ない程度のずれです。これにより、数千字程 度の 2byte 系フォントならば実用的な速度で利用することができますので、 日本語フォントに関しては問題ない速度で利用することができます。具体的 には、以下のような指定になるでしょう。 ----------------------------------------------------------------------------- vl=y:dfhsmw3.ttc -dynalab-pmincho-medium-r-normal--0-0-0-0-p-0-jisx0208.1983-0 vl=y:dfhsmw9.ttc -dynalab-pmincho-bold-r-normal--0-0-0-0-p-0-jisx0208.1983-0 vl=y:ai=0.3:dfhsmw3.ttc -dynalab-pmincho-medium-i-normal--0-0-0-0-p-0-jisx0208.1983-0 vl=y:ai=0.3:dfhsmw9.ttc -dynalab-pmincho-bold-i-normal--0-0-0-0-p-0-jisx0208.1983-0 ----------------------------------------------------------------------------- ------------------------------------------------------ 1.2 スケーラブルフォントのデフォルトサイズ指定について スケーラブルフォント(サイズ指定パラメータが 0 になっているフォント; X-TT による TrueType Font は全てこれになります) において、サイズを明 示的に指定しない場合には、12 point (120 decipoint) のサイズが使用され るようになっています。point 指定の場合、pixel 指定と異なり、ディスプ レイの解像度によって実際のサイズが異なることになります。 ディスプレイの解像度指定は、X Server の起動時オプション -dpi によって 変更可能です。解像度指定をしない時のスケーラブルフォントのサイズを調 整したい場合、はこのオプションを利用することになります。 XFree86 での未指定時のデフォルトは、75dpi です。通常、17inch のディス プレイで 1000 pixel を超える解像度の場合、本来は 100 〜 120dpi 程度で す。実際より粗い解像度を想定して計算されることになるので、 このままで はフォントが小さくくて読みにくいということになります。 解像度は次の計算式で算出可能です: 画面の横のドット数 [dot] * 24.5 [mm/inch] * 画面の横幅 [mm] = [dot/inch] # ただし、厳密にこの計算式を用いると、かえって読みにくくなるかもしれ # ません。実際、Windows ではディスプレイ上の 1inch が実際の 1inch よ # り大きくなるような係数を用いています。 手動では、 % startx -- -dpi 100 などとして、Xserver にオプションをわたします。 常時固定にする場合は ・$(HOME)/.xserverrc (ユーザ別) ・/usr/X11R6/lib/X11/xserverrc (デフォルト) に X :0 -dpi 100 (XFree86 3.3.2 以降では XWrapper :0 -dpi 100) などと記述します。 xdm の場合は /usr/X11R6/lib/X11/xdm/Xservers にオプションを追加記述します。 後述の Netscape でのフォントサイズ指定が保存されない問題に対してもこ の指定は有効に働くことでしょう(Netscape でのスケーラブルフォントは point 指定。FONT size=3 が 12point)。 参考: 12point のフォントのピクセルでのサイズ 75dpi: 12pixel 100dpi: 17pixel 120dpi: 20pixel 詳細は startx, xinit, X, Xserver などのマニュアルを参照して下さい。 ------------------------------------------------------------- 2. 端末ソフトでの利用例 (kterm / Mule など) ------------------------------------------------------------- 現在の主要な端末スタイルのソフトウェアは、基本的に「固定幅」フォント を前提に設計されているものが大多数です。 # これはカラム位置から、表示座標を簡単に算出可能だからでしょう。固定 # 幅でない場合、カーソル移動のたびに先頭からの再表示位置算出が必要に # なります。 ここでの「固定幅」とは、全てのフォントの横幅が同一ということです。そ れに加えて 2byte 系文字セットは 1byte 系文字セットの 2倍の横幅になる ことが期待されています。 国内製の TrueType Font はたいてい固定幅な face をもってるので、それを 指定するようにすれば良いでしょう。 ------------------- 2.1 KTerm KTerm 6.2.0 は iso-2022 準拠の仮想端末 X Client です。その歴史的経緯 から、EUC-JP/Shift_JIS 専用のモードももちます。 iso-2022 端末として利用する場合は、漢字モード(起動時オプション -km/リ ソース KTerm.vt100.kanjiMode)を "jis" にします (デフォルト) Kterm には 2系統のフォント指定方法が存在します。 a. 旧来(Kanji-Terminal)の方式 -fn iso-8859-1(latin1) のフォント指定 -fr jisx0201(roman-kana) のフォント指定 -fk jisx0208(kanji) のフォント指定 上記の3種類のフォントについて、直接名前を指定します。XLFD でも良いし、 省略名称 (fonts.alias に登録したもの)でもかまいません。 KTerm は auto bold の機能を持ちますが、bold font を別途指定することも 可能です。この場合、次のオプションで指定します -fb iso-8859-1 の bold font 指定 -frb jisx0201 の bold font 指定 -fkb jisx0208 の bold font 指定 これらの指定を毎回起動時オプションで指定するのは不便です。リソースで 指定する場合は次のリソースを使用します。 KTerm.vt100.font: KTerm.vt100.kanjiFont: KTerm.vt100.ronamKanaFont: KTerm.vt100.boldFont: KTerm.vt100.kanjiBoldFont: KTerm.vt100.ronamKanaBoldFont: KTerm の VTFont メニューでの Unreadable/Tiny/Small/Medium/Large/Huge の指定は、それぞれリソースの名の後ろに 1〜6 の数値がついたものになり ます。(KTerm.vt100.font1: など) b. 新方式 iso-2022 の端末として完全に利用したい場合は、こちらの指定になります。 デフォルトではこちらになっています。 -fl フォントリスト指定 デフォルト値は -*-fixed-medium-r-normal--14-*,-*-gothic-medium-r-normal--14-*,-*-mincho-medium-r-nor-mal--14-* です。歴史的経緯がうかがわれるデフォルトですね :-) このリストで XListFonts(3X11) した結果の中から、対応する 文字セット のフォントを探して利用します。この時、iso8859-1 のフォントが存在しな いと、"fixed" で起動することになります。 X-TT では対応してない文字セットのフォントも bitmap font をとりまぜて 対応させたいような場合は、 1. コンマでくぎってそれぞれの名前を列挙する 2. fonts.alias のほうに名称登録をかけることで名称の統一をおこなう のいずれかを行います。後者をおこなっておけば、指定が単純になって便利 でしょう。各種文字セットのフォントとしては電総研から Mule 用として配 布されているフォント群が利用可能でしょう。 boldFont の指定には、オプション -flb を利用します。 実例: (コマンドライン) ----------------------------------------------------------------------------- % kterm -fl "-dynalab-mincho-medium-r-normal--32-*-*-*-c-*-*-*" -flb "-dynalab-mincho-bold-r-normal--32-*-*-*-c-*-*-*" ------------------------------------------------------------------------------ リソースで指定する場合には次のリソースが利用できます。 KTerm.vt100.fontList; KTerm.vt100.boldFontList: 実例: (.Xdefaults / .Xresources など) ------------------------------------------------------------------------------ KTerm.vt100.fontList; -dynalab-mincho-medium-r-normal--32-*-*-*-c-*-*-* KTerm.vt100.boldFontList: -dynalab-mincho-bold-r-normal--32-*-*-*-c-*-*-* --------------------------------------------------------------------------- こちらも同様に 1〜6 までのそれぞれのリソースが存在します。 X-TT で利用する場合、iso-8859-1, jisx0201, jisx0208 それぞれは、同一 のフォントからとりだしたほうが収まりは良いでしょう。ただし、Shift_JIS のエンコーディングのフォントからとりだしたものを利用した場合、当然 iso-8859-1 は不正確になります。 正確に iso-8859-1 を利用したい場合は、iso-8859-1 なフォント(欧米系の フォント: たいてい Proportional)で、TTCap をつかって、幅を決めうちし てつかう方法があるでしょう。または、固定幅(かつ、縦横比が 2:1 なもの でないと、漢字との相性が悪い)なフォントを探す必要があります。 ---------- 2.2 Mule Mule (Emacs 19系列)も KTerm と同様、固定幅かつ 2byte 系と 1byte 系の 文字の幅の比が 2:1 である必要があります。(XEmacs はプロポーショナルフォ ントに完全対応です) 起動時オプション -font/-fn フォントセット指定/生成 リソース Emacs.fontSetList: フォントセットの名称を列挙します。先頭のものがデフォルトになります Emacs.fontSet-XXX: 上記の fontSetList で定義したフォントセットそれぞれを定義します。 実例: (.Xdefaults / .Xresources など) ----------------------------------------------------------------------------- Emacs*FontSetList: 16,14,12,200p Emacs*FontSet-12: -sony-fixed-medium-r-*--12-*-iso8859-1,\ -*-fixed-medium-r-*--12-*-jisx0201.1976-*,\ -*-fixed-medium-r-*--12-*-jisx0208.1983-*, Emacs*FontSet-14: -*-fixed-medium-r-*--14-*-iso8859-1 Emacs*FontSet-16: -*-fixed-medium-r-*--16-*-iso8859-1 Emacs*FontSet-24: -*-fixed-medium-r-*--24-*-iso8859-1 Emacs*FontSet-200p:\ -dynalab-mincho-medium-r-normal--*-200-*-*-c-*-iso8859-1,\ -dynalab-mincho-medium-r-normal--*-200-*-*-c-*-jisx0201.1976-0,\ -dynalab-mincho-medium-r-normal--*-200-*-*-c-*-jisx0208.1983-0 ----------------------------------------------------------------------------- なお 19.28 base の Mule 2.3 の場合、デフォルトで CTRL-Button3 がフォ ント選択ダイアログになっており、フォントセットの選択がここから可能に なっています。 --------------------------------------- 2.3 Emacs 20系 (thanks to みのうらさん) MuleやKTermと異なり、GNU Emacs 20.2 (Mule 統合ずみ)は、単一のフォント セットの中で任意のサイズのフォントを扱うことができます(ただし固定幅で ある必要は依然としてあります)。(ただし、あまりにサイズがばらばらだと 読みにくいことでしょう :p) 以下は、Adobe Courier (Xの標準配布の中のフォント) とリコーの平成角ゴ シック体からなる18ドットのフォントセットを利用するためのリソースの例 です。 ------------------------------------------------------------------------ Emacs.Fontset-0: -*-fixed-medium-r-normal--18-*-*-*-c-*-fontset-Courier18,\ ascii:-adobe-courier-medium-r-normal--18-*-*-*-m-*-iso8859-1,\ latin-iso8859-1:-adobe-courier-medium-r-normal--18-*-*-*-m-*-iso8859-1,\ latin-jisx0201:-ricoh-gothicw3-medium-r-normal--18-*-*-*-c-*-jisx0201.1976-0,\ katakana-jisx0201:-ricoh-gothicw3-medium-r-normal--18-*-*-*-c-*-jisx0201.1976-0,\ japanese-jisx0208:-ricoh-gothicw3-medium-r-normal--18-*-*-*-c-*-jisx0208.1983-0,\ japanese-jisx0212:-ricoh-hgheiseiminchotaiw3hojyo@x12-medium-r-normal--18-*-*-*-c-*-jisx0212.1990 -0 Emacs.Font: -*-fixed-medium-r-normal--18-*-*-*-c-*-fontset-Courier18 ------------------------------------------------------------------------ 各フォントセットの定義の中で、最初の行はフォントセット名(XLFDの charsetフィールドが「fontset」で、encodingフィールドがそのフォントセッ トの別名) をあらわし、続けて 文字集合名:対応するフォントのXLFD の形の、コンマで区切られたフォントのリストを記述します。ここに現れな かった文字集合のためのフォントは、フォントセット名から決定されます。 上記の例で、latin-2 フォントは -*-fixed-medium-r-normal--18-*-*-*-c-*-iso8859-2. にマッチするものから選ばれます。 さらに、太字やイタリック (あるいは斜体) のフォントを持ってい るのであれば、以下のような定義を追加できます。 ------------------------------------------------------------------------ Emacs.Fontset-1: -*-fixed-bold-r-normal--18-*-*-*-c-*-fontset-Courier18,\ ascii:-adobe-courier-bold-r-normal--18-*-*-*-m-*-iso8859-1,\ latin-iso8859-1:-adobe-courier-bold-r-normal--18-*-*-*-m-*-iso8859-1,\ latin-jisx0201:-ricoh-gothicw9-bold-r-normal--18-*-*-*-c-*-jisx0201.1976-0,\ katakana-jisx0201:-ricoh-gothicw9-bold-r-normal--18-*-*-*-c-*-jisx0201.1976-0,\ japanese-jisx0208:-ricoh-gothicw9-bold-r-normal--18-*-*-*-c-*-jisx0208.1983-0,\ japanese-jisx0212:-ricoh-hgheiseiminchotaiw3hojyo@x12-bold-r-normal--18-*-*-*-c-*-jisx0212.1990-0 Emacs.Fontset-2: -*-fixed-medium-o-normal--18-*-*-*-c-*-fontset-Courier18,\ ascii:-adobe-courier-medium-o-normal--18-*-*-*-m-*-iso8859-1,\ latin-iso8859-1:-adobe-courier-medium-o-normal--18-*-*-*-m-*-iso8859-1,\ latin-jisx0201:-ricoh-gothicw3-medium-o-normal--18-*-*-*-c-*-jisx0201.1976-0,\ katakana-jisx0201:-ricoh-gothicw3-medium-o-normal--18-*-*-*-c-*-jisx0201.1976-0,\ japanese-jisx0208:-ricoh-gothicw3-medium-o-normal--18-*-*-*-c-*-jisx0208.1983-0,\ japanese-jisx0212:-ricoh-hgheiseiminchotaiw3hojyo@x12-medium-o-normal--18-*-*-*-c-*-jisx0212.1990 -0 Emacs.Fontset-3: -*-fixed-bold-o-normal--18-*-*-*-c-*-fontset-Courier18,\ ascii:-adobe-courier-bold-o-normal--18-*-*-*-m-*-iso8859-1,\ latin-iso8859-1:-adobe-courier-bold-o-normal--18-*-*-*-m-*-iso8859-1,\ latin-jisx0201:-ricoh-gothicw9-bold-o-normal--18-*-*-*-c-*-jisx0201.1976-0,\ katakana-jisx0201:-ricoh-gothicw9-bold-o-normal--18-*-*-*-c-*-jisx0201.1976-0,\ japanese-jisx0208:-ricoh-gothicw9-bold-o-normal--18-*-*-*-c-*-jisx0208.1983-0,\ japanese-jisx0212:-ricoh-hgheiseiminchotaiw3hojyo@x12-bold-o-normal--18-*-*-*-c-*-jisx0212.1990-0 ------------------------------------------------------------------------ M-x list-faces-display を試してみてください。 ------------------------------------------------------------ 3. Netscape Navigator での利用例 (thanks to かずしさん) ------------------------------------------------------------- 代表的な WWW Browser、 Netscape Navigator では、様々な形状、様々なサ イズのフォントが要求されます。英字のフォントは様々なものが X の配布に ふくまれているのですが、X の配布にふくまれる日本語のフォントは固定サ イズのものが数種あるだけです。こういう場面こそ X-TT の本領発揮といえ ましょう。 Netscape Navigator では、フォントの Foundry Name と Family Name でフォ ントを区別しています。 たとえば、 -dynalab-mincho-medium-i-normal--0-0-0-0-c-0-iso8859-1 なら mincho(dynalab) として識別されます。 これで同一とみなされたフォントに対して、 weight: medium(標準) / bold(太字) slant: r(標準) / i(斜体) を指定したものが実際のフォントとして要求されます。 なお Netscape Navigator 3 では 通常の文字: medium-r B 要素のスタイル: bold I 要素のスタイル: i EM 要素のスタイル: bold STRING 要素のスタイル: bold というスタイル指定になっています。weight と slant の指定は共存します。 また、PRE要素、TT要素、CODE要素などにおいてはフォント選択「固定幅」で 指定したフォントのほうが有効になります。 # 将来のバージョンにおいて、CSS が完成した場合、このあたりの指定も細 # かく変更できるようになることでしょう。 フォントサイズは、Preference で指定した point size のフォントをFONT size=3 として、size が 1 上がるごとに 20% 増加、1下がるごとに 20% 減 少という値が用いられます。 # この 20% という値は、リソース # Netscape*documentFonts.sizeIncrement: # で変更可能です これらフォントの種類、およびデフォルトのサイズの指定は、 Netscape 3 では オプション/全般の設定/Fonts (options/General Preferences/Fonts) Netscape 4 では 編集/設定/アピアランス/フォント (Edit/Preferences/Appearance/Fonts) から行います。 Netscape でのフォント設定は、文字セット別に、 ・フォントの種類(family(foundary))の選択 ・スケーリングのON/OFFの選択 ・サイズの選択 をそれぞれ プロポーショナルフォント/固定幅フォント に対して行います。 なお、 spacing 指定が 'p' のもの: プロポーショナル spacing 指定が 'm' のもの: 固定幅 spacing 指定が 'c' のもの: 両用 とみなされます。 スケーリング指定は、スケーラブルフォントが存在するときのみ有効になり ます。固定サイズフォント(bitmap フォント)がスケーリング可能な場合、こ れを ON にすると、スケーリングが行われます。 # もともとスケーラブルなフォントは常にスケーリングがおこなわれるため # 関係ありません。 サイズ指定は、font size=3 のフォントのサイズを point 単位で指定します。 スケーラブルフォントの場合、本来、選択バーを「その他(any)」にして、サ イズをダイアログに入力すれば良いはずなのですが、Netscape のバグのため、 入力したはずの値が保存されません。 これを解決するには、今の所、fonts.aliasで適当なエントリを書いておいて、 それを指定するしかありません。 # .netscape の preference の中の設定を保存してる場所を手で書き換えて # しまうという荒業がありますが、これはメニューのダイアログをだすとま # たクリアされてしまいます。 # なお、この部分の値が未設定の場合、これは X のデフォルトの 12.0 # point ということになります。解像度の適切が適切なら、それなりに普通 # のサイズになっていることでしょう。 # # 参考: 1.2 スケーラブルフォントのデフォルトサイズ指定について # 具体的には、以下のような、fonts.aliasを追加します。フォントファミリに ついて1つ登録すればいいので、boldやitalicを別途追加する必要はありませ ん。 "-dynalab-mincho-medium-r-normal--0-180-100-100-c-0-jisx0208.1983-0" "-dynalab-mincho-medium-r-normal--25-180-100-100-c-0-jisx0208.1983-0" 実際には、使っている環境に合わせて、これを変更します。例えば、 dylnalab-mincho を 150ポイントで使いたいなら、まず、 % xlsfonts -fn '-dynalab-mincho-*-*-*-*-*-150-*-*-*-*-*-*' -dynalab-mincho-medium-r-normal--21-150-100-100-c-0-jisx0208.1983-0 として、使いたいフォントの具体的なピクセルサイズとポイントサイズを調 べなくてはいけません。こうして得た結果を元に、上記を変更するわけです。 まず、フォント名を自分の利用できるフォントに合わせて変えます。次にピ クセルサイズを変えます。この時に、aliasとして用意する側の名前では"0" のままにしておきましょう。これは、alias元と先のフォント名が一緒だった 場合にも、aliasが動作するようにするための仕掛です。エイリアス先のピク セルサイズだけを、先程xlsfontsで求めた値に変更します。それから、180デ シポイントという所を、好みのポイントに変えます。この例の場合は 150 に するわけです。ちなみに、netscapeはフォントサイズをポイントで指定しま す。(180デシポイント = 18.0ポイント)。最後に、100-100という所を、Xサー バのリゾリューションの設定に合わせて変えて下さい。 後は、xfsやXサーバの設定をやり直し、フォントをリロードして、netscape を立ち上げて下さい。これで、netscapeから、作っておいたサイズを標準値 として指定できるようになるはずです。 ------------------------------------------------------------- 4. Tcl/Tk での設定例 (thanks to 田口さん) ------------------------------------------------------------- 日本語化Tcl/Tk自身,およびそれを用いたアプリケーションで,X-TT を用い たTrue Typeフォントを使用する方法を解説します.旧来のX上で開発された Tcl/Tkスクリプトは,貧弱なXのフォント環境を前提としているため,多くの 場合,日本語フォント指定は行われていません.従って,Tkのシステムで定 義されたデフォルトの日本語フォントを変更することで,多くの場合使用で きることが期待できます. ----------------------------------------------- 4.1 Tcl7.6/Tk4.2 の場合(リソース指定による方法) すべてのTk4.2なウィジェットは,リソース kanjiFont で漢字なフォントを 指定できます.従って,Tcl/Tkを使用したアプリケーションのリソースファ イルで, *kanjiFont: -*-gothic-*-r-normal--14-*-*-*-c-*-jisx0208.1983-0 などとすれば,ウィジェットの漢字フォントを指定できます. アプリケーションのウィジェットのパスが分かっているならば, *top.frame.e.kanjiFont: -*-gothic-*-r-normal--14-*-*-*-c-*-jisx0208.1983-0 などと,ウィジェット毎の指定もできるでしょう. 因みにISO-8859-1なフォントのリソースは, *font: -Monotype-Arial-medium-r-normal--14-*-*-*-p-*-iso8859-1 などと指定できます. -------------------------------------------------------- 4.2 Tcl7.6/Tk4.2 の場合(再コンパイルしてしまうよる方法) Tkで使われるデフォルトの漢字フォントは k14 ですが,これはソースコード 中にハードコーディングされてしまってます. これを変更するには,例えば以下のようなパッチを当ててしまうと良いでしょ う. BEGIN>---88--- --- ./unix/tkUnixDefault.h.ORIG Thu May 7 16:46:18 1998 +++ ./unix/tkUnixDefault.h Thu May 7 16:52:35 1998 @@ -55,8 +55,8 @@ #define DEF_BUTTON_DISABLED_FG_MONO "" #define DEF_BUTTON_FG BLACK #ifdef KANJI -#define DEF_BUTTON_FONT "a14" -#define DEF_BUTTON_KANJIFONT "k14" +#define DEF_BUTTON_FONT "-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*" +#define DEF_BUTTON_KANJIFONT "-ricoh-gothic-w5-*-*-*-14-*-*-*-*-*-jisx0208.1983-0" #else #define DEF_BUTTON_FONT "-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*" #endif /* KANJI */ @@ -139,8 +139,8 @@ #define DEF_ENTRY_CURSOR "xterm" #define DEF_ENTRY_EXPORT_SELECTION "1" #ifdef KANJI -#define DEF_ENTRY_FONT "a14" -#define DEF_ENTRY_KANJIFONT "k14" +#define DEF_ENTRY_FONT "-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*" +#define DEF_ENTRY_KANJIFONT "-ricoh-gothic-w5-*-*-*-14-*-*-*-*-*-jisx0208.1983-0" #else #define DEF_ENTRY_FONT "-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*" #endif /* KANJI */ @@ -198,8 +198,8 @@ #define DEF_LISTBOX_CURSOR "" #define DEF_LISTBOX_EXPORT_SELECTION "1" #ifdef KANJI -#define DEF_LISTBOX_FONT "a14" -#define DEF_LISTBOX_KANJIFONT "k14" +#define DEF_LISTBOX_FONT "-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*" +#define DEF_LISTBOX_KANJIFONT "-ricoh-gothic-w5-*-*-*-14-*-*-*-*-*-jisx0208.1983-0" #else #define DEF_LISTBOX_FONT "-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*" #endif /* KANJI */ @@ -265,8 +265,8 @@ #define DEF_MENU_DISABLED_FG_COLOR DISABLED #define DEF_MENU_DISABLED_FG_MONO "" #ifdef KANJI -#define DEF_MENU_FONT "a14" -#define DEF_MENU_KANJIFONT "k14" +#define DEF_MENU_FONT "-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*" +#define DEF_MENU_KANJIFONT "-ricoh-gothic-w5-*-*-*-14-*-*-*-*-*-jisx0208.1983-0" #else #define DEF_MENU_FONT "-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*" #endif /* KANJI */ @@ -297,8 +297,8 @@ #define DEF_MENUBUTTON_DISABLED_FG_COLOR DISABLED #define DEF_MENUBUTTON_DISABLED_FG_MONO "" #ifdef KANJI -#define DEF_MENUBUTTON_FONT "a14" -#define DEF_MENUBUTTON_KANJIFONT "k14" +#define DEF_MENUBUTTON_FONT "-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*" +#define DEF_MENUBUTTON_KANJIFONT "-ricoh-gothic-w5-*-*-*-14-*-*-*-*-*-jisx0208.1983-0" #else #define DEF_MENUBUTTON_FONT "-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*" #endif /* KANJI */ @@ -334,8 +334,8 @@ #define DEF_MESSAGE_CURSOR "" #define DEF_MESSAGE_FG BLACK #ifdef KANJI -#define DEF_MESSAGE_FONT "a14" -#define DEF_MESSAGE_KANJIFONT "k14" +#define DEF_MESSAGE_FONT "-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*" +#define DEF_MESSAGE_KANJIFONT "-ricoh-gothic-w5-*-*-*-14-*-*-*-*-*-jisx0208.1983-0" #else #define DEF_MESSAGE_FONT "-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*" #endif @@ -365,8 +365,8 @@ #define DEF_SCALE_CURSOR "" #define DEF_SCALE_DIGITS "0" #ifdef KANJI -#define DEF_SCALE_FONT "a14" -#define DEF_SCALE_KANJIFONT "k14" +#define DEF_SCALE_FONT "-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*" +#define DEF_SCALE_KANJIFONT "-ricoh-gothic-w5-*-*-*-14-*-*-*-*-*-jisx0208.1983-0" #else #define DEF_SCALE_FONT "-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*" #endif /* KANJI */ @@ -432,8 +432,8 @@ #define DEF_TEXT_FG BLACK #define DEF_TEXT_EXPORT_SELECTION "1" #ifdef KANJI -#define DEF_TEXT_FONT "a14" -#define DEF_TEXT_KANJIFONT "k14" +#define DEF_TEXT_FONT "-adobe-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*" +#define DEF_TEXT_KANJIFONT "-ricoh-gothic-w5-*-*-*-14-*-*-*-*-*-jisx0208.1983-0" #else #define DEF_TEXT_FONT "-*-Courier-Medium-R-Normal--*-120-*-*-*-*-*-*" #endif END>---88--- ----------------------------------------- 4.3 Tcl8.0/Tk8.0 の場合 日本語化Tk8.0 からは,フォントの指定方式がまったく変更されました. ISO-8859-1 なフォントと日本語フォントを組み合わせたコンパウンドフォン トを生成し,それをデフォルトなフォントに指定する,という段階をふみま す.その指定は,リソースで行うのが楽でしょう. まず, *tkDefineFont: \ small {-Monotype-Arial-medium-r-normal--14-*-*-*-p-*-iso8859-1 \ -ricoh-mincho-medium-r-normal--14-*-*-*-c-*-jisx0208.1983-0},\ medium {-Monotype-Arial-medium-r-normal--16-*-*-*-p-*-iso8859-1 \ -ricoh-mincho-medium-r-normal--16-*-*-*-c-*-jisx0208.1983-0} というリソースを定義してみます.これは,small と medium という2つのコ ンパウンドフォントを定義します.そして,そのうちの small をデフォルト のフォントに指定するには, *tkDefaultFont: small のようにリソースを定義します.あるいは,アプリケーションのウィジェッ トの名前が分かっている場合は, *top.frame.e.font: medium などと指定もできるでしょう. あくまでも,アプリケーションにハードコードされていないデフォルトのフォ ントに対して,これらの変更は有効です.スクリプトのソースコード中に .l -font 8x16 -text .... などと直接書き込まれてしまってる場合は, .l -font medium -text .... などと書き換えてやらねばなりません. ---------------------------------------------- 5. 国際化された X Toolkit Client での利用 ---------------------------------------------- 国際化された Xmb/Xwc 関数群を利用したツールキットでは、フォントセット を用いており、外部からリソースで利用するフォントの種別を指定可能になっ ています。 ------------------------- 5.1 X Athena Widget など インターフェースに X Athena Widget の国際化機能を利用している場合は、 Label や TextEdit などに対する FontSet リソースで指定が可能です。 # 他にも同一の名称 "FontSet" を利用しているアプリは多くあることでしょ # うAthena は Xlib の FontSet の機構を素直に利用しており、FontSet リ # ソースに指定されたパラメータはそのまま XCreateFontSet の引数になり # ます。 リソースファイルなどで *FontSet: -*-times-medium-r-normal--16-*-*-*-*-*-*-*, \ -ricoh-mincho-*-*-*-*-*-*-*-*-c-*-jisx0208.1983-0, \ -*-*-*-r-*--16-*-*-*-*-*-*-* などと指定すれば、文字集合別に使用するフォントを指定可能です。 FontSet の名前の検索マッチングは、“,”でくぎられたフォントのリストか ら順次検索し、最初に一致したものを用いることになっています。文字集合 別に細かく指定したい場合は、文字集合の名前を含めたものを先に記述する と良いでしょう。 アプリ別に細かく変更したい場合は、リソースの名称の頭にアプリケーショ ンクラス名を入れておきます。 例: ! 明朝体を使用 XCalender*FontSet: -*-mincho-medium-r-normal--16-* ! まるもじを使用 XMascot*FontSet: -*-marumoji-medium-r-normal--16-* # アプリケーションクラス名は、X の作法に正しく従っているアプリケーショ # ンならトップウィンドウの WM_CLASS プロパティに設定されています。 # xprop コマンドで確認できます。(WM_CLASS の二つ目のパラメータ) ----------- 5.2 Motif インターフェースに 国際化した Motif を利用したアプリケーションの場合 は、リソース FontList で同様にフォントセットの指定が可能です。 # 例えば Netscape のインターフェース部分のフォントの指定はこれになり # ます。 Motif の FontList では、複数のフォントセットを併記可能で、記述方法が Athena Widget と少し異なります。 例: Netscape*fontList:\ -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-1;\ -*-marumoji-medium-*-*-*-16-*-*-*-*-*-jisx0208.1983-*;\ -*-marumoji-medium-*-*-*-16-*-*-*-*-*-jisx0201.1976-*;\ -*-marumoji-medium-*-*-*-16-*-*-*-*-*-jisx0212.1990-*: フォント指定ごとに“;”で区切ります。終端には“:”をおきます。複数の フォントセットを併用するアプリでは、“:”のあとにタグ名をいれ、それら を“,”で区切って併記することになります。 例: hoge*fontList:\ -*-times-medium-r-*-*-*-120-*-*-*-*-iso8859-1;\ -*-mincho-medium-*-*-*-16-*-*-*-*-*-jisx0208.1983-*;\ -*-mincho-medium-*-*-*-16-*-*-*-*-*-jisx0201.1976-*:normal,\ -*-helvetica-medium-r-*-*-*-120-*-*-*-*-iso8859-1;\ -*-gothic-medium-*-*-*-16-*-*-*-*-*-jisx0208.1983-*;\ -*-gothic-medium-*-*-*-16-*-*-*-*-*-jisx0201.1976-*:strong なお、このタグを利用するかどうかはアプリケーション依存です。 ---------------------------------------- 5.3 Xfig での使用例 (thanks to 田口さん) XFig の描画部分は、Xlib の国際化の機能により、国際化されています。 Athena Widget と同様、FontSetのリソース指定により使用するフォント を指定できます。フォントの種類によってリソース名がちがいます 例: (ricoh-moncho なフォントでの例) Fig*normalFontSet: -*-times-medium-r-normal--16-*-*-*-*-*-*-*, \ -*-mincho-*-*-*-*-*-*-*-*-c-*-jisx0208.1983-0, \ -*-*-*-r-*--16-*-*-*-*-*-*-* Fig*boldFontSet: -*-times-bold-r-normal--16-*-*-*-*-*-*-*, \ -*-gothic-*-*-*-*-*-*-*-*-c-*-jisx0208.1983-0, \ -*-*-*-r-*--16-*-*-*-*-*-*-* Fig*fixedFontSet: -*-times-medium-r-normal--16-*-*-*-*-*-*-*, \ -*-mincho-*-*-*-*-*-*-*-*-c-*-jisx0208.1983-0, \ *--16-* pixel size を指定すると挙動がおかしいそうです -------------------------------------------------------------- 6. Tgif 3.0 (thanks to ずけらんさん) -------------------------------------------------------------- Tgif のフォント指定については、附属の JAPANESE というドキュメントに詳 細なことが書いてあるのでそれを参照してください。 なお、Tgif の印刷用の出力は、PostScript でおこなわれることになってお り、文字列も PS での出力になります。この時、画面に指定したフォントと 出力されるフォントのメトリックは当然違いますので、(同じフォントがたま たま準備できていれば同じになりますが...)画面上でのイメージと、印刷出 力は違ったものになってしまいます。そのことに留意して利用して下さい。 # 余談: (長し..) # なおこの問題は特に TrueType のみでのことではありません。いままでの # ビットマップフォントでも当然発生していました。ただし、日本語で使用 # する文字の大半は「正方形」なのであまりずれまくるといったことがない # だけのことです。 # この印刷と画面で一致したものをだせないという問題は X 全体の問題でも # あり、結局本格的な印刷を行うアプリケーションは、フォントのハンドリ # ングを全部自分でにぎって、「画像」として出力する、またはあらゆる場 # 面で PS フォントを使ってメトリックの同一を保証する、いったことをし # てます。各種 TeX 関連アプリや X Display PostScript Extention など。 # 現在開発が続いている GYVE # (http://www.maru.cs.ritsumei.ac.jp/~sanchan/gyve/)というドローイン # グソフトでは、Display PostScript の使用が前提になってるようですね。 # 対応してない X Server では Display GhostScript (参: # http://www.gnustep.org)の補助を要します # なお MS-Windows においてはプリンタと画面を同等にあつかうインターフェー # スがちゃんと存在します。通常のアプリはこれを使うようにすれば、おお # むねどんなプリンタでも画面と同様の出力をすることが期待できます。ま # あ本当にきれいな印刷をだすためには結局プリンタをフルに操作する必要 # はあるんですけどね。 # PostScript プリンタはそういう点で一つの「標準」プリンタとして確立し # てるわけですな # X Print Server (Xprt)がこのあたりの一つの解をねらったものかとは思う # のですが、詳細はわかりません(^^;; 設定例 ------------------------------------------------------------ Tgif*NihongoFonts: \ mincho-medium-r-normal, jisx0208.1983-*, \ Ryumin-Light-EUC-H, Ryumin, \ H, false, all \n\ gothic-medium-r-normal, jisx0208.1983-*, \ GothicBBB-Medium-EUC-H, Gothic, \ H, true, all \n\ fixed-medium-r-normal, jisx0208.1983-*, \ Ryumin-Light-EUC-V, Ryumin-V, \ V, false, 14 \n\ fixed-medium-r-normal, jisx0208.1983-*, \ GothicBBB-Medium-EUC-V, Gothic-V, \ V, true, 14 ------------------------------------------------------------ メニューの選択肢が追加されます。 -------------------------------------------------------------- 7. GTK -------------------------------------------------------------- X 用のオリジナルツールキットセットの一つであるGTK (GIMP Toolkit) (http://www.gtk.org/ ) は国際化されており、適切にフォントセットを指定す ることで、ラベルやダイアログなどで日本語もあつかうことが可能になって います。また XIM による入力も可能なようです。 また、TextWidget においてもパッチが存在し、これをあてればこれでも日本 語他を利用可能です (Gtk TextWidget 日本語パッチ http://www.valley.ne.jp/~tommy/gtk/ ) GTK は一般的な X アプリケーションの利用するリソースの機構は全く使用し ていないため、そちらによる指定はできません。専用の gtkrc での指定を行 います。 例: ~/.gtkrc などの参照されるリソース定義ファイルに次のような記述をいれ ます。なお、GTK アプリによって参照するリソースファイルは異なるような のでそれぞれ別個に指定してください。 ---------------------------------------------------------------------------- style "default" { fontset = "-*-mincho-medium-r-normal--*-120-*-*-*-*-jisx0208.1983-0,*--14-*" } widget_class "*" style "default" ---------------------------------------------------------------------------- このあたりの情報を一括でまとめたページは....みあたらないですね(^^; Japanese GTK-ML あたりを手がかりにするとよいかもしれません http://www.hypercore.co.jp/lists/gtk/ ------------------------------------------------------------- 8. GIMP での使用例 ------------------------------------------------------------- GIMP (GNU Image Manupulataion Program) は X Window System で動作する、 フォトレタッチ、画像の修正、作成のためのソフトウェアです。非常に多機 能で、レイヤなど強力な編集機能をそなえたアプリケーションです。 GIMP がインターフェースとして用いている GTK は国際化されているのです が、 GIMP の文字描画部分は特に FontSet への対応は行われていません。 ただし、Fontの描画自体は、8bit/16bit 両方ともにきちんと描画されるよう になっています。つまり、JIS X 0208 など、16bit なフォントを指定した場 合、それに適合した 16bit のコードを入力してやれば、それはそれで正しく フォントを表示させることができるわけです。 超手抜き実際の例: テキスト入力モードにして、適当なフォントをダイアログから選択する。 EUC でファイル(JISx0208 のみ)をつくっておいて、それを次のようなフィ ルタにかけて表示させ、その出力結果を入力ダイアログにcopy and paste で入力する #include main() { int c; while ((c = getchar()) != EOF) putchar(c & 0x7f); } 何も表示されないようにみえるが、ちゃんと入力されている。OK をおすと、 ちゃんと文字が入力されることになる。 また、GIMP の TextTool を FontSet 化し、kinput2 で日本語が入力できる ように改造するパッチが存在します。またメニューなどを日本語化するパッ チもあります。 The GIMP User Manual 日本語版 V1.0.0 http://pcv.awa.tohoku.ac.jp/ の「GIMP[ja] の作り方」を参照してください。 おまけ: GIMP の TextTool のダイアログは、単一のフォントの使用を想定してつくられて おり、このパッチ (text.patch.gz) では Font から FontSet への強引な置換を かけている関係上、ダイアログで日本語の想定通りのフォントを出すのは むずかしいでしょう。 ちなみに FontSet 指定が次のようになっています "-foundry-family-weight-slant-set_width-*-pixelsize-pointsize-75-75-spacing-*-registry-encoding,-*-*-*-*-set_width-*-pixel_size-point_size-75-75-spacing-*-*-*,*" # なお、sprintfでダイアログでの指定がうめこまれるようになっています 通常この2つ目の指定で日本語フォントの選択がおこなわれるようになって おり、フォントの名称指定 (foundary + family) が存在しない、というこ とで、一番最初にマッチする日本語フォント(xlsfonts で最初にでてくるも の)のみに指定が限定されることになります。 GIMP の TextTool のダイアログでは、Netscape のように文字集合別にフォ ント名称を指定できるようにはなっていないため、こういうことになってし まうわけです。 TextTool のダイアログを文字集合別指定が可能なように改造してしまうと いうのが正統なのですが、実はもっと安易な解決方法があります。 iso8859-1/JISX0208/JISX0201 など使用する locale のフォントセットで使 用される文字集合全てで、同名(Foundry と Familyname が同じ)フォントを 準備し、ダイアログの Encoding 指定部分は "*" のままにしておきます。 すると、Foundry と Familyname が同じ jisx0208 のフォントがちゃんと選 択されることになります。 # なお、この文書の 1.1 では同名をつけるような方向で解説しているので、 # それに従った設定をしていれば、自然にこうなっているはずです。 この方法の場合、文字集合でフォントの種別をいろいろとりまぜて使うため にはそれだけフォントの名称を定義する必要があります。これが嫌な人は、 がんばってダイアログそのものをハックしてください :p結果は公開しませ う。みなさんが幸せになります(^^; ------------------------------ 付録A フォント集について ------------------------------ 最近はフォントへの需要も高いようで、Windows や Machintosh むけに安価 に多くのフォント集が販売されています。UNIX からの利用はライセンス的に は特に問題はないですが、OS が異なるため使用の保証の対象外になるでしょ う。 また、通常一台のマシンでの利用が前提になっているはずです。FontServer を利用しての複数台での利用は複数台でのライセンス契約が必要になります ので、きちんと問い合わせるようにしましょう 国内主要フォントベンダー ○ Dynalab Japan Limited http://www.dynalab.co.jp/ ○ RICOH Co. ltd. / RICOH FONTS http://font.ricoh.co.jp/ フリー/シェアウェアなフォント ○ X-TT project presents free Japanese fonts http://www.linux.or.jp/~ishikawa/linux/X-TT/ 遂にフリーな日本語 TrueType Font を作りました。 フリーなベクトルフォントである渡辺明朝、和田研ゴシックから 変換したものです。 ○ Microsoft Typography http://www.microsoft.com/truetype/default.asp 欧文用のフリーな TrueType Font 群が配布されています。 ○ FontFace4550(R) GW3 Symon 彩文 [さいもん] (情報 Thanks to BERO 様) http://www.logix-press.com/fontface4550/ フリーウェアバージョンがあるようです。 ※全ての漢字はそろってないようです。 ○ NACSIS-UCS フォント http://www.cat.op.nacsis.ac.jp/PUB/font/ucs-font.html 学術情報センターによる UCS フォントです。 明朝体で CJK 漢字以外にも多数の文字、合計3万5千文字収録 (おそらく現行入手可能な Unicode Font で最多?) で、特に利用制限はありません 98/08/30 現在、利用申請方法についてはまだ準備中のようです その他 URI TrueType Resource http://members.aol.com/JR9er/ ACID Fonts http://www.acidcool.com/ Vance's Font Page http://www.vance.nis.sll.se/ i/us http://dingbats.i-us.com/ The Font Pool http://www.fontpool.com/ また、TrueType ではなく、Type1 Font ですが、 FreeFonts および ShareFonts という Font集があります。 (Master Site ftp://ftp.gimp.org/pub/gimp/fonts/) $Id: EXAMPLES.mix,v 1.3 1999/02/14 15:13:28 tshiozak Exp $ # end of file