dviout: "no match -DPI=300" の warning

名前: 井汲 景太
日時: 2012-11-08 21:43:52
IPアドレス: 218.216.75.*

dviout で、プレビューは 300 dpi、印刷は 600dpi の解像度になるようにして 使っています。手順は、dviout の help の Q&A→印刷関連→印刷の際はプレビューの際とパラメータを変えたい に従っています。 あるバージョンの dviout から、42627, 45243 と同様に、 印刷終了時に dviout の warning window が開いて Illegal Args(1/1) no match -DPI=300 と表示されるという症状が出ています。もう何年も煩わしく感じていたのですが、 先日その原因かもしれないものを見つけたので、dviout に詳しい方に見ていた だければと思います。 ひょんなことから、この warning は、dviout を dviout -DPI=300 DVIファイル名 のように起動したときに出るものと同じであることに気づきました。そこで、 「dviout 内部で、"DPI" という間違ったパラメータ名で呼び出しを行っている 箇所があるのではないか?」と推測し、dviout のソース(バージョンは dviout3184-source)に grep をかけてみた所、次のような箇所に行き当たり ました。 printbmp.c: 524行目〜526行目 SetParaInt("dpi", old_xdpi); if(old_xdpi != old_ydpi) SetParaInt("DPI", old_ydpi); 1597行目〜1599行目 SetParaInt("dpi", old_xdpi); if(old_xdpi != old_ydpi) SetParaInt("DPI", old_ydpi); 関数名や変数名から推測して、「元の dpi 値を復元しようとしている」よう に見えるので、「印刷用に一時的に変更された dpi を、プレビューモードに 戻る際に復元しようとしている」処理のように思えます。ここで大文字の "DPI" を使っているのがまずかったりはしないでしょうか。dviout のヘルプ などから、縦方向の dpi のパラメータ名は "DPI" ではなく "dpiv" である ように思います。 手元で windows の C コンパイル環境まで整える気は起きなくて、自分では 変更した場合の動作は確かめていませんが、どなたか確かめていただければ 幸いです。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)