Solaris 7 の UTF-8 ロケールでは、複数のフォントを組み合わせて各コードポイントのグリフを表示させています。このため、1つのコードポイントに対して複数のフォントのグリフが対応する場合があります。ja_JP.UTF-8 では、以下の表の優先順位でフォントを使用するようにインプリメントされています。
キャラクタセット |
フォント |
---|---|
ISO8859-1:GL(ASCII) |
JISX0201.1976-0 |
ISO8859-1:GR |
ISO8859-1 |
ISO8859-5:GR |
ISO8859-5 |
ISO8859-7:GR |
ISO8859-7 |
ISO8859-2:GR |
ISO8859-2 |
ISO8859-4:GR |
ISO8859-4 |
ISO8859-9:GR |
ISO8859-9 |
ISO8859-15:GR |
ISO8859-15 |
JISX0208.1983-0 |
JISX0208.1983-0 |
JISX0201.1976-0:GR |
JISX0201.1976-0 |
JISX0212.1990-0:GR |
JISX0212.1990-0 |
KSC5601.1992-3:GLGR |
KSC5601.1992-3 |
GB2312.1980-0:GR |
GB2312.1980-0 |
BIG5-1:GLGR |
BIG5-1 |
TIS620.2533-0:GR |
TIS620.2533-0 |
ISO8859-6:GR |
ISO8859-6 |
ISO8859-8:GR |
ISO8859-8 |
たとえば、U+0410(Cyrillic Capital Letter A)は、ISO8859-5 と JISX0208.1983 など複数のフォントにグリフが存在しますが、上のルールから ISO8859-5 のフォントが実際に使用されます。また、CKJ Unified Ideographs エリアにある漢字で使用されるフォントは、JISX0208.1983 -> JISX0212.1990 -> KSC5601.1992-3 -> GB2312.1980 -> BIG5-1 の優先順位でフォントが使用されます。
なお、現時点では、UTF-8 のコードポイントと使用するフォントの情報はシステム側でハードコードされており、ユーザーがカスタマイズすることはできません。
ASCII(Basic Latin)領域(U+21 - U+7E)では、ISO8859-1 フォントではなく、JISX0201.1976 フォントが使用されます。これは、ja_JP.UTF-8 ロケールでもっとも使用頻度の高いと思われる、ASCII と漢字の組み合わせを表示した場合、フォントのバランスが悪くなるのを避けるためです。ただしこのために、逆斜線 (U+5C) に円記号のグリフが使われるという問題があります。この問題を避ける場合は、次の設定を行なってください。
(設定方法)
/usr/openwin/lib/locale/ja_JP.UTF-8/XLC_LOCALE の以下の次の行 # fs0 class (7 bit ASCII) fs0 { charset ISO8859-1:GL # font ISO8859-1:GL; JISX0201.1976-0:GL font JISX0201.1976-0:GL; ISO8859-1:GL } |
を以下のように変えてください (5 行目をコメントアウトし、4 行目のコメントを外します)。
# fs0 class (7 bit ASCII) fs0 { charset ISO8859-1:GL font ISO8859-1:GL; JISX0201.1976-0:GL # font JISX0201.1976-0:GL; ISO8859-1:GL } |
設定が終わったら、Solaris CDE セッションから一度ログアウトし、再度ログインしてください。
Solaris CDE セッションでは通常起動時にアプリケーションが使用するデフォルトフォントのリソースを以下のように設定します。
*DtEditor*textFontList: -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-*: *Font: -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-* *FontList: -dt-interface system-medium-r-normal-m*-*-*-*-*-*-*-*-*: *FontSet: -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-* *XmText*FontList: -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-*: *XmTextField*FontList: -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-*: *buttonFontList: -dt-interface system-medium-r-normal-m*-*-*-*-*-*-*-*-*: *labelFontList: -dt-interface system-medium-r-normal-m*-*-*-*-*-*-*-*-*: *systemFont: -dt-interface system-medium-r-normal-m*-*-*-*-*-*-*-*-*: *textFontList: -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-*: *userFont: -dt-interface user-medium-r-normal-m*-*-*-*-*-*-*-*-*: |
ただし、ja_JP.UTF-8 ロケールを含む UTF-8 ロケールでは、端末エミュレータなど、特定の比率をもった固定幅フォントを要求するアプリケーションで表示が崩れるという問題を回避するために、CDE で使用するデフォルトフォントを次のように設定しています。
*DtEditor*textFontList: -dt-interface user-medium-r-normal-m*utf-*-*-*-*-*-*-*-*: *Font: -dt-interface user-medium-r-normal-m*utf-*-*-*-*-*-*-*-* *FontList: -dt-interface system-medium-r-normal-m*utf-*-*-*-*-*-*-*-*: *FontSet: -dt-interface user-medium-r-normal-m*utf-*-*-*-*-*-*-*-* *XmText*FontList: -dt-interface user-medium-r-normal-m*utf-*-*-*-*-*-*-*-*: *XmTextField*FontList: -dt-interface user-medium-r-normal-m*utf-*-*-*-*-*-*-*-*: *buttonFontList: -dt-interface system-medium-r-normal-m*utf-*-*-*-*-*-*-*-*: *labelFontList: -dt-interface system-medium-r-normal-m*utf-*-*-*-*-*-*-*-*: *systemFont: -dt-interface system-medium-r-normal-m*utf-*-*-*-*-*-*-*-*: *textFontList: -dt-interface user-medium-r-normal-m*utf-*-*-*-*-*-*-*-*: *userFont: - dt-interface user-medium-r-normal-m*utf-*-*-*-*-*-*-*-*: |
デフォルトの設定で Solaris CDE を使用している場合は問題ありませんが、スタイル・マネージャを使用してフォントのサイズを変更した後にロケールを変更した場合、意図しないフォントが使用され、端末エミュレータなどのアプリケーションで表示がおかしくなる場合があります。
このような場合には、スタイル・マネージャのフォントの設定ダイアログでサイズを選択し、了解ボタンを押した後に CDE セッションから一度ログアウトし、再度ログインしてください。このような問題は、ja/ja_JP.PCK ロケールから ja_JP.UTF-8 ロケールへ移行した場合および ja_JP.UTF-8 ロケールから ja/ja_JP.PCK ロケールへ移行した場合の双方で起こり得ます。
DPS 上でのユーザー定義文字のアウトラインフォントを指定するための /usr/openwin/lib/locale/ja/OWfontpath へのフォントパスの追加では、存在するディレクトリを指定してください。正しく指定されていない場合は、dtlogin で文字が表示できなくなります。
注意事項および制限事項
ユーザー定義文字を利用した文章などを電子メールで送信する場合、受信側にも同様なユーザー定義文字環境がないと、表示されなかったり、文字化けを起こしたり、別の文字として表示されたりする問題が発生します。送信の際には、このことを意識して送信する必要があります。外部の宛先に電子メールを送信する場合は、ユーザー定義文字の使用を避けてください。
ユーザー定義文字の編集では、複数のフォントファイルを変更します。この為作成したユーザー定義文字フォントファイルを直接読み込んで編集すると、各フォント間の整合性が取れなくなります。
四角形・多角形・円では、内部を塗りつぶして作成します。白抜きの文字を作成する場合は以下の例を参考にしてください。
例: 白丸を作成する
ユーザー定義文字を Type1 形式で保存するフォントファイルにはヒント情報が登録されません。このため解像度の低いデバイス (ディスプレイなど) 上での表示や、印刷時のサイズにより以下の問題が発生します。これは、アウトラインをビットマップにマップする時に発生する丸めの影響です。
離れている点が同じ点として表示・印刷されることがあります。
一部が表示・印刷されないことがあります。
回避方法: アウトラインモードで描画位置を離して描画するか、ビットマップモードで編集してください。
ビットマップモードで編集すると、アウトラインはビットマップから取り出します。このためアウトラインの幅が太くなります。
ビットマップモードで編集する場合のサイズ変更は、一覧表の表示メニューから指定できます。また、生成するアウトラインは、編集したビットマップを元にアウトラインを生成します。
ビットマップモードで移動またはコピーを行うと、指定した領域の前景(黒い部分) だけでなく、背景 (白い部分) も移動またはコピーします。
一般の Type1 フォントの編集はサポートしていません。
BDF/PCF フォントを読み込んだ場合、一覧表の印刷はサポートしていません。
ユーザー定義文字を登録する場合の問題点
アウトラインモードでの編集では、キャンパスの有効範囲を越えて文字が描画できてしまいます (バグ ID: 4036104)。
回避方法: キャンパスの有効範囲内に描画してください。
共通の問題点
編集ウインドウ上の次ボタンまたは前ボタンでは、ページを越えた指定ができません (バグ ID: 1266829)。
回避方法: 一覧表上でページをめくり、登録したいコードポイントをカーソルで指定してください。
ビットマップからアウトラインが正しく生成できない場合があります (バグ ID: 4007396)。
回避方法: 一覧表の表示サイズを変更可能な場合は、最大のサイズを利用してください。
コードポイントの表示を UTF-8 にした場合、グリフとコードポイントは一致していません(バグ ID: 4126792)。
フォント管理 (sdtfontadm) を使用して CID/Type1 フォントをインストールする際には次の点に注意してください。
システムに SUNWxwcsl パッケージがインストールされていることを確認してください。次のようにして確認できます。
sun% pkginfo SUNWxwcsl |
インストールされていない場合は pkgadd コマンドまたは admintool を使用して、 Solaris CD からインストールしてください。
フォント管理 (sdtfontadm) のオプションメニューから「フォントパスの変更...」を選択して /usr/openwin/lib/X11/fonts/CSL を追加してください。変更したあと、ウィンドウシステムを再起動します。
フォント管理 (sdtfontadm) で CID フォントをインストールした場合、XLFD フォント名のレジストリフィールドが正しく登録されません。日本語フォントをインストールした場合には、インストールディレクトリの fonts.dir ファイルを編集し、jisx0201.1976-0、jisx0208.1983-0、jisx0212.1990-0 (補助漢字を含む場合) のそれぞれのレジストリを含むようにしてください。
編集例:
HeiseiKakuGo-W5.cid -unknown-HeiseiKakuGo W5---normal--0-0- ¥ 0-0-p-0-jisx0201.1976-0 HeiseiKakuGo-W5.cid -unknown-HeiseiKakuGo W5---normal--0-0-0-0- ¥ p-0-jisx0209.1983-0 HeiseiKakuGo-W5.cid -unknown-HeiseiKakuGo W5---normal--0-0-0-0-p ¥ -0-jisx0212.1990-0 |
フォント管理 (sdtfontadm) を使用して TrueType フォントをインストールした場合、UPR ファイルが作成されないため DPS でフォントを表示できません。DPS でフォントをインストールする場合には /usr/openwin/lib/locale/ja/X11/fonts/TT/fonts.upr を参照して、以下のリストのように UPR ファイルを作成してください。なお、<FONTNAME> には TrueType フォント名を入力してください。
PS-Resources-1.0 FontOutline . //<font install directory> FontOutline <FONTNAME>-78-EUC-H=<FONTNAME>.ttf <FONTNAME>-78-EUC-V=<FONTNAME>.ttf <FONTNAME>-78-H=<FONTNAME>.ttf <FONTNAME>-78-RKSJ-H=<FONTNAME>.ttf <FONTNAME>-78-RKSJ-V=<FONTNAME>.ttf <FONTNAME>-78-V=<FONTNAME>.ttf <FONTNAME>-78ms-RKSJ-H=<FONTNAME>.ttf <FONTNAME>-78ms-RKSJ-V=<FONTNAME>.ttf <FONTNAME>-83pv-RKSJ-H=<FONTNAME>.ttf <FONTNAME>-90ms-RKSJ-H=<FONTNAME>.ttf <FONTNAME>-90ms-RKSJ-V=<FONTNAME>.ttf <FONTNAME>-90pv-RKSJ-H=<FONTNAME>.ttf <FONTNAME>-90pv-RKSJ-V=<FONTNAME>.ttf <FONTNAME>-Add-H=<FONTNAME>.ttf <FONTNAME>-Add-RKSJ-H=<FONTNAME>.ttf <FONTNAME>-Add-RKSJ-V=<FONTNAME>.ttf <FONTNAME>-Add-V=<FONTNAME>.ttf <FONTNAME>-Adobe-Japan1-0=<FONTNAME>.ttf <FONTNAME>-Adobe-Japan1-1=<FONTNAME>.ttf <FONTNAME>-Adobe-Japan1-2=<FONTNAME>.ttf <FONTNAME>-EUC-H=<FONTNAME>.ttf <FONTNAME>-EUC-V=<FONTNAME>.ttf <FONTNAME>-Ext-H=<FONTNAME>.ttf <FONTNAME>-Ext-RKSJ-H=<FONTNAME>.ttf <FONTNAME>-Ext-RKSJ-V=<FONTNAME>.ttf <FONTNAME>-Ext-V=<FONTNAME>.ttf <FONTNAME>-H=<FONTNAME>.ttf <FONTNAME>-NWP-H=<FONTNAME>.ttf <FONTNAME>-NWP-V=<FONTNAME>.ttf <FONTNAME>-RKSJ-H=<FONTNAME>.ttf <FONTNAME>-RKSJ-V=<FONTNAME>.ttf <FONTNAME>-V=<FONTNAME>.ttf . |
CID フォントを Solaris にインストールして X のフォントとして利用した場合、グリフの大きさが正しくない場合があります。期待した大きさよりも小さく表示されます。
MS-Windows 3.1 用などの TrueType フォントのうち PCK で内部エンコードされたフォント (SpecificID が 2) を Solaris にインストールした場合に、以下の問題が起こります。
X のアウトラインフォントで JIS X 212 を表示しようとした場合、X サーバーがコアダンプすることがある
Solaris のリコー HG ゴシック体 B、HG 明朝体 L などの UNICODE でエンコーディングされた (SpecificID が 1) TrueType フォントと同時に使用すると、コードポイントが正しく表示されない場合がある