LIPSF(1)

名称
lipsf - Canon LASERSHOT 用 プリントアウトフィルタ

形式
lipsf [ -p paper ] [ -m mode ] [ -d dir ] [ -f font ] [ -J kanji_code ] [ -s size ] [ -h hight ] [ -w width ] [ -C char ] [ -N name ] [ -A char ] [ -# num ] [ -t tab ] [ -c column ] [ -l line ] [ -T len ] [ -B len ] [ -L len ] [ -R len ] [ -H strings ] [ -F strings ] [ -O num ] [ -S num[,column] ] [ -r num1[-[num2]] ] [ -P num ] [ -X char ] [ -@ prmfile ] [ -vjakKi234? ] [ name ... ]

解説

lipsf は、 Canon LASERSHOT 用の制御コードである LIPS コマンドを出力することにより、 一般テキストファイル name のプリントアウトを行ないます。 オプションの指定によって、用紙サイズや書体の選択などが可能となっています。 プリントアウトするファイルは複数指定することができます。 MS-DOS 版でもワイルドカードによるテキストファイルの指定が可能です。

行の折込やヘッダ・フッタの付加など、 テキスト整形の機能も多少はありますので、 プログラムソースの印刷だけでなく、 ちょっとした文書の印刷にも利用できます。

lipsf は標準では lpr(1) へ出力を渡します (MS-DOS 版ではプリンタポートへ直接データを送ります) が、 リダイレクトをすることにより、 プレーンなテキストファイルから LIPS コマンドを 埋め込んだテキストファイルを作成することもできます。 また、 印刷ファイルを指定しない場合、 コンソール以外の標準入力を受けてプリントアウトすることも可能ですので、 パイプを用いて他のコマンドの出力を直接プリンタに出力させることもできます。

但し、標準入力がコンソールの場合は、 キー入力を印刷する代わりに pols(1) が起動され、 印刷オプションなどの設定を対話的に行なってから印刷することができます。 pols(1) は lipsf の対話的インタフェース版ですが、 詳細についてはそちらのマニュアルを参照して下さい。

オプションの装飾印刷機能を用いれば、 アンダーラインや網掛けといった飾り文字を印刷することもできるようになります。

オプション
lipsf は、 各種プリンタ制御のために以下のオプションを受け付けます。

これらのオプションは、 lipsf のコマンドラインのオプション記述により指定できる他、 パラメータファイルによる指定法や、 pols(1) による対話的指定法があります。

-p paper
    用紙サイズを選択します。デフォルトはA4用紙です。 選択できるのは以下の用紙のみです。

用紙サイズ一覧

paper | 用紙サイズ | 備考
a3 | A3 | LASERSHOT A304Eのみ対応
a4 | A4 |
a5 | A5 |
b4 | B4 |
b5 | B5 |
hagaki | はがき |
XXXxYYY | ユーザ指定 | XXX が横幅, YYY が縦幅(mm単位)

-m mode
    給紙モードを カセット自動給紙 (Auto), 手差し給紙 (Manual), 下段カセット給紙 (Lower), 上段カセット給紙 (Upper) の中から選択します。 それぞれのモードを表す文字列、 もしくは頭文字を指定します。 デフォルトは自動給紙モードです。

-d direction
    用紙を縦置き (Portrait), 横置き (Landscape) のどちらにするかを選択します。 それぞれの置き方を表す文字列、 もしくは頭文字を指定します。 デフォルトは縦置きです。

-f font
    漢字書体を明朝体 (Mincho), 角ゴシック体 (Gothic), 丸ゴシック体 (Round-Gothic) の中から選択します。 それぞれの書体を表す文字列、 もしくは頭文字を指定します。 デフォルトは明朝体です。

-J kanji_code
    印字ファイルの漢字コードを SJIS, EUC, JIS の中から選択します。 JIS は自動認識可能なので、 SJIS, EUC 選択時でも印字できますが、 明示的に JIS を選択した場合は、 ISO-2022-JP の escape sequence 仕様に則って新 JIS (JIS X0208-1990) と旧 JIS (JIS C6226-1978) 及び US-ASCII と Roman (JIS X0201-1976) とを切替えます。

-s size
    漢字フォントのサイズをドット単位で指定します。 デフォルトは 40 ドットです。 LIPS IV モードでは、 解像度に応じて 300dpi 相当のドット数 (80 又は 160) がデフォルト値になります。 ANK 文字フォントは漢字フォントの半分の幅になります。

-h hight
    各行間の隙間をドット単位で指定します。 デフォルトは 8 ドットです。 LIPS IV モードでは、 解像度に応じて 300dpi 相当のドット数 (16 又は 32) がデフォルト値になります。

-w width
    各文字間の隙間をドット単位で指定します。 デフォルトは 2 ドットです。 LIPS IV モードでは、 解像度に応じて 300dpi 相当のドット数 (4 又は 8) がデフォルト値になります。

-C char
    装飾印刷機能を利用する場合に、 制御文字の接頭子として機能させる 1 文字を指定します。 デフォルトでは装飾印刷機能は働きません。

-N name
    出力先のプリンタ名を文字列で指定します。 プリンタ名は /etc/printcap で登録されている必要があります (MS-DOS 版では LPT1-LPT9 の中から選択)。 デフォルトは lipsf です(MS-DOS 版ではローカルプリンタ)。

-A char
    ヘッダやフッタに関する種々の設定を指定します。 -H, -F オプションが指定されていないと、このオプションは無効です。 char が以下の各文字の時、それぞれの設定になります。
    Hlen
        ヘッダマージンを mm 単位で指定します。 H と数字の間はあけないで記述して下さい。 デフォルトは 10mm です。
    Flen
        フッタマージンを mm 単位で指定します。 F と数字の間はあけないで記述して下さい。 デフォルトは 10mm です。
    z   ゼロサプレスモードにします(後述)。
    k   漢字モードが縦書きの時に、マクロの生成する数字を漢数字にします。
    U   マクロの生成するファイル名やパス名の文字列を大文字に変換します。
    L   マクロの生成するファイル名やパス名の文字列を小文字に変換します。

-# num
    プリントアウトする部数を指定します。 デフォルトは 1 枚です。

-t tab
    タブストップの位置を文字単位で指定します。 デフォルトは 8 文字毎です。

-c column
    各行に印刷する文字数を ANK 文字数で指定します。 0 以下の数を指定すると、 行の折込み等はせずにプリンタ側の自動改行機能に任せます。 デフォルトでは用紙幅を考慮した最大の文字数になるよう自動的に設定します。

-l line
    各ページに印刷する行数を指定します。 折り込まれた行も数に含めます。 0 以下の数を指定すると、 テキスト中に改ページコード FF(ASCII code 0ch) が現れた場合を除き、 改ページは全てプリンタ側の自動改ページ機能に任せます。 デフォルトでは用紙高を考慮した最大の行数になるよう自動的に設定します。

-T len
    上端のマージンを mm 単位で指定します。 デフォルトは 10mm です。

-B len
    下端のマージンを mm 単位で指定します。 デフォルトでは用紙の印字可能高さ一杯まで印字します。

-L len
    左端のマージンを mm 単位で指定します。 デフォルトは 10mm です。

-R len
    右端のマージンを mm 単位で指定します。 デフォルトでは用紙の印字可能幅一杯まで印字します。

-H strings
    各ページのヘッダとして用いる文字列を指定します。 デフォルトではヘッダはつけません。

-F strings
    各ページのフッタとして用いる文字列を指定します。 デフォルトではフッタはつけません。

-O num
    オーバレイモードを指定します。 num が 1,2 の時にはそれぞれオーバレイメモリ 1,2 にテキストを登録し、 印刷は実行されません。 num が 3,4 の時には それぞれオーバレイメモリ 1,2 の内容をテキストの上に上書きします。 5 の時にはオーバレイメモリ 1,2 の内容を両方とも上書きします。 デフォルトではオーバレイは使用しません。

-S num[,column]
    段組印刷を指定します。 num で段組数を、 column で各段の文字数をそれぞれ指定します。 column に 0 以下の数を指定すると、 行の折込み等はせずに次の段にまたがって印字します。 column を省略すると 用紙幅を考慮した最大の文字数になるよう自動的に設定します。 デフォルトでは段組はしません。

-r num1[-[num2]]
    印刷するページ範囲を指定します。 ページ番号は物理的に印刷されるはずのページを指します。 num1 で印刷開始ページを、 num2 で印刷終了ページをそれぞれ指定します。 num1 のみ指定した場合は指定ページのみ印刷します。 num1- または -num2 と指定した場合は、 それぞれ指定ページ以降、指定ページ以前を印刷します。 デフォルトでは全てのページを印刷します。

-P num
    ヘッダやフッタ内でページ番号を印刷する場合の、 最初のページに印刷する番号を指定します。 デフォルトは 1 です。

-v  漢字モードを縦書きにします。

-j  漢字コードセットに旧 JIS (JIS C6226-1978) を選択します。 デフォルトでは新 JIS (JIS X0208-1990) が指定されます。

-a  1byte コードセットに US-ASCII を選択します。 デフォルトでは Roman (JIS X0201-1976) が指定されます。

-k  罫線 (98 罫線を含む) を連結して印字します。

-K  行の折込の際に、行頭行末で禁則処理を行ないます。

-i  印刷情報表示モードにします。 印刷されるべきページ数、段組数、行数を標準出力に出力し、 実際の印刷は行ないません。 出力書式は "xP + yS + zP ファイル名" の形で、 x, y, z は、それぞれ [印刷されるページ数 - 1], [最終ページの段組数 - 1], [最終ページ最終段の行数] を指します。

-2  LIPS II+ モードにします。 旧タイプの LASERSHOT ではこのモードを指定します。

-3  LIPS III モードにします。 デフォルトではこのモードです。

-4  LIPS IV モードにします。 新タイプの LASERSHOT ではこのモードの方が奇麗な印字になりますが、 LIPS IV 非対応のモデルでは使えません。

-X char
    LIPS IV モード時の拡張モードの設定を指定します。 -4 オプションが指定されていないと、 このオプションは無効です。 char が以下の各文字の時、それぞれの設定になります。
    F   1200dpi の超高解像度モードにします。
    D   両面印刷モードにします。 プリンタに両面印刷機構が搭載されていないと、 このオプションは無効です。
    Cn  カラー印刷モードにします。 n で基本色を指定します。 n が数字の時、 0-7 の値が各々黒、赤、緑、黄色、青、紫、水色、白を表します。 n が # で始まる 6 桁の 16 進数の場合、 RGB の強度を 0-255 までの 256 段階で表現した色を表します。 n が % で始まる数値の場合、 グレイスケールの濃度を百分率で表現した色を表します。 n を省略すると基本色には黒が設定されます。

-@ prmfile
    パラメータファイルのファイル名を指定します。 上記のオプション文字列を記述したテキストファイルを用い、 コマンドラインからのオプション指定の代りにパラメータ設定ができます。 各オプション文字列は空白、タブ、改行で区切って記述します。 但しパラメータファイルの再帰的な読込みはできません。

-?  簡単なヘルプメッセージを標準エラー出力に表示します。

装飾印刷機能.B -C
オプションで指定された 1 文字を接頭子とするような制御文字を テキストファイル中に置くことで、 LASERSHOT プリンタの持つ様々な装飾印刷機能を利用することができます。

接頭子として '\' を用いたい場合は、 '-C \\' と重ねて記述しないとシェルが正しく判断しないので注意して下さい。 パラメータファイル内の場合も同様に重ねて表記します。

各種の制御文字のうち、 アンダーラインや網掛けといった飾り文字に関する制御コマンドは、 "\uアンダーライン\u" のように、 制御文字で囲んで用います。 飾り文字の終了を表す制御文字がなくても、 改行文字が印字された時点で自動的に文字飾りは解除され、 ノーマル印字状態に戻ります。

以下に、接頭子を '\' とした場合の制御コマンドを紹介します。

\w  文字の横幅が倍になった横倍角文字で印字します。

\l  文字の縦幅が倍になった縦倍角文字で印字します。

\b  縦横がそれぞれ倍になった 4 倍角文字で印字します。

\t  縦に 1/2 に縮小されたスクリプト文字を上付きで印字します。

\s  縦に 1/2 に縮小されたスクリプト文字を下付きで印字します。

\u  アンダーライン付きの文字で印字します。

\d  ダブルアンダーライン付きの文字で印字します。

\f  文字の太さが太くなった強調文字で印字します。

\i  文字が傾いたイタリック文字で印字します。

\a  網掛け文字で印字します。

\x  白黒反転文字で印字します。

\o  輪郭だけから成るアウトライン文字で印字します。

\p  模様の描かれたパターンフィル文字で印字します。

\q  文字の影の部分だけを示したシャドウ文字で印字します。

\z  この制御文字の入った行だけ、印刷後改行しません。次の行が重ね打ちされます。

\h  この制御文字の入った行だけ、通常の半分の幅だけ改行します。

\c  この制御文字の入った行だけ、行全体の内容を中央に印刷します。

\r  この制御文字の入った行だけ、行全体の内容を右寄せで印刷します。

\k  縦書き漢字モードの場合、 この制御文字に続く 2 文字の ANK 文字を、 半角組文字として印字します。 2 文字目が ANK 文字でなかった場合は 1 文字目のみ組文字にします。 組文字印字後、自動的にノーマル印字状態に戻ります。

\@  何も動作を行なわないダミー文字です。 テキストの桁幅調整などで用います。

\;  コメント行です。 この制御文字以降、行末までをコメント文とみなし、 実際には印字されません。

\\  文字 '\' そのものを印字します。

\{zn}
    文字サイズを n ドットに変更します。 n を省略すると、 デフォルト値に戻します。

\{g0}
    漢字書体を明朝体にします。

\{g1}
    漢字書体を角ゴシック体にします。

\{g2}
    漢字書体を丸ゴシック体にします。

\{j0}
    漢字モードを横書きにします。

\{j1}
    漢字モードを縦書きにします。

\{cn}
    各文字間の隙間を n ドットに変更します。 n を省略すると、 デフォルト値に戻します。

\{fn}
    各行間の隙間を n ドットに変更します。 n を省略すると、 デフォルト値に戻します。

\{tn}
    タブストップの位置を n 文字毎に変更します。 n を省略すると、 デフォルト値に戻します。

\{Tn1,n2}
    インデント幅を左端 n1 文字右端 n2 文字に設定します。 n2 を省略すると左端インデントだけ設定されます。

\{k0}
    罫線連結処理をしないようにします。

\{k1}
    罫線連結処理をするようにします。

\{o0}
    禁則処理をしないようにします。

\{o1}
    禁則処理をするようにします。

\{Cn}
    文字色を n で指定される色に変更します。 -4 オプションが指定されていないと無効です。 カラー印刷モードでない時やプリンタがカラー印刷に対応していない時は、 常にグレイスケールで印刷されます。 n の指定方法は、 起動時の -X オプションの C コマンドと同じです。 n を省略すると、 文字色を基本色に変更します。

\{-}
    装飾印刷機能を一時的に中止します。 -C オプションで制御文字接頭子が指定されていないと無効です。

\{+}
    \{-} コマンドで中止された装飾印刷機能を再び有効にします。 装飾印刷機能の一時中止の間は、このコマンドのみ有効となります。

これらの制御コマンドのみから成る行は、 実際には印字されませんし、空行とも見なされませんので、 注意して下さい。

ヘッダ・フッタ
-H, -F オプションにより、 印刷される用紙の各ページにヘッダやフッタをつけることができます。

ヘッダやフッタの文字列を指定する時には、 シェルによって空白文字がセパレータとみなされないよう、 -H"This is Header" のように、 引用符でくくる必要があります。 装飾印刷機能はヘッダやフッタの中でも使えますが、 接頭子に '\' を選んだ場合には重ねて表記することを忘れないで下さい。 また、引用符自身は '\"' と表します。 これらの書式はパラメータファイル内でも全く同様です。

ヘッダ・フッタ文字列の中でのみ許される書式として、 パイプ文字を用いたセンタリングがあります。 文字列中に 2 つまでの '|' を挿入することができ、 1 つ目から 2 つ目までの間に含まれる文字列はセンタリングされ、 2 つ目より後ろの文字列は右寄せに印字されます。 3 つ目以降のパイプ文字は無視されます。

また、ヘッダ・フッタ文字列内では、 接頭子 '%' を用いて以下のようなマクロが使用できます。

%y  年(西暦下2桁)

%Y  年(西暦4桁)

%m  月(数字)

%N  月(英語) ("Jan" - "Sat")

%d  日(数字)

%w  曜日(日本語) ("日" - "土")

%W  曜日(英語) ("Sun" - "Sat")

%H  時(24時制) (0 - 23)

%h  時(12時制) (0 - 11)

%n  AM または PM

%M  分(数字)

%S  秒(数字)

%F  ファイルのフルパス名 (MS-DOS 版ではドライヴ名を含む)

%f  ファイル名

%s  ファイルサイズ

%t  ファイルのタイムスタンプ (例: 99-01-01 0:00)

%p  ページ番号

%P  総ページ数

%|  文字 '|' そのもの

%%  文字 '%' そのもの

-z オプションを用いてゼロサプレスモードにしていた場合、 月、日、時の桁数が 1 桁の時には十の位の位置に空白を補います。 ゼロサプレスモードでない時、もしくは月、日、時以外の数字の時には、 1 桁の時にも十の位には 0 が印字されます。

なお、 -l オプションでプリンタによる自動改行を指定している場合、 ヘッダやフッタは全テキストの最初と最後にしかつきませんので注意して下さい。

日本語対応
漢字コードは JIS (ISO-2022-JP) と Shift JIS または EUC 漢字のみ対応しています。 Shift JIS と EUC 漢字の選択はオプションで行ないますので、 同時に自動判別できる漢字コードは 2 種類だけです。 MS-DOS 版のデフォルトは Shift JIS 対応です。 テキストファイルの文字コードから自動判別していますが、 ISO-2022-JP の漢字イン (2byte コードセット呼出) 及び 漢字アウト (1byte コードセット呼出) は以下のものだけ識別します。

漢字イン
    ESC $ @
    ESC $ B
    ESC $ ( @
    ESC $ ( B
    ESC $ ( O
    ESC & @ ESC $ B

漢字アウト
    ESC ( J
    ESC ( H
    ESC ( B

また、禁則処理は以下の文字に関して、 それぞれ行頭行末で禁則処理を行ないます。 なお、都合上以下には記されていませんが、 半角カナ (1byte カナ) の括弧と句読点もサポートしています。

行頭禁則文字
    、。，．？！’”）〕］｝〉》」』】＞!),.>?]}

行末禁則文字
    ‘“（〔［｛〈《「『【＜(<[{

printcap への設定
lipsf の出力はプレーンなテキストファイルではありません。 UNIX の場合、単純に lpr(1) へ出力を渡してしまうと、 標準フィルタによって LIPS コマンドの途中で改行コードを挿入されたりして、 正しくプリントアウトされません。 そこで UNIX 版 lipsf では、フィルタリングを一切行なわないようなプリンタ "lipsf" を登録し、 出力プリンタをそこに指定するようにしています。 したがって、 lipsf の使用に際しては、 /etc/printcap に以下のような登録を加えておいて下さい。

lipsf|Canon LASERSHOT for lipsf:\
        :lp=/dev/lp0:sh:sf:mx#0:\
        :sd=/usr/spool/lipsf:\
        :lf=/usr/adm/lipsf-errs:
(各パス名は OS によって異なりますので、 lpd(8) のマニュアルを参考に適宜置換えて下さい。)

加えて、スプールディレクトリ /usr/spool/lipsf の作成と、 lpc(8) の start コマンドの実行が必要です。

関連ファイル
/etc/printcap
    プリンタ特性のデータベース
/usr/spool/lipsf
    スプールディレクトリ

関連事項
pols(1), lpr(1), lpc(8), lpd(8), printcap(5)

診断
ワードラッピング、ジャスティフィケーションなど未対応です。

著作権
Copyright (C) 1993-2002 by Takashi SHIRAI

著者
白井 隆, <shirai@nintendo.co.jp>