R,
I,
B,
BI と呼ばれるスタイルがフォント位置 1 から 4 までにマウントされます。
フォントはファミリ
A,
BM,
C,
H,
HN,
N,
P,
T にまとめられ、これらのスタイル中にメンバを持ちます:
AR |
AvantGarde-Book
|
AI |
AvantGarde-BookOblique
|
AB |
AvantGarde-Demi
|
ABI |
AvantGarde-DemiOblique
|
BMR |
Bookman-Light
|
BMI |
Bookman-LightItalic
|
BMB |
Bookman-Demi
|
BMBI |
Bookman-DemiItalic
|
CR |
Courier
|
CI |
Courier-Oblique
|
CB |
Courier-Bold
|
CBI |
Courier-BoldOblique
|
HR |
Helvetica
|
HI |
Helvetica-Oblique
|
HB |
Helvetica-Bold
|
HBI |
Helvetica-BoldOblique
|
HNR |
Helvetica-Narrow
|
HNI |
Helvetica-Narrow-Oblique
|
HNB |
Helvetica-Narrow-Bold
|
HNBI |
Helvetica-Narrow-BoldOblique
|
NR |
NewCenturySchlbk-Roman
|
NI |
NewCenturySchlbk-Italic
|
NB |
NewCenturySchlbk-Bold
|
NBI |
NewCenturySchlbk-BoldItalic
|
PR |
Palatino-Roman
|
PI |
Palatino-Italic
|
PB |
Palatino-Bold
|
PBI |
Palatino-BoldItalic
|
TR |
Times-Roman
|
TI |
Times-Italic
|
TB |
Times-Bold
|
TBI |
Times-BoldItalic
|
ファミリのメンバではない以下のフォントもあります:
ZCMI |
ZapfChancery-MediumItalic
|
PS Symbol フォント用の
S および PS Symbol から取られた斜体小文字のギリシャ文字を含む
SS と呼ばれる特別なフォントも有ります。
Zapf Dingbats は
ZD として、逆バージョンの ZapfDingbats (シンボルが逆向き) は
ZDR として使用可能です;
これらのフォントのほとんどの文字は名前が無いので、
[rs]N. にてアクセスせねばなりません。
[rs]m と
[rs]M のデフォルト色は黒です。
`rgb' 色空間中で定義される色には
setrgbcolor を使用し、`cmy' と `cmyk' には
setcmykcolor を、`gray' には
setgray を使用します。
setcmykcolor は PostScript LanguageLevel 2 コマンドであり、古いプリンタでは使えません。
grops は
[rs]X エスケープシーケンスにより生成された様々な X コマンドを理解します;
grops は
ps: タグから始まるコマンドのみを翻訳します:
[rs]X'ps: exec code' |
|
code 中の任意の PostScript コマンドを実行します。
code 実行前に PostScript の現在位置は
[rs]X の位置に設定されます。
原点はページの左上になり、y 座標はページを下ると増加します。
プロシージャ
u は、groff の単位を有効な座標系のものに変更するように定義されます。
例えば、
|
amp;.nr x 1i
[rs]X'ps: exec [rs]nx u 0 rlineto stroke'
|
|
|
は 1 インチ長の水平線を描画します。
code はグラフィックステートを変更し得ますが、ページの終端までしか継続しません。
def と
mdef により指定される定義を含む辞書は、辞書スタックの頭に有るでしょう。
あなたのコードがこの辞書に定義を付加するなら、
[rs]X'ps mdef n'.
を使用して、そのための空間を割り当てる必要が有ります。
定義はページの終りまでしか継続しません。
[rs]Y エスケープシーケンスをマクロを名付ける引数と共に使うと、
code を複数行に渡らせることが出来ます。
例えば、
|
amp;.nr x 1i
amp;.de y
amp;ps: exec
amp;[rs]nx u 0 rlineto
amp;stroke
amp;..
amp;[rs]Yy
|
は 1 インチ長の水平線を描画する別の方法です。
|
[rs]X'ps: file name' |
|
exec コマンドと同様ですが、コードをファイル
name から読みます。
|
[rs]X'ps: def code' |
|
code の PostScript 定義をプロログ部に置きます。
[rs]X コマンドに対し最大 1 定義までです。
長い定義は複数の
[rs]X コマンドに渡り分割できます;
全ての
code 引数は、改行で区切られ、単純に連結されます。
定義は、
exec コマンド実行時に辞書スタックに自動的にプッシュされる辞書に置かれます。
\Y エスケープシーケンスをマクロを名付ける引数と共に使うと、
code を複数行に渡らせることが出来ます。
|
[rs]X'ps: mdef n code' |
|
def と同様ですが、
code は
n 個まで定義を保持し得ます。
grops は何個の定義を
code が含むのかを知る必要が有るので、これらを含む適切な大きさの PostScript 辞書
を生成できます。
|
[rs]X'ps: import file llx lly urx ury width [ height ]' |
|
PostScript グラフィックスを
file からインポートします。
引数
llx, lly, urx, ury は、デフォルトの PostScript 座標系における
グラフィックのバウンディングボックスを与えます;
すべて整数である必要が有ります;
llx と
lly はグラフィックの左下の x y 座標です;
urx と
ury はグラフィックの右上の x y 座標です;
width と
height は整数であり、groff の単位でグラフィックの幅と高さを与えます。
グラフィックは延び縮みして、この幅と高さになり、
グラフィックの左下角は
[rs]X コマンドにて関連づけられた場所に位置します。
引数 height を省略すると、x y 方向が同等に縮尺され、
指定した幅になります。
[rs]X コマンドの内容は
troff が解釈しないことに注意して下さい;
グラフィックのための垂直方向の空白は自動的に付加されず、
width と
height の引数にスケーリングインジケータを付加することは許されません。
PostScript ファイルが Adobe Document Structuring Conventions から成り、
%%Bounding Box コメントを含む場合、
psbb リクエスト実行により、groff 中でバウンディングボックスを自動的に取得可能です。
|
|
PostScript グラフィックスの高レベルインタフェースを提供する
PSPIC マクロについては、
groff_tmac(5)
を参照してください。
|
[rs]X'ps: invis' |
|
|
[rs]X'ps: endinvis' |
|
これらの
[rs]X コマンドにて囲まれたテキストと描画コマンドは出力を生成しません。
このコマンドは、
troff の出力を
grops で処理する前に見るために有ります;
プレビュアがある文字または構造を表示できない時、
これらの
[rs]X コマンドで囲むことにより、
代わりの文字または構造をプレビュー用に使えます。
例えば、標準の X11 フォントには含まれませんので、
gxditview は
[rs](em 文字を正しく表示できません;
この問題は以下のリクエストを実行することにより解決できます。
|
amp;.char [rs](em [rs]X'ps: invis'[rs]
[rs]Z'[rs]v'-.25m'[rs]h'.05m'[rs]D'l .9m 0'[rs]h'.05m''[rs]
[rs]X'ps: endinvis'[rs](em
|
この場合、
gxditview は
[rs](em 文字を表示できず線を引きますが、
grops は
[rs](em 文字を印刷し線を無視します
(このコードはファイル
Xps.tmac 中にあります。
grops 用の文書が
gxditview でプレビューされる場合にはロードされます)。
|
grops への入力は
troff (1) の出力形式である必要が有ります。
これは
groff_out (5) に記載してあります。
また、使用するデバイスに関するデバイス及びフォントの記述ファイルは
仕様に合致する必要が有ります。
ps デバイスに対して提供されているデバイス及びフォントの記述ファイルは
完全にこの仕様に合致します。
afmtodit(1)
を使って AFM ファイルからフォントファイルを生成可能です。
解像度は、整数値かつ
sizescale の 72 倍の倍数である必要が有ります。
ps デバイスは解像度 72000 および sizescale 1000 を使用します。
|
デバイス記述ファイルは、正当な用紙サイズを含む必要があります。
更なる情報については
groff_font(5)
を参照してください。
|
各フォント記述ファイルはコマンド
|
|
internalname psname |
を含む必要が有ります。これは PostScript におけるフォント名が
psname であることを意味します。
また、コマンド
|
|
encoding enc_file |
を含む場合も有ります。これは PostScript フォントが
enc_file に記載されたエンコード方式で再度エンコードする必要が有ることを意味します;
このファイルは以下の形式の行のシーケンスから成ります:
|
|
pschar code
|
ここで
pschar は PostScript における文字名であり、
code はエンコードにおける位置を 10 進整数で表したものです。
正当な値の範囲は 0 から 255 です。
# で開始する行と空行は無視されます。
フォントファイルにおいて与えられる各文字のコードは、
エンコードファイルにおける文字のコードに対応するか、
もしくは PostScript フォントが再度エンコードされていない場合は
デフォルトエンコードにおけるコードに対応する必要が有ります。
このコードを
[rs]N エスケープシーケンスと共に
troff 中で使うことにより文字を選択可能です。
これは、文字が groff での名前を持たなくても可能です。
フォントファイル中の全ての文字は PostScript フォント中に存在することが
必要であり、
フォントファイル中で与えられる幅は PostScript フォントで使用される幅に
マッチする必要が有ります。
grops は、groff における名前が
space である文字をブランク (ページ上に何も印を付けない) であるとしています;
これにより、効率の良い小さな PostScript 出力が得られます。
|
grops は PostScript フォントのすべてのグリフを表示可能です。
256 個だけではありません。
enc_file (エンコーディングが指定されない場合はデフォルトエンコーディング)
は、単に最初の 256 文字用のグリフの順番を指定するだけです。
他のグリフは、追加のエンコーディングベクタでアクセスされ、これは
grops がオンザフライで生成します。
|
grops は文書印刷に必要なダウンロード可能なフォントを自動的にインクルードします。
このようなフォントは PFA フォーマットであることが必要です。
pfbtops(1)
を使って Type 1 フォントを PFB フォーマットに変換してください。
要求時に
grops にインクルードされるダウンロード可能な全てのフォントは
/usr/share/groff_font/devps/download に列挙する必要が有ります;
これは以下の形式の複数の行から成ります。
|
|
font filename
|
ここで
font はフォントの PostScript における名前であり、
filename はフォントを含むファイルの名前です;
# から始まる行と空行は無視されます;
フィールドはタブもしくは空白により区切ります;
filename の検索は、groff のフォントメトリックファイルの検索と同じ方式で行われます。
download ファイル自身も同じ方式で検索されます;
現在のところ、フォントパス内で最初に見付かったファイルが使用されます。
|
ダウンロード可能なフォントもしくはインポートされた文書を含むファイルが
Adobe Document Structuring Conventions を満たす場合、
grops はファイル中のコメントを十分解釈し、出力もこれを満たすようにします。
また、
download ファイルに列挙された必要なフォントリソースおよびファイルリソースを提供します。
また、リソース間の依存関係を扱うことも可能です。
例えば、ダウンロード可能な Garamond フォントおよび
ダウンロード可能な Garamond-Outline フォントが有り、
後者が前者に依存すると仮定すると
(概して、後者は前者のフォント辞書をコピーして PaintType を変更したものと
定義されます)、PostScript 文書中で Garamond が Garamond-Outline より前に
現れる必要が有ります。
grops がこれを自動的に扱うためには、
Garamond-Outline 用のダウンロード可能なフォントファイルが
Garamond に依存することを
Document Structuring Conventions を使用して示します。
例えば以下のように始めることで示します。
|
|
%!PS-Adobe-3.0 Resource-Font
%%DocumentNeededResources: font Garamond
%%EndComments
%%IncludeResource: font Garamond
|
この場合、Garamond と Garamond-Outline を
download ファイルに列挙する必要が有ります。
ダウンロード可能なフォントは、自身の名前を
%%Document Supplied Resources コメントに含んではなりません。
grops は
%%Document Fonts コメントを解釈しません。
%%Document Needed Resources, %%Document Supplied Resources, %%Include Resource, %%Begin Resource, %%End Resource コメント
(もしくは古い
%%Document Needed Fonts, %%Document Supplied Fonts, %%Include Font, %%Begin Font, %%End Font コメント) は使用されます。