Re: 罫線(\hrule, \vrule)とdvipdfm

名前: 森本
日時: 2002-04-16 23:54:12
IPアドレス: 63.51.88.*

>>7914 解説を頂きまして,ありがとうございます。 LaTeXなど文章中心の利用では特段問題でもないような話題とはいえ, 意外と見落とされていることかもしれないので,ユーザーのノウハウという 観点でまとめてみます。 > なお、dvi の中には「ある太さである長さで線を引く」と書かれますので > それを如何に実現するか、という問題です。 なぜこういう結果になったのか,これで納得しました。 線の端部形状までは TeX (dvi) の責任ではなく,dviware あるいは 出力装置の責任なのですね。 察するに dvipdfm は,dvi の中の命令を小細工せず忠実に PDF へ変換して いるから,それを「単に WinAPI に変換する」(=EMFスプール?)と, 端部が丸くなって意図と違うものができてしまう,というふうに理解しました。 ということは,今回のケースで正確なプリントを期待するならば, スプール形式は RAW にするのが正しい,という結論になるようですね。 (dvipdfm のマニュアルには書いていないようなので,要注意かもしれません) dvi を dvipsk で一度 PS に落とし,それを ghostscript (GSview) で PDF 化する場合は,スプール形式に関わらず正しく出力できているので, dvipsk(あるいはgs?)は dviout の pacth2 モードと同様,直線を 「外周を描いて中を塗りつぶす」という形式に変換しているのだろうと 想像しています。 -------- 実はこの話題, MusiXTeX で楽譜を書いて PDF で配布する場合, 経験上 dvipdfm のほうが dvipsk + gs よりもはるかに高品質の PDF が 得られるが,連桁の端が丸くなるなどプリンタとの相性問題に左右されやすい, ということで悩んでいて判明した事項です。 以下は議論の本質からは外れ,やや「重箱の隅」です… MusiXTeX で楽譜を書くときに,dvipsk + gs の場合, dvipsk -D600 foo.dvi としたものを,720dpi に設定した GSview で見ると,線(五線と音符の縦の線。 \hrule, \vrule で書かれている)の太さが場所によってまちまちになります。 dvipsk は線の外周の座標を,解像度によって「丸め」ているのかもしれません。 dpi 指定を大きな数(ただし両者の公倍数。例えば -D7200)にすると GSview 上では揃いますが, これを PDF に変換すると,GSview の PDF 変換設定にかかわらず Acrobat Reader 上では画面や低解像度のプリンタで極端に線が太ってしまい, その太さも揃わない(そういう楽譜は非常に見づらい)ので,根本的な解決では ないような気がします。 dvipdfm では,現時点ではいかなる解像度や拡大率でも線の太さは揃いますので, こういった用途で装置の解像度に依存しない PDF を作るなら,dvipdfm を 使うほうが良いようです。 (正しい印刷出力を得るのがユーザーとプリンタドライバの責任になるという リスク?はありますが。) 逆に,連桁は太さが少々違っても良いけれども端が丸くなるのは困るから, dvipdfm で PDF 化するのが前提であれば,\vrule を使わずにはじめから tpic specials で「外周→塗りつぶし」で書いておく,などのアプローチが 必要なのかもしれません。 (1394で紹介したパッケージの改造を検討中です)

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)