mp.pro.ps
mp.common.ps
mp.pro.alt.ps
mp.pro.fp.ps
mp.pro.ps
mp.pro.ts.ps
mp.pro.altl.ps
mp.pro.ff.ps
mp.pro.l.ps
mp.pro.tm.ps
上記のファイルは印刷レイアウトプロローグファイルで、mp.common.ps は他のプロローグファイルの前に挿入される共通プロローグファイルです。
共通プロローグファイルである mp.common.ps は、/usr/lib/lp/locale/C/mp/ ディレクトリにあり、それには、StandardEncoding から ISOLatin1Encoding にフォントを再度符号化する PostScript ルーチンが含まれています。reencodeISO ルーチンが印刷レイアウトプロローグファイルから呼び出され、フォントのエンコーディングが変更されます。通常、このプロローグファイルには、カスタマイズは必要ありません。ユーザーが自分のプロローグファイルを作成している場合は、修正されたプロローグファイルがあるディレクトリを指すように環境変数 MP_PROLOGUE を設定します。
印刷レイアウトプロローグファイルである mp.*.ps ファイルには、印刷時にページレイアウトを制御するルーチンが入っています。これらのプロローグファイルは印刷ページのヘッダーとフッターで使用するユーザー名、印刷日、ページ番号に加えて、他の情報も設定できます。たとえば、有効な印刷領域のサイズや、使用する用紙の縦横の向きが指定できます。
一連の標準的な関数については、プロローグファイルごとに定義する必要があります。これらの関数は、新しい印刷ページの開始、印刷ページの終了、あるいは新しいカラムの終了時に呼び出されます。これらの関数の実装内容によって、印刷出力の印刷属性が定義されます。
次の PostScript 変数は mp(1) バイナリによって実行時に定義されます。すべての印刷レイアウトファイルはこれらの変数を使用して、user name、subject、print time などの動的な情報を印刷できます。変数から取得したこの情報は、通常印刷ページのヘッダーやフッターに記載されます。
システムの passwd ファイルから取得される、mp を実行しているユーザーの名前
印刷する記事の種類の名前を保持するため使用される変数。この変数の値には、次のものがあります。
「Listing for」―入力がテキストファイルである時
「Mail for」―入力がメールファイルである時
「Article from」―入力がニュースグループの記事である時
メールやニュースのヘッダーから引用された主題。「-s」オプションを使用すると、メールやニュースのファイルや標準テキストファイルにも主題が強制できます。
ヘッダーやフッターに記載される印刷時刻。この情報は localtime() 関数から取得されます。
次は、印刷レイアウトプロローグファイルに実装されている関数です。これらの関数にはすべて副関数が使用できます。
使用法 : page_number endpage
印刷ページの下端に達した時に呼び出されます。この関数はページのグラフィックのコンテキストを復元し、showpage を発行します。プロローグファイルによっては、ヘッダーとフッターの情報はカラムごとではなくページごとでしか表示されません。ヘッダーとフッターでグレースケールの模様を表示する副関数を呼び出すように、この関数を実装することも可能です。
使用法 : page_number newpage
新しいページの開始時に実行されるルーチンやコマンド。ルーチンの機能には、ランドスケープモードの設定、印刷グラフィックコンテキストの保存、ページ座標の変換などがあります。
使用法 : page_number col_number endcol
ヘッダーやフッター情報の表示。新しい印刷位置への移動など。
新規に印刷レイアウトプロローグファイルを追加するときは、印刷レイアウトプロローグファイル内で次の変数を明示的に定義する必要があります。
NumCols |
<1 印刷ページのカラムの数> |
PrintWidth |
<印刷領域のインチでの幅> |
PrintHeight |
<印刷領域のインチでの高さ> |
/NumCols 2 def
/PrintWidth 6 def
/PrintHeight 9 def
ロケール依存プロローグファイルは /usr/openwin/lib/locale/$LANG/print/prolog.ps で、通常は PostScript ファイルです。このファイルには、PostScript プロローグ情報といくつかの追加の PostScript ルーチンを定義する組み込み Type1 フォントを入れることができます。プロローグファイルの主な目的の 1 つに、前もって mp(1) で定義され使用される一連のフォント名に対し、別名でロケールのフォントを設定することがあります。
/usr/bin/mp が prolog.ps でも動作するよう、このファイルに対するサポートが提供されています。このファイルが存在するときは優先され、下位互換性を維持するために mp.conf ファイルが走査されることはありません。
以降の mp.conf ファイルに関する節は、『OpenWindows Localization Guide』から引用したものです。
prolog.ps ファイルの目的は、非汎用フォントを設定することです。アプリケーションは、前もって定義されたこれらの PostScript フォント名を使用して印刷します。プロローグファイルは、Desk Set Calendar マネージャと mp に対し、少なくとも次のフォント名を定義しなくてはなりません。
LC_Times-Roman
LC_Times-Bold
LC_Helvetica
LC_Helvetica-Bold
LC_Courier
LC_Helvetica-BoldOblique
LC_Times-Italic
これらのフォントは、次の使用例でローカル (地域) の文字セットを印刷できなければなりません。
100 100 moveto
/LC_Times-Roman findfont 24 scale font setfont
(ロケールのテキスト文字列) show
ローカライゼーションキットには、日本の環境向けに、prolog.ps のサンプルが用意されています。また、このファイルは/usr/openwin/lib/locale/ja/print/ ディレクトリにもあります。
たとえば次の例では、LC_Base-Font という複合フォントが定義されます。
% (Foo-Fine) makecodeset12 (Base-Font) makeEUCfont %
LC_Base-Font は Foo-Fine と Base-Font というベースフォントの複合フォントです。Foo-Fine は、ローカルのキャラクタセットがあるフォントです。フォントの追加や変更を行うために、PostScript に精通している必要はありません。
実際の例を調べてみることが、学習への早道といえます。prolog.ps の例では、makecodeset12 と makeEUCfont の 2 つのルーチンを書く必要があります。Makecodeset12 がローカルフォントのエンコーディング情報を設定します。このルーチンはロケールによって異なる場合があります。MakeEUCfont はベースフォントとローカルフォントを組み合わせて、複合フォントを形成します。プロローグファイルの作成者は makecodeset12 と makeEUCfont を書くために、PostScript に精通している必要があります。
prolog.ps ファイルに対するサポートは、下位互換性を維持する目的でのみ継続されています。ロケールで印刷するために新たに prolog.ps ファイルの作成はせず、代わりに mp.conf を使用します。
パスは次のとおりです。
/usr/openwin/lib/locale/$LANG/print/prolog.ps