印刷/印刷できるファイル/PostScriptファイルの操作

PSファイルの分割

PSファイルをページ単位で分割するにはpsselectコマンドを実行します.分割に際してはどのページが必要であるかをPSファイルのプレビューで確認しておく必要があります.

psselectでのページ指定には,文書に書かれている具体的なページ番号ではなく,文書のはじめから何ページ目を切り出すかを指定する必要があります.

psselectコマンドの基本的な使い方を次に示します

% psselect [オプション] [ページ番号] [分割元PSファイル] [分割先PSファイル]<RET>

オプション

-e分割元のPSファイルの偶数ページのみを切り出す対象にします.
-o分割元のPSファイルの奇数ページのみを切り出す対象にします.
-r分割したページの並びを逆にします.
-p[ページ番号]ページを指定します.

 
オプションを指定していない場合は[ページ番号]に分割元のPSファイルから切り出したいページのページ番号をカンマ(,)で区切って指定します.連続したページを切り出す場合はハイフン(-)を利用してページ入力を省略できます.

ページを切り出すといっても,分割元のPSファイルから該当のページが失われてしまうわけではありません.psselectコマンドは必要なページだけからなる新しいPSファイルを生成するので,分割元のPSファイルには何ら影響を与えません.


psselectコマンドの実行例を次に示します.ここでは分割元PSファイルのfilename.psから,3ページ目,5ページ目,そして8ページ目から11ページ目までを切り出して,separate.psというPSファイルに書き出しています.


% psselect 3,5,8-11 filename.ps separate.ps<RET>
[3] [5] [8] [9] [10] [11] Wrote 6 pages, 755358 bytes
% _

また-rオプションを用いてページを指定する例を次に示します.この場合ページ数の指定には-pオプションを用いなければなりません.
% psselect -r -p3,5,8-11 filename.ps separate.ps<RET>
[11] [10] [9] [8] [5] [3] Wrote 6 pages, 755358 bytes
% _

こうして生成されたPSファイルを印刷することで,必要なページだけを印刷できます.
PSファイルのファイルサイズがあまりにも大きいと,プリンタから印刷されないことがあります.そのような場合でもpsselectコマンドを利用して適度な大きさのPSファイルに分割すれば印刷できます.

1.6.1 文書を縮小する

印刷するページ数が膨大な場合,複数ページを1枚の印刷用紙に印刷することによって大幅な紙資源の節約が可能となります.またページ数が膨大でなくても同種類の図や表を単一ページに印刷すればそれらの比較検討が容易になります.ここではこのような目的に利用されるPSファイルの縮小印刷の方法を説明します.

CNS ではPSファイルを縮小するためのコマンドをいくつか用意していますが,代表的なものはnupコマンドとpsmultiコマンドの2つです.これらは縮小印刷したいPSファイルがどのようにして生成されたかによって使いわける必要があります.これを表1.1に示します.


表: nupコマンドと psmultiコマンドの使い分け
コマンド 使用条件
nup dvi2psコマンドによって生成されたPSファイルの縮小印刷に利用します.
psmulti 一般のPSファイルの縮小印刷などに利用します.

nupコマンド

nupコマンドはdvi2psコマンドによって生成されたPSファイルを縮小する場合のみに利用できます.一般にLaTeXで作成した文書は dvi2psコマンドでPSファイルに変換されるので,psmultiコマンド(1.6.1)よりも頻繁に用いられます. nupコマンドによる縮小印刷の例を図1.6に示します.

図: nupコマンドによる縮小印刷の例
図:
 nupコマンドによる縮小印刷の例

nupコマンドへの入出力は標準入力および標準出力だけなので,dvi2psコマンドの出力をパイプでつないで入力するか,dvi2psコマンドで生成されたPSファイルをリダイレクションを用いて入力する必要があります.

% nup -[縮小度] [オプション] < [縮小元PSファイル] > [縮小先PSファイル]<RET>

どちらの場合においても[縮小度]に1枚の印刷用紙に何ページ分を印刷するかを指定します.指定できるのは2, 4, 8のいずれかです.

オプション

-lページの周囲を枠で囲む.
-n印刷用紙の縦横にあわせてページが回転するのを防ぐ.

nupコマンドの実行例を次に示します.ここではPSファイルの2ページ分を1枚の印刷用紙に印刷できるように縮小します.

% nup -2 < filename.ps > scaledown.ps<RET>

次の実行例では dvi2psコマンドによって生成されたコマンドの出力の8ページ分を1枚の印刷用紙に印刷できるように縮小し,各ページの周囲を枠も出力します.

% dvi2ps filename.dvi | nup -8 -l > scaledown.ps<RET>

このようにして縮小された文書を印刷できます.

psmultiコマンド

dvi2psコマンドで生成されたもの以外で,jdvi2kps コマンドで生成されたPSファイルを含む,一般のPSファイルを縮小印刷するにはpsmultiコマンドを実行します.

psmultiコマンドを縮小印刷に利用する方法を次に示します.引数-pagesの後の[縮小度]に1枚の印刷用紙に何ページ分を印刷するかを整数で指定します.通常は2, 4, 8などを指定します.


% psmulti [オプション] -pages [縮小度] [縮小元PSファイル] > [縮小先PSファイル]<RET>

psmultiコマンドによる縮小印刷の例を図1.7に示します.



図: psmultiコマンドによる縮小印刷の例
図:
 psmultiコマンドによる縮小印刷の例

オプション

-border [枠]ページの周囲を囲む枠を指定します. [枠]には次のものが指定できます.
pborder iborder 2border shadow frame psmulti
-nodecorページの周囲を囲む枠をなくす.
-o [ファイル名]リダイレクションを使わずにファイルに保存する場合に出力先のファイル名を指定します.
-l用紙を横長(landscape)にします.
-p用紙を縦長(portrait)にします.
-select [ページ数]psselectコマンドと同じように必要なファイルのみを切り出せます. [ページ数]には切り出したいページのページ番号をカンマで区切って指定します.切り出したいページが連続している場合には,コロン(:)を用いてページ入力を省略できます.
-reverse印刷するページを逆順にします.

psmultiコマンドの実行例を次に示します.ここでは文書の2ページ分を印刷用紙1枚に収まるように縮小しています.

% psmulti -pages 2 filename.ps > scaledown.ps<RET>

また同様に,文書の8ページ分を印刷用紙1枚に収まるように縮小し,ページ周囲に枠をつけない実行例を次に示します.

% psmulti -nodecor -pages 8 filename.ps > scaledown.ps<RET>

こうして生成されたPSファイルを印刷することで縮小印刷ができます.またパイプリダイレクションを用いることによって,縮小後のPSファイルを生成することなく,直接必要なページだけを印刷できます.


psmultiコマンドは一般のPSファイルの縮小印刷に用いるだけでなく,PSファイルに関するさまざまな変更を可能にする有用なコマンドであり,指定できるオプションや引数が数多くあります.詳しくはオンラインマニュアルを参照してください.