pbmf.sty について                              Oct. 25, 1993 八雲  これは、PBMファイル読み込み機能付きdviout/dviprtで 、PBM形式のビットマップ データをLaTeX文書に取り込むためのマクロです。 (このマクロは、風間さん&磯崎さん作の(ecl)epsf.styを元にして作りました。) 【機能】   指定されたサイズの枠をあけて、PBMファイルを取り込みます。  (Ver.0.5d から、monochrome GIFファイル取り込み用マクロも追加されました。) 【必要な設定】   scaleオプション用に、プリンタの解像度を\pbmhdpiと\pbmvdpi に設定する必要  があります。 \pbmhdpiが水平方向、\pbmvdpiが垂直方向の解像度で、単位はdpiで  す。自分の使っているプリンタの解像度に設定して下さい。   デフォルト値の設定は、pbmf.styの51,52行目で行っています。  \pbmhdpi=360%<---- プリンタ水平方向解像度のデフォルト値  \pbmvdpi=360%<---- プリンタ垂直方向解像度のデフォルト値 【使用方法】   file=の後にraw PBM形式のファイル名を書きます。 正しい例1:\pbmfile{file=foo.pbm} ^^^^^^^ ファイル名   出力サイズを指定するオプションとして、width,height,scale,hscale,vscaleの  5種類が使えます。   基本的に(ecl)epsf.styでの\epsfile{file=...}の代わりに\pbmfile{file=...}  を使うというだけで、オプションのサイズ指定方法は(ecl)epsf.styと同じです。 (1)width,heightオプション   width=,height=を使った場合、cmやptなどの単位で、出力画像の幅と高さを指定  できます。widthまたはheightの片方のみ指定した場合は、元の画像の縦横比から  残りのサイズが決定されます。例えば、元の画像が200x100の場合に、width=5cmと  だけ指定された場合は幅5cm、高さ2.5cmの画像が出力されます。 正しい例2:\pbmfile{file=foo.pbm,width=3cm} ^^^^^^^ ^^^^^^^^^ ファイル名 サイズ指定オプション 正しい例3:\pbmfile{file=foo.pbm,width=100pt,height=70pt}  【注意】オプション指定の前に空白を入れてはいけません。      正常に処理されない可能性が高いです。  悪い例:\pbmfile{file=foo.pbm, width=5cm, height=3.5cm} ^空白 ^空白 (2)scaleオプション   scale=を使った場合、元の画像に対する倍率で出力画像のサイズを指定できます。  例えば、元の画像が640x400の場合に、scale=2と指定した場合は幅1280ドット、高  さ800ドットの画像が出力されます。また、hscale=とvscale=は、幅と高さの倍率を  独立に設定したい場合に使用します。 正しい例4:\pbmfile{file=foo.pbm,scale=2} 正しい例5:\pbmfile{file=foo.pbm,hscale=1.5,vscale=1.2} (3)文字列等を画像の上に上書きする方法   (ecl)epsf.styでの\epsfatに対応するものとして\pbmfat、\pbmfon、及び  \ovpbmfon が用意されています。これらを使うことで、画像の中に適当な枠を空け  て文字列等を上書きすることができます。\pbmfatは透過形、\pbmfonと\ovpbmfon  は非透過形です。\pbmfonは四角い枠を、\ovpbmfonは角の丸い四角い枠を空けます。   \pbmfonと\ovpbmfonはdviout/prtのtpic specialsを用いて実現していますので、  "-tpic"オプションがオンになっていないと使用できません。   \epsfatを使ったことのある方は、位置指定に注意してください。\epsfatでは原  画像上の座標で指定しますが、\pbmfat,\pbmfon,\ovpbmfon では拡大縮小された出  力画像上の座標で指定します。 例6:\pbmfile[\pbmfat(1cm,1.5cm){サンプル画像1}]{file=foo1.pbm} 例7:\pbmfile[\pbmfon(1cm,1.5cm){サンプル画像2}]{file=foo2.pbm,scale=2}  例8:\pbmfile[\ovpbmfon(10mm,12mm){サンプル画像}]{file=foo.pbm} ^^^^^^^^^ ^^^^^^^^^^^^ 位置指定  上書きする文字列 (4)mono GIF形式のデータを取り込む場合   monochrome GIFの場合は、\giffile{file=...}を使って下さい。ただし、GIFの場  合、scale、vscale、hscaleオプションを使うためには、orgsizeというオプション  で元の画像の幅と高さを設定する必要があります。   一方、orgsizeが設定されていない場合は、widthとheightの両方必要です。   \epsfileや\pbmfileの様に片方を省略することはできません。 正しい例9:\giffile{file=foo.gif,orgsize=640x400,width=4cm} 正しい例10:\giffile{file=foo.gif,orgsize=400x400,scale=2} 正しい例11:\giffile{file=foo.gif,width=4cm,height=3cm} 【使用例】 [例12]:foo.pbmというPBMファイルを読み込んで、幅を5cmに指定して出力する。  (この場合、高さは縦横比から自動的に計算されます)  \documentstyle[12pt,pbmf]{jarticle}  \begin{document}  This is test image.  \frame{\pbmfile{file=foo.pbm,width=5cm}}  Test image.  \end{document} [例13]:foo.pbmというPBMファイルを読み込んで、2倍に拡大して出力する。  (例えばPBMデータが150x100の場合、300x200dotsでプリンタに出力されます)  \documentstyle[pbmf]{jarticle}  \begin{document}  This is test image.  \pbmfile{file=foo.pbm,scale=2}  Test image.  \end{document} [例14]:foo.pbmというPBMファイルを読み込み、画像の中に"Hello!" という文  字列を上書きして出力する。その位置は、画像の左下から右に2cm、上に1cmの所に  なります。  \documentstyle[pbmf]{jarticle}  \begin{document}  This is test image.  \pbmfile[\pbmfon(2cm,1cm){\fbox{\large Hello!}}]{file=foo.pbm}  Test image.  \end{document} [例15]:foo.pbmというPBMファイルを読み込み、画像の中に"Hello!" という文  字列を角の丸い枠を空けて上書きする。枠線の太さを0.6pt、角の丸みの半径を3mm  にしています。(pbmf.styのデフォルトは各々0.4pt,2mmになっています)  \documentstyle[pbmf]{jarticle} \ovrulewidth=0.6pt \ovradius=3mm  \begin{document}  This is test image.  \pbmfile[\ovpbmfon(2cm,1cm){\large Hello!}]{file=foo.pbm}  Test image.  \end{document} 【問題点】   pbmf.styはPBM形式を完全にサポートしているわけではありません(;_;)。  以下の様なフォーマットのPBMファイルは正常に処理されます(pbmplusライブラリ  で他の画像形式からPBMに変換したファイルやGhostScriptのpbmraw出力は、この形  式のはずなので、正常に処理されると思います)。 P 4 0x0a : 3 byte, 最初の "P4" は、ID # 0x0a : コメント行 ......... : (任意バイト x 任意行) 0x20 0x0a : 横と縦のドットサイズ ........ : binary image-data , は、通常の 10進数です。   raw PBMの正式なフォーマットでは、P4, ,  の次の 1 byte として、0x20, 0x0a, 0x0d, 0x09のいずれかが認められていますが、  pbmf.styでは上記フォーマット以外は正常に処理されないと思って下さい。