Solaris のシステム管理 (第 2 巻)

オプション

オプションは、各種の情報をフィルタコマンドのコマンド行引数にどのように変換するかを指定します。この情報には、ユーザーからの (印刷要求を伴う) 指定、プリンタ定義、要求の処理に使用されるフィルタによって実装される仕様などを含めることができます。

テンプレートによる印刷フィルタオプションの定義

印刷フィルタオプションの定義には 13 個の情報源があり、それぞれが「キーワード」で表されています。各オプションは「テンプレート」内で定義されます。テンプレートとは、フィルタのいずれかの特性値に基づいてフィルタコマンドに渡されるオプションを定義する、フィルタ定義内のステートメントです。

フィルタ定義で指定するオプションには、13 個のキーワードを使用しなくても、すべて使用しても、そのサブセットを使用してもかまいません。また、完全なフィルタ定義に複数の定義が必要な場合は、1 つのキーワードを複数回指定することもできます。印刷フィルタ定義における Options を定義するための 13 個のキーワードについては、表 6-6 を参照してください。

表 6-6 印刷フィルタオプションのキーワード

特性

キーワード 

考えられるパターン 

例 

内容形式 (入力) 

INPUT 

内容形式

troff

内容形式 (出力) 

OUTPUT 

内容形式

postscript、impress

プリンタタイプ 

TERM 

プリンタタイプ

att495

プリンタ名 

PRINTER 

プリンタ名

lp1

文字ピッチ 

CPI 

四捨五入された 10 進数 

10

行ピッチ 

LPI 

四捨五入された 10 進数 

6

ページ長 

LENGTH 

四捨五入された 10 進数 

66

ページ幅 

WIDTH 

四捨五入された 10 進数 

80

印刷ページ数 

PAGES 

ページリスト

1-5,13-20

文字セット 

CHARSET 

文字セット

finnish

フォーム名 

FORM 

フォーム名

invoice2

部数 

COPIES 

整数

3

特殊モード

MODES 

モード

landscape

印刷フィルタ定義には、複数のテンプレートを含めることができます。複数のテンプレートを指定する場合は、1 行にコンマで区切って入力するか、先頭に Options: を付けて複数行に入力します。

テンプレートの形式は次のとおりです。

keywordpattern = replacement

keyword は、フィルタの特定の特性に関して登録されたオプションのタイプを識別します。

pattern は、キーワードの特定のオプションです。

replacement は、キーワードが指定した値のときに発生する動作です。

特定のフィルタのオプションを定義する方法を示す例として、印刷サービススケジューラを使って次の条件でフィルタに印刷要求を割り当てたいものと仮定します。

上記の条件を指定するには、lpfilter コマンドのオプションとして次のテンプレートを与えます。

Options: OUTPUT impress=-I, OUTPUT postscript=-P

Options 行が長くなりすぎる場合は、次のように各テンプレートを別々の行に入れます。

Options: OUTPUT impress=-I
Options: OUTPUT postscript=-P 

どちらのテンプレートでも、keywordOUTPUT として定義されています。第 1 のテンプレートでは、パターンは impress で、「replacement」の値は -I です。第 2 のテンプレートでは、「pattern」の値は postscript で、「replacement」の値は -P です。

各種テンプレート (つまり、各キーワードの pattern 引数と replacement 引数) に与える値を見つけるには、次のことに注意する必要があります。

テンプレートの replacement 部は、テンプレートの値をフィルタプログラムに与える方法を示します。通常はリテラルオプションですが、値の位置を示すプレースホルダのアスタリスク (*) が付いていることがあります。patternreplacement には、ユーザー入力オプションからフィルタオプションへの複雑な変換を行うために、ed(1) の正規表現の構文を使用することもできます。ed(1) の正規表現の構文はすべて使用できます。たとえば、¥( ... ¥)¥n 構成を使用すると、pattern の各部を抽出して replacement にコピーできます。また、& を使用すると、pattern 全体を replacement にコピーできます。


注 -

pattern または replacement にコンマまたは等号 (=) を含める場合は、その前にバックスラッシュ (¥) を付けてください。これらの文字の前にバックスラッシュが付いていると、pattern または replacement が使用されるときに削除されます。