W32TeX の dvips.exe による powerdot の DVI ファイルの処理の問題

W32TeX の dvips.exe による powerdot の DVI ファイルの処理の問題

- 質問 回答 の投稿
返信数: 7
最近、

W32TeX
http://w32tex.org/index-ja.html

のファイルを更新したところ、powerdot パッケージを使って作った
DVIファイルを dvips.exe で

dvips -Ppdf -D1200 -z -f sample.dvi | bkmk2uni > sample.ps

のように処理すると混乱した状態の PostScript ファイルが作られる
ようになりました。
bin フォルダに kpathsea622.exe を入れ、dvips.exe を約1年前の
5.996 のバージョンのものに戻すと以前と同様に正常な PostScript
ファイルが作られます。
混乱した状態とは、正常の表示の左下の部分が上側の4割程度の部分に
表示され、下側が空白になって表示される状態です。

なお、PDF のしおりに「作戦...」のような文字列を含めようとすると
dvips.exe のバージョンが 5.996 でも 5.997 でも「作く┴...」のように
文字化けしてしまいます。

これらについての対策を教えて頂ければ幸いです。
関連ファイルをまとめたものを sample.tar.xz として添付致します。
この中には、気象庁のサイトから取り出した文章と図で作った
powerdot のスライドが入っています。
よろしくお願い致します。

質問 回答 への返信

Re: W32TeX の dvips.exe による powerdot の DVI ファイルの処理の問題

- Akira Kakuto の投稿
添付ファイルでテストを試みましたが,不足ファイル
があって処理不能です。
おそらく,新しい graphics package との関連で,最後の
special paper size が採用されるように変更したことが,
5.996 との差だと思われます。5.997 で -L0 オプション
を付けると,この点が5.996 と同じになります。

あるいは \usepackage[nosetpagesize]{graphicx}
とすると,graphics package で paper size を変更されなく
なります。

しおりについては,ttk さんの convbkmk を試して下さい。
(ruby が必要)。
Akira Kakuto への返信

Re: W32TeX の dvips.exe による powerdot の DVI ファイルの処理の問題

- Akira Kakuto の投稿
> あるいは \usepackage[nosetpagesize]{graphicx}
> とすると,graphics package で paper size を変更されなく
> なります。

powerdot は \RequrePackage{graphicx} で,graphicx を
前提としているので,上の方法は難しいと思います。
powerdot が新しい graphics package と dvips に対応する
までは,オプション -L0 を使用して下さい。
Akira Kakuto への返信

Re: W32TeX の dvips.exe による powerdot の DVI ファイルの処理の問題

- tat tsan の投稿
\PassOptionsToPackage{nosetpagesize}{graphicx}
が \documentclass{powerdot} よりも前の行に書けます。
 
                                    
Akira Kakuto への返信

Re: W32TeX の dvips.exe による powerdot の DVI ファイルの処理の問題

- 質問 回答 の投稿
御指摘の通り素材にあるべき EPS ファイルが抜けておりました。
申し訳ありません。

気象庁 | 特別警報について
http://www.jma.go.jp/jma/kishou/know/tokubetsu-keiho/index.html

のページにある dai1_image.png という画像の余白を切り取ったものを
LibreOffice の Draw を使って EPS に変換したものですが、紛失した
ため同様に作り直しましたので添付致します (今回の件は、画像の有無の
問題ではないようですが)。

> powerdot が新しい graphics package と dvips に対応する
> までは,オプション -L0 を使用して下さい。

どうも有難うございます。
御指摘の通り

dvips -L0 -Ppdf -D1200 -z -f sample.dvi | bkmk2uni > sample.ps

として望み通りの PostScript ファイルが得られました。
今後、powerdot が dvips 、その他に対応するまで -L0 を付けて使う
ように致します。

一方、しおり (bookmark) の方は、教えて頂いた convbkmk.rb を使って

dvips -L0 -Ppdf -D1200 -z -f sample.dvi > samplex.ps
convbkmk.rb -s samplex.ps
ps2pdf14 samplex-convbkmk.ps samplex.pdf

として samplex.pdf を作ってみましたが、しおりの表示は、bkmk2uni.exe
を使ったときと同様に「作く┴ ...」となっています。
何か使い方を間違っているのでしょうか。
ruby のバージョンは、下のとおりです。

ruby --version
ruby 2.3.3p222 (2016-11-21 revision 9808) [i386-cygwin]
last_commit=ruby 2.2.6

今後ともよろしくお願い致します。

質問 回答 への返信

Re: W32TeX の dvips.exe による powerdot の DVI ファイルの処理の問題

- Akira Kakuto の投稿
> として samplex.pdf を作ってみましたが、
> しおりの表示は、bkmk2uni.exe
> を使ったときと同様に「作く┴ ...」となっています。

確認しました。 Acrobat Distiller で作成すると,
正しいしおりになるので,おそらく Ghostscript の
バグではないかと思います。
Akira Kakuto への返信

Re: W32TeX の dvips.exe による powerdot の DVI ファイルの処理の問題

- 質問 回答 の投稿
確認下さりどうも有難うございます。

dvips が作った PostScript ファイルを bkmk2uni.exe と convbkmk.rb
で変換したものを diff コマンドで比較したところ下に挙げたのように
なりました。

しおりが関係する pdfmark の所は、どちらも正しく UTF-16BE に
変換しているようです。
ということは、「作」の次に「戦」が来ると SumatraPDF や Adobe Reader
の表示がおかしくなってしまうということでしょうか。

試しに「作」の 4f5c と「戦」の 6226 の間に空白文字の 0020 を入れると
「作 戦 ...」と表示されるようになりました。
さらに、<feff4f5cfeff6226 ... のように BOM の feff を入れると、無事
「作戦 ...」と望み通りに表示されるようになりました。

なお、SumatraPDF だと PostScript ファイルのしおりも PDF と同様に
表示されますが、UTF-16BE 文字列の途中の feff を入れると、左詰め
だったしおりの表示が右詰めに変わりました。
SumatraPDF が PostScript のしおりを誤表示するということは、
SumatraPDF が内部でバグのある Ghostscript を使っているという
ことでしょうか。

その後

ps2pdf14 sample-bkmk2uni.ps sample.pdf

として作った PDF を Adobe Reader で読むと、しおりは文字化けせず
表示されるようになりました。

今後、しおりの文字化けが現れたら feff を挟んでみることにします。

$ diff sample-bkmk2uni.ps sample-convbkmk.ps
3961,3962c3961,3962
< SDict begin [/Producer <feff006400760069007000730020002b002000440069007300740069006c006c00650072>/Title <>/Subject <>/Creator
< <feff004c00610054006500580020007700690074006800200070006f0077006500720064006f007400200063006c006100730073>/Author <>/Keywords <> /DOCINFO pdfmark
---
> SDict begin [/Producer (dvips + Distiller)/Title ()/Subject ()/Creator
> (LaTeX with powerdot class)/Author ()/Keywords () /DOCINFO pdfmark
4042c4042
< <feff4f5c6226306e69828981> /OUT pdfmark end
---
> <FEFF4F5C6226306E69828981> /OUT pdfmark end
4045c4045
< <feff4f5c6226306b306430443066306e6ce8610f4e8b9805> /OUT pdfmark end
---
> <FEFF4F5C6226306B306430443066306E6CE8610F4E8B9805> /OUT pdfmark end

$

Akira Kakuto への返信

Re: W32TeX の dvips.exe による powerdot の DVI ファイルの処理の問題

- Akira Kakuto の投稿
>> として samplex.pdf を作ってみましたが、
>> しおりの表示は、bkmk2uni.exe
>> を使ったときと同様に「作く┴ ...」となっています。

> 確認しました。 Acrobat Distiller で作成すると,
> 正しいしおりになるので,おそらく Ghostscript の
> バグではないかと思います。

M. Hosoda さんにより,しおり文字化けに関する
同じ問題が指摘され,gs team によってバグが
フィックスされました。gs-9.21 について
今 32bit 版だけ訂正したものをアプロードしました。
(gs921w32full-gpl.exe).

もうすぐ gs-9.22 がリリースされますが,
もし,ドライバが訂正されていなかったら
こちらで訂正するつもりです。