名称
grops - groff 用 PostScript
ドライバ
書式
grops [ -glmv ]
[ -bn ] [ -cn ]
[ -wn ] [ -Fdir ]
[ -Pprologue ] [ files... ]
コマンドラインオプションとパラメータの間に空白を含めることが可能です。
解説
grops は GNU troff
の出力を PostScript
に変換します。 通常
grops は groff コマンドを
-Tps
オプション付きで起動した時に起動されます。
(groff
のデフォルトです。)
ファイルを指定しないと、
grops
は標準入力を読みます。
ファイル名 -
を指定しても、 grops
は標準入力を読みます。
PostScript
出力は標準出力に書きます。
grops を groff
から起動する場合、
groff -P
により、オプションを
grops に渡せます。
オプション
- -bn
- 不良なスプーラとプレビュアのための対処をします。
通常、 grops は Document Structuring
Conventions version 3.0
を満たす出力を生成します。
値 n
は、不良プログラムが受理可能な出力を
grops
が行うように制御します。
値 0 は grops
に何も対処しないようにさせます。
%%BeginDocumentSetup と %%EndDocumentSetup
のコメントを生成してはならない場合
1 を加えます;
初期バージョンの
TranScript は %%EndProlog
コメントと最初の
%%Page
コメントとの間で混乱させられましたので、これが必要です。
インクルードされたファイルで
%!
から始まる行を取り除かねばならない時には
2 を加えます; Sun の pageview
プレビュアで必要です。
インクルードされたファイルから
%%Page, %%Trailer, %%EndProlog
コメントを取り除かねばならない時には
4 を加えます; %%BeginDocument
と %%EndDocument
のコメントを理解しないスプーラに対して必要です。
PostScript
出力の最初の行が
%!PS-Adobe-3.0 ではなく
%!PS-Adobe-2.0
でなければならない時には
8 を加えます; Sun の Newsprint
をページ逆順を要求するプリンタと共に使用する時に必要です。
デフォルト値は
- broken n
コマンドを DESC
ファイルに記述することで指定可能です。
そうでない場合はデフォルト値は
0 です。
- -cn
- 各ページを n
部ずつ印刷します。
- -g
- ページ長を予測します。
ページ長を予測する
PostScript
コードを生成します。
イメージ領域が垂直位置でページの中心に有る時のみ、予測は正しいはずです。
このオプションにより、変更無しで
letter (8.5×11) と A4
の両方に印刷可能な文書を生成可能です。
- -l
- 文書をランドスケープ形式にて印刷します。
- -m
- 文書に対し手動フィードを有効にします。
- -Fdir
- 序文、フォント、デバイス記述ファイルの検索パスの前に、ディレクトリ
dir/devname
を追加します。 name
はデバイス名であり、通常
ps です。
- -Pprologue-file
- (フォントパス中の)
ファイル prologue-file
を、デフォルトの序文ファイル
prologue
の代りに、序文として使用します。
本オプションは、環境変数
GROPS_PROLOGUE
に優先します。
- -wn
- 線の太さを M の横幅 (em)
の 1000 分の n
にて描画します。
- -v
- バージョン番号を表示します。
使用法
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
SS および S
と呼ばれる特別なフォントも有ります。
Zapf Dingbats は ZD
として、逆バージョンの
ZapfDingbats
(シンボルが逆向き) は
ZDR
として使用可能です;
これらのフォントのほとんどの文字は名前が無いので、
\N
にてアクセスせねばなりません。
grops は \X
エスケープシーケンスにより生成された様々な
X
コマンドを理解します;
grops は ps:
タグから始まるコマンドのみを翻訳します:
- \X'ps: exec code'
- code 中の任意の PostScript
コマンドを実行します。
code 実行前に PostScript
の現在位置は \X
の位置に設定されます。
原点はページの左上になり、y
座標はページを下ると増加します。
プロシジャ u は、groff
の単位を有効な座標系のものに変更するように定義されます。
例えば、
- .nr x 1i
\X'ps: exec \nx u 0 rlineto stroke'
- は 1
インチ長の水平線を描画します。
code
はグラフィックステートを変更し得ますが、ページの終端までしか継続しません。
def と mdef
により指定される定義を含む辞書は、辞書スタックの頭に有るでしょう。
あなたのコードがこの辞書に定義を付加するなら、
\X'ps mdef n'
を使用して、そのための空間を割り当てる必要が有ります。
定義はページの終りまでしか継続しません。
\Y
エスケープシーケンスをマクロを名付ける引数と共に使うと、
code
を複数行に渡らせることが出来ます。
例えば、
-
.nr x 1i
.de y
ps: exec
\nx u 0 rlineto
stroke
..
\Yy
は 1
インチ長の水平線を描画する別の方法です。
- \X'ps: file name'
- exec
コマンドと同様ですが、コードをファイル
name から読みます。
- \X'ps: def code'
- code の PostScript
定義をプロログ部に置きます。
\X
コマンドに対し最大 1
定義までです。
長い定義は複数の \X
コマンドに渡り分割できます;
全ての code
引数は、改行で区切られ、単純に連結されます。
定義は、 exec
コマンド実行時に辞書スタックに自動的にプッシュされる辞書に置かれます。
\Y
エスケープシーケンスをマクロを名付ける引数と共に使うと、
code
を複数行に渡らせることが出来ます。
- \X'ps: mdef n code'
- def と同様ですが、
code は n
個まで定義を保持し得ます。
grops は何個の定義を
code
が含むのかを知る必要が有るので、これらを含む適切な大きさの
PostScript 辞書
を生成できます。
- \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
の単位でグラフィックの幅と高さを与えます。
グラフィックは延び縮みして、この幅と高さになり、
グラフィックの左下角は
\X
コマンドにて関連づけられた場所に位置します。
引数 height
を省略すると、x y
方向が同等に縮尺され、
指定した幅になります。
\X コマンドの内容は
troff
が解釈しないことに注意して下さい;
グラフィックのための垂直方向の空白は自動的に付加されず、
width と height
の引数にスケーリングインジケータを付加することは許されません。
PostScript ファイルが Adobe Document
Structuring Conventions から成り、
%%BoundingBox
コメントを含む場合、
psbb
リクエスト実行により、groff
中でバウンディングボックスを自動的に取得可能です。
-mps マクロ ( grops が groff
コマンドから起動された時には自動的にロードされます)
は、
画像を容易にインポート出来るようにする
PSPIC
マクロをインクルードします。
フォーマットは以下です。
- .PSPIC [ -L | -R | -I n ]
file [ width [ height ]]
file
は画像を含むファイル名;
width と height
は要求する画像の横幅と高さです。
引数 width と height
にはスケーリングインジケータを付けても構いません;
デフォルトのスケーリングインジケータは
i です。
このマクロは、
画像の幅が width
以下および
画像の高さが height
以下の範囲において、画像を
x y
方向同等で縮尺します。
デフォルトで、画像は水平的に中心に置かれます。
-L および -R
はそれぞれ画像を左寄せおよび右寄せします。
-I
オプションは、画像を
n
だけインデントします。
- \X'ps: invis'
-
- \X'ps: endinvis'
- これらの \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
コメント)
は使用されます。
環境変数
- GROPS_PROLOGUE
- foo
に設定されている場合、
grops は
(フォントパス中の)
ファイル foo
をデフォルトの序文ファイル
prologue
の代りに使用します。
オプション -P
は、この環境変数に優先します。
関連ファイル
- /usr/share/groff_font/devps/DESC
- デバイス記述ファイル。
- /usr/share/groff_font/devps/F
- フォント F
のフォント記述ファイル。
- /usr/share/groff_font/devps/download
- ダウンロード可能なフォントのリスト。
- /usr/share/groff_font/devps/text.enc
- テキストフォント用のエンコード方法。
- /usr/share/tmac/ps.tmac
- grops
が使用するマクロ;
troffrc
により自動的にロードされます。
- /usr/share/tmac/pspic.tmac
- PSPIC マクロの定義。
ps.tmac
から自動的にロードされます。
- /usr/share/tmac/psold.tmac
- 古い PostScript
プリンタには存在しない文字
(例えば `eth' や `thorn')
の使用を禁止するマクロ。
- /usr/share/tmac/tmac.psnew
- tmac.psold
の効果を打ち消すマクロ。
- /tmp/gropsXXXXXX
- 一時ファイル。
関連項目
afmtodit(1), groff(1), troff(1),
psbb(1), groff_out(5), groff_font(5),
groff_char(7)