EN JA
GROPS(1)
GROPS(1) FreeBSD General Commands Manual GROPS(1)

名称

grops - groff 用の PostScript ドライバ

書式


grops-glmv ] [  -b ] [  -c ] [  -F ] [  -I ] [  -p ] [  -P ] [  -w ] [  files... ]
 

コマンドラインオプションとパラメータの間に空白を含めることが可能です。

解説

grops は GNU troff の出力を PostScript に変換します。通常 grops は groff コマンドを -Tps オプション付きで起動した時に起動されます。 (実際に、groff のデフォルトです。) ファイルを指定しないと、 grops は標準入力を読みます。ファイル名 - を指定しても、 grops は標準入力を読みます。 PostScript 出力は標準出力に書きます。 gropsgroff から起動する場合、 groff -P により、オプションを grops に渡せます。

複数のファイル引数で呼び出されるなら、 grops は、(Document Structuring Convention に準拠した) 有効な文書構造を生成しないことに注意してください。そのような連結された出力を印刷するためには、印刷プログラムかプレビュアで DSC の取り扱いを非活性化することが必要です。

オプション

-b n
不良なスプーラとプレビュアのための対処をします。通常、 grops は Document Structuring Conventions version 3.0 を満たす PostScript LanguageLevel 2 出力を生成します。このような出力を扱えない古いプリンタ、スプーラ、プレビュアがあります。値 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 をページ逆順を要求するプリンタと共に使用する時に必要です。
媒体の大きさ情報を文書に含めてはならない時には 16 を加えます (すなわち %%DocumentMediasetpagedevice PostScript コマンドも使用しないということです)。これは、groff バージョン 1.18.1 以前の動作です。 PostScript LanguageLevel 2 を理解しない古いプリンタでは必要です。出力がカプセル化された PS (EPS) ファイルを取得するためにさらに処理される場合も必要です -- 以下を参照。
デフォルト値は
broken  n

コマンドを DESC ファイルに記述することで指定可能です。そうでない場合はデフォルト値は 0 です。

-c n
各ページを n 部ずつ印刷します。
-F dir
序文、フォント、デバイス記述ファイルの検索パスの前に、ディレクトリ dir /dev name を追加します。 name はデバイス名であり、通常 ps です。
-g
ページ長を予測します。ページ長を予測する PostScript コードを生成します。イメージ領域が垂直位置でページの中心に有る時のみ、予測は正しいはずです。このオプションにより、変更無しで letter (8.5×11) と A4 の両方に印刷可能な文書を生成可能です。
-I dir
このオプションは、コマンドラインと \X'ps: import'\X'ps: file' エスケープで指定されたファイルでファイルを検索するためのディレクトリを指定するために使用できます。カレントディレクトリは常に最初に検索されます。このオプションは複数回指定できます。ディレクトリは指定された順序で検索されます。絶対パスを使用して指定されたファイルではディレクトリ検索を実行しません。
-l
文書をランドスケープ形式にて印刷します。
-m
文書に対し手動フィードを有効にします。
-p paper-size
出力媒体の物理的な大きさを設定します。これは、 DESC ファイル中の papersize, paperlength, paperwidth のコマンドに優先します。これは、 papersize コマンドと同じ引数を受け付けます。詳細は groff_font (5) を参照してください。
-P prologue-file
(フォントパス中の) ファイル prologue-file を、デフォルトの序文ファイル prologue の代りに、序文として使用します。本オプションは、環境変数 GROPS_PROLOGUE に優先します。
-w n
線の太さを M の横幅 (em) の 1000 分の n にて描画します。本オプションを指定しないと、線の太さは 0.04 em になります。
-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

PS Symbol フォント用の S および PS Symbol から取られた斜体小文字のギリシャ文字を含む SS と呼ばれる特別なフォントも有ります。 Zapf Dingbats は ZD として、逆バージョンの ZapfDingbats (シンボルが逆向き) は ZDR として使用可能です。これらのフォントのほとんどの文字は名前が無いので、 \N にてアクセスせねばなりません。

\m\M のデフォルト色は黒です。 `rgb' 色空間中で定義される色には setrgbcolor を使用し、`cmy' と `cmyk' には setcmykcolor を、`gray' には setgray を使用します。 setcmykcolor は PostScript LanguageLevel 2 コマンドであり、古いプリンタでは使えません。

grops\X エスケープシーケンスにより生成された様々な X コマンドを理解します。 gropsps: タグから始まるコマンドのみを翻訳します:

\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 はグラフィックステートを変更し得ますが、ページの終端までしか継続しません。 defmdef により指定される定義を含む辞書は、辞書スタックの頭に有るでしょう。あなたのコードがこの辞書に定義を付加するなら、 \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 と同様ですが、 coden 個まで定義を保持し得ます。 grops は何個の定義を code が含むのかを知る必要が有るので、これらを含む適切な大きさの PostScript 辞書を生成できます。
\X'ps: import  file llx lly urx ury width [ height ] '
PostScript グラフィックスを file からインポートします。引数 llx, lly, urx, ury は、デフォルトの PostScript 座標系におけるグラフィックのバウンディングボックスを与えます。すべて整数である必要が有ります。 llxlly はグラフィックの左下の x y 座標です。 urxury はグラフィックの右上の x y 座標です。 widthheight は整数であり、groff の単位でグラフィックの幅と高さを与えます。グラフィックは延び縮みして、この幅と高さになり、グラフィックの左下角は \X コマンドにて関連づけられた場所に位置します。引数 height を省略すると、x y 方向が同等に縮尺され、指定した幅になります。 \X コマンドの内容は troff が解釈しないことに注意して下さい。グラフィックのための垂直方向の空白は自動的に付加されず、 widthheight の引数にスケーリングインジケータを付加することは許されません。 PostScript ファイルが Adobe Document Structuring Conventions から成り、 %%BoundingBox コメントを含む場合、 psbb リクエスト実行により、groff 中でバウンディングボックスを自動的に取得可能です。
PostScript グラフィックスの高レベルインタフェースを提供する PSPIC マクロについては、 groff_tmac(5) を参照してください。
\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 文字を印刷し線を無視します (このコードはファイル 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 フォントが再度エンコードされていない場合はデフォルトエンコードにおけるコードに対応する必要が有ります。このコードを \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 ファイルに列挙する必要が有ります。ダウンロード可能なフォントは、自身の名前を %%DocumentSuppliedResources コメントに含んではなりません。

grops%%DocumentFonts コメントを解釈しません。 %%DocumentNeededResources, %%DocumentSuppliedResources, %%IncludeResource, %%BeginResource, %%EndResource コメント (もしくは古い %%DocumentNeededFonts, %%DocumentSuppliedFonts, %%IncludeFont, %%BeginFont, %%EndFont コメント) は使用されます。

カプセル化された PostScript

grops 自体はバウンディングボックス情報を出力しません。 GhostScript の助けで、次のコマンドは入力ファイル foo からカプセル化された PS ファイル foo.eps を生成します:
groff -P-b16 foo > foo.ps
 
gs -dNOPAUSE -sDEVICE=bbox -- foo.ps 2> foo.bbox
 
cat foo.ps | sed -e '/%%Orientation/rfoo.bbx' > foo.eps
 
rm foo.bbx
 

TrueType フォント

TrueType フォントは、まず Type 42 フォーマットに変換することで grops で使えます。これは特別な PostScript ラッパであり、 pfbtops(1) で述べられている PFA フォーマットと同じものです。 type42 ラッパを作成する数々の方法があり、ほとんどの方法が Ghostscript — gs(1) 参照—のような PostScript インタプリタを使う方法です。最も簡単な方法は、アプリケーション ttftot42 を使うものでしょう。このプログラムは freetype(3) (バージョン 1.3.1) を使用することで、 type42 フォントラッパと、適切なメトリックファイル作成のために afmtodit(1) に食わせるためのよくできた AFM ファイルを生成します。結果のフォントラッパを download ファイルに追加する必要があります。 ttftot42 ソースコードはからダウンロード可能です。

環境変数

GROPS_PROLOGUE
foo に設定されている場合、 grops は (フォントパス中の) ファイル foo をデフォルトの序文ファイル prologue の代りに使用します。オプション -P は、この環境変数に優先します。

関連ファイル

u+2n)*2u>(0u-0u)) .TP /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') の使用を禁止するマクロ。
/tmp/grops XXXXXX
一時ファイル。

関連項目

afmtodit(1), groff(1), troff(1), pfbtops(1), groff_out(5), groff_font(5), groff_char(7), groff_tmac(5)
17 January 2014 Groff Version 1.19.2