PRN(1)

名前
prn, cprn - テキストファイルを清書印刷する

形式
prn | cprn [ -sbcnjtikuapB ] [ -Vformat | -Hformat ]
[ -tabstop ] [ -h header ] [ -orange ]
[ -llanguage ] [ -Pprinter ] [ -#copies ]
[ -d deffile ] [ -ffontmap ] [ filename ] ...

日本語機能
prn と cprn では日本語 EUC の主コードセットおよび補助コードセットの文字が使用できます。さらに，入力 は日本語コード変換フィルター kcc(1) を通して前処理されるので，EUC・JIS（7 ビット・8 ビット）・ シフト JIS が意識することなく使えます。

機能説明
prn と cprn は指定したファイルを順に整形し，プリンターに送ります。ファイルが指定され ないとき，またはファイル名として - が指定されたときには標準入力から読み込みます。次のような特徴があります。

    •   多彩な書式（任意のけた数・行数，段組み，用紙の方向）
    •   見出し（更新日時，ファイル名，ページ番号）
    •   行番号の付加
    •   出力範囲指定
    •   ソースリスト中の注釈や予約語の強調
    •   日本語漢字コードの自動判別（EUC・JIS・シフト JIS）

  注釈と予約語の強調
cprn は prn に -c オプションを付けて起動したのと同じで，ソースリストの注釈や予約語を強調 （標準では注釈は斜体，予約語は太字）します。言語の種類は各入力ファイルご とにファイル名によって区別します。その規則は以下の表に示すとおりです。

    ファイル名    言語    -l オプションでの名称
    *.c *.h    C    c C
    *.cc *.c++ *.C    C++    cc c++ C++
    *.f    FORTRAN    f f77 fortran FORTRAN
    *.r    ratfor    r ratfor
    *.p    pascal    p pascal
    *.y    yacc    y yacc
    *.l    lex    l lex
    *.sh    shell    sh shell B-shell
    *.csh    C shell    csh C-shell
    *.uil    UIL    uil UIL
    *.ps *.eps *.epsf    PostScript    ps PostScript POSTSCRIPT
    *.tex *.ind *.idx    LaTeX    latex LaTeX tex TeX
    *.sty    LaTeX-sty    sty latex-sty LaTeX-sty
    [Mm]akefile*    make    make makefile Makefile

バックアップ用の拡張子‘.bak’，‘.BAK’，‘~’， ‘~1~’などがついていても認識されます。上記以外のファイル名のもの は B シェルスクリプトとみなされます。標準入力の場合は明示的に指定しない 限り，B シェルスクリプトになります。

-l オプションで明示的に言語が指定できます。例えば C シェルスクリプトを指定 するには -lcsh とします。特に C シェルスクリプトは明示的な指定が必要なことが多いので注 意が必要です。

  日本語コード
入力は日本語コード変換フィルター kcc(1) を通して前処理されます。このフィルターは入力の日本語コードを自動判別し， コード変換を行うもので，JIS（7 ビット・8 ビット）・EUC・シ フト JIS が認識できます。詳しくは kcc(1) のマニュアルを見てください。

  フォント
英字（ASCII 文字）のフォントは‘Courier’，日本語フォントは ‘Ryumin-Light’と‘GothicBBB-Medium’です。日本語の全角文字は，ASCII 文 字との親和性をよくするため標準では縦横比が 1:1.2 になるように変形されま す。変形させたくないときには -j オプションを指定します。このときは縦横ともに 1.1 倍（全角文字の場合）に 拡大されます。

オプション

  書式設定

-Vformat
-Hformat
    書式を指定します。次のものから 1 つを選びます。数字は順に，けた数，行 数，段数を表します。標準は -V です。

    -V
        80 × 66    縦（10 ポイント）
    -Vw
        132 × 100    縦
    -V2
        80 × 132 × 2    縦
    -V3
        80 × 200 × 3    縦
    -H
        132 × 66    横
    -H2
        80 × 66 × 2    横
    -H3
        80 × 100 × 3    横
    -H4
        80 × 132 × 4    横

    書式は任意に指定することもできます。

    -Vwid-len
        wid × len    縦
    -Vwid-len-col
        wid × len × col    縦
    -Hwid-len
        wid × len    横
    -Hwid-len-col
        wid × len × col    横

    len・wid の一方には，自然数の代わりに @ か @stretch を指定することができます。この場合，他方の値に応じた適切な値を prn が選択します。stretch は正数で，その値倍だけ間隔を引き伸ばします。 例えば -H40-@1.5-2 は‘@’が 33 を表すことになるので，行間を 1.5 倍にした -H40-22-2 の指定と同じになります。

-s  段組み時，段と段の間に境界線（点線）を引きます。

-b  -fB:I:BIU:U と同じで，太字中心のフォント（注釈は斜体，予約語は太字斜体下線）を使いま す。

-n  行番号を付けます。

-j  漢字を横につぶれた形にしません。

-tabstop
    タブを tabstop おきとみなします。標準では 8 です。

-t  各ページ上下に 5 行ずつ付く見出しと空行を省きます。

-h header
    header を見出しのファイル名として用います。

-orange
    出力する行の範囲を行番号で指定します。範囲が複数のときは‘,’（コ ンマ）で区切って並べます。

    n   第 n 行
    n-m 第 n 行から第 m 行まで
    -m  第 1 行から第 n 行まで
    n-  第 n 行から最終行まで
    n+m 第 n 行から m 行ぶん

  lpr のオプション

-Pprinter
    プリンターを指定。環境変数 PRINTER も有効です。

-#copies
    部数を指定します。

  注釈と予約語の強調処理

-llanguage
    言語の種類を指定します。（【機能説明】の項を参照）

-i  注釈や予約語の処理に際し大文字と小文字の区別をしません。

-k  予約語を強調しません。

-d deffile
    cmt(1) の言語定義データベースを deffile に替えます。

  その他

-c  注釈や予約語を強調します。cprn では標準です。

-u  日本語コード変換フィルター kcc(1) を通しません。このときは日本語コードは EUC でなければなりません。

-a  PostScript に変換する前の整形された中間出力を標準出力に出します。

-p  複数の入力ファイルをまとめて 1 つの PostScript ファイルに変換し，標準出力に出 します。

-B  標準では，PostScript への変換とプリンターへの送信は入力ファイルごとに行います が，これを 1 度にまとめます。段組み出力時には 1 枚に複数のファイルが隣り 合って出力されたりします。小さいファイルを 1 つのページにまとめたい場合 などに使用します。-p オプション指定時には標準です。

-ffontmap
    フォントを指定します。（詳細は psconv(1) を参照）

使用例
“file.c ” を「80 × 66 縦」（標準設定）の行番号付きで印刷。

    example% prn -n file.c

「80 × 66 × 2 横」で，注釈と予約語を強調，行番号・境界線つき，見出 しなしで出力。

    example% cprn -nst -H2 main.c func.c Makefile

小さいファイル 3 つを 1 枚にまとめて出力。また“common”がそのファ イル名からは B シェルスクリプトととられてしまうので -lf が必要。

    example% cprn -H3 -B -lf main.f func.f common

C のソースファイル全部を，行番号・境界線付きで，太字中心のフォントを使 い，4 タブ文書として印刷。

    example% cprn -V2 -4 -nsb *.c

標準的な日本語マニュアルを 1 枚に 3 ページずつ印刷。

    example% man ls | prn -H68-66-3 -jst

ファイル

/usr/local/bin/cmt
    注釈と予約語の強調処理
/usr/local/lib/cmtdefs
    cmt(1) の言語定義データベース
/usr/local/bin/psconv
    文書を PostScript に変換する
/usr/local/bin/kcc
    日本語コード変換フィルター

関連項目
cmt(1), psconv(1), kcc(1), lpr(1)