これらの
\X
コマンドにて囲まれたテキストと描画コマンドは出力を生成しません。
このコマンドは、
troff
の出力を
grops
で処理する前に見るために有ります;
プレビュアがある文字または構造を表示できない時、
これらの
\X
コマンドで囲むことにより、
代わりの文字または構造をプレビュー用に使えます。
例えば、標準の X11 フォントには含まれませんので、
gxditview
は
\(em
文字を正しく表示できません;
この問題は以下のリクエストを実行することにより解決できます。
.char \(em \X'ps: invis'\
\Z'\v'-.25m'\h'.05m'\D'l .9m 0'\h'.05m''\
\X'ps: endinvis'\(em
この場合、
gxditview
は
\(em
文字を表示できず線を引きますが、
grops
は
\(em
文字を印刷し線を無視します。
grops
への入力は
troff (1)
の出力形式である必要が有ります。
これは
groff_out (5)
に記載してあります。
また、使用するデバイスに関するデバイス及びフォントの記述ファイルは
仕様に合致する必要が有ります。
ps
デバイスに対して提供されているデバイス及びフォントの記述ファイルは
完全にこの仕様に合致します。
afmtodit
(1) を使って AFM ファイルからフォントファイルを生成可能です。
解像度は、整数値かつ
sizescale
の 72 倍の倍数である必要が有ります。
ps
デバイスは解像度 72000 および sizescale 1000 を使用します。
デバイス記述ファイルはコマンド
paperlength
n
を含む必要が有ります。これは生成される出力が、ページ長
n
マシン単位に適していることを意味します。
各フォント記述ファイルはコマンド
internalname
psname
を含む必要が有ります。これは PostScript におけるフォント名が
psname
であることを意味します。
また、コマンド
encoding
enc_file
を含む場合も有ります。これは PostScript フォントが
enc_file
に記載されたエンコード方式で再度エンコードする必要が有ることを意味します;
このファイルは以下の形式の行のシーケンスから成ります:
pschar code
ここで
pschar
は PostScript における文字名であり、
code
はエンコードにおける位置を 10 進整数で表したものです。
フォントファイルにおいて与えられる各文字のコードは、
エンコードファイルにおける文字のコードに対応するか、
もしくは PostScript フォントが再度エンコードされていない場合は
デフォルトエンコードにおけるコードに対応する必要が有ります。
このコードを
\N
エスケープシーケンスと共に
troff
中で使うことにより文字を選択可能です。
これは、文字が groff での名前を持たなくても可能です。
フォントファイル中の全ての文字は PostScript フォント中に存在することが
必要であり、
フォントファイル中で与えられる幅は PostScript フォントで使用される幅に
マッチする必要が有ります。
grops
は、groff における名前が
space
である文字をブランク (ページ上に何も印を付けない) であるとしています;
これにより、効率の良い小さな PostScript 出力が得られます。
grops
は文書印刷に必要なダウンロード可能なフォントを自動的にインクルードします。
要求時に
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
ファイルに列挙する必要が有ります。
ダウンロード可能なフォントは、自身の名前を
%%DocumentSuppliedResources
コメントに含んではなりません。
grops
は
%%DocumentFonts
コメントを解釈しません。
%%DocumentNeededResources
,
%%DocumentSuppliedResources
,
%%IncludeResource
,
%%BeginResource
,
%%EndResource
コメント
(もしくは古い
%%DocumentNeededFonts
,
%%DocumentSuppliedFonts
,
%%IncludeFont
,
%%BeginFont
,
%%EndFont
コメント) は使用されます。