名前: 大足 日時: 2004-06-20 03:21:03 IPアドレス: 219.107.228.*
お世話になります. かなり周縁的かつ些末なことで申し訳ないのですが,質問させていただきます. 概要 ArabTeXのヘブル・モード(hebTeX)で生成したdviファイルをdvipdfmxで,ArabTeXに同 梱のヘブル文字のType 1フォントを埋め込んでPDFファイルを作成したところ,Acrobat上 ではきちんと表示されるのですが,PSプリンタに出力すると フォントをダウンロード中にエラーが発生しました.この文書が正しく印刷されない 場合があります. というエラーを出してしまいます.ファイルに出力すると一応PSファイルはできるので すが,ヘブルを使用した場所だけ不正な表示になります.また,Acrobatでepsに保存し, それを開いても同様です. これは同梱のヘブル文字のtype1フォント(hclassic.pfb, hcaption.pfb)で発生し,map 内の記述をコメントアウトしてtype3とすれば問題ありません.またアラビア文字のtype1 フォント(xnsh14.pfbなど)では発生しません.さらにdvipdfmでpdfにしても発生しません. この問題の原因と回避方法を教えて頂ければ幸いです. 環境 ・WindowsXP Professional SP1 ・角藤版6月12日フルインストール(dvipdfmxのみ17日版) ・ArabTeX Ver. 3.11k hecmd.styは27680における稲垣さんのパッチ適用 apatch.styは8bit部回避のため1298行目をコメントアウト ・Mapファイルはupdmapによりpdfmnt.mapに xnsh14 none xnsh14 xnsh14bf none xnsh14bf hclassic none hclassic-4 hcaption none hcaption-4 以下,私が試してみたことです(本筋に関係ありそうなことのみ). まず,かなり単純なヘブル文字アリフのみのソースc:\test\test.texを作りました. \documentclass{article} \pagestyle{empty} \usepackage{hebtex} \begin{document} \sethebrew \novocalize \<a> \end{document} platexで処理→特にエラーなし dvioutで表示→特にエラーなし dvipdfmxで処理 C:\test>dvipdfmx -vv test test.dvi -> test.pdf DVI Comment: TeX output 2004.06.20:0211 [1<hclassic@127.52pt(TFM:hclassic[c:/usr/local/share/mytexmf/fonts/tfm/ arabtex/hclassic.tfm]) fontmap: hclassic -> hclassic-4 >](hclassic-4[./hclassic-4.pfb][TeX-hclassic][Built-in][Type1](AGL:glyp hlist.txt[c:/usr/local/share/mytexmf/dvipdfm/config/glyphlist.txt])[2 g lyphs][332 bytes]) Compression eliminated approximately 69 bytes 1966 bytes written となり,Acrobatで見ると正常に表示.C-dでフォント情報を見ると TeX-hclassic(埋め込みサブセット) 種類:Type 1 エンコーディング:ビルトイン とこれも正常に見えます.しかしPSプリンタに出力すると,概要に書いたエラー が出ます. そこでplatexではなくlatexで処理しても同様でしたので,dvipdfmxではなく dvipdfmで処理してみました. C:\test>dvipdfm -vv -o test2.pdf test test.dvi -> test2.pdf DVI Comment: TeX output 2004.06.20:0211 [1<hclassic@127.52pt(TFM:c:/usr/local/share/mytexmf/fonts/tfm/arabtex/hcl assic.tfm) fontmap: hclassic -> hclassic-4 >](PFB:./hclassic-4.pfb Embedding 2 of 257 glyphs (subsetting eliminated 9714 bytes) Embedded size: 2143 bytes ) Compression eliminated approximately 700 bytes 3624 bytes written pdfは見ることができ,フォントの情報も上と同じで,かつPSプリンタに出力できました 次に両者の違いを見るためにpdffontsを実行しました. C:\test>pdffonts test.pdf name type emb sub uni object ID ------------------------------------ ------------ --- --- --- --------- YONEBU+TeX-hclassic Type 1C yes yes yes 4 0 C:\test>pdffonts test2.pdf name type emb sub uni object ID ------------------------------------ ------------ --- --- --- --------- FHOKHM+TeX-hclassic Type 1 yes yes no 9 0 のようになり,dvipdfmxを通した方は,unicodeマッピングになっていました. これまでアラビア文字で書いたものはdvipdfmxで処理し,PSプリンタにも出力できたの で,今度はサンプルファイルをアラビア語モードにしたtest_arab.texを作成し,上記の 処理を行いました. \documentclass{article} \pagestyle{empty} \usepackage{arabtex} \begin{document} \setarab \novocalize \<a> \end{document} C:\test>dvipdfmx -vv test_arab test_arab.dvi -> test_arab.pdf DVI Comment: TeX output 2004.06.20:0241 [1<xnsh14@14.35pt(TFM:xnsh14[c:/usr/local/share/mytexmf/fonts/tfm/arabtex/xn sh14.tfm]) fontmap: xnsh14 -> xnsh14 >](xnsh14[./xnsh14.pfb][xnsh14][Built-in][Type1](AGL:glyphlist.txt[c:/usr/lo cal/share/mytexmf/dvipdfm/config/glyphlist.txt]) ** WARNING ** 1 glyph names (out of 1) missing Unicode mapping. ** WARNING ** ToUnicode CMap "CGTEIA+xnsh14-UTF16" removed. [2 glyphs][224 bytes]) Compression eliminated approximately 4294967256 bytes 1531 bytes written C:\test>dvipdfm -vv -o test_arab2.pdf test_arab test_arab.dvi -> test_arab2.pdf DVI Comment: TeX output 2004.06.20:0241 [1<xnsh14@14.35pt(TFM:c:/usr/local/share/mytexmf/fonts/tfm/arabtex/xnsh14.tf m) fontmap: xnsh14 -> xnsh14 >](PFB:./xnsh14.pfb Embedding 2 of 234 glyphs (subsetting eliminated 37595 bytes) Embedded size: 4006 bytes ) Compression eliminated approximately 618 bytes 6514 bytes written そして両者ともPSプリンタに正常に出力できます. よく見てみるとdvipdfmxで処理した場合に警告が出ています. これを見ると,アラビア語フォントの場合でもcmapを探しに行ったものの,グリフ名 に一致するものがなかったので,組み込みエンコーディングを使用したということのよ うです.正常にPSプリンタに出力できるものはAcrobatのプリフライトで見ても, フォントに組み込みエンコーディングを使用」となり,エラーを出すものは「Unicode CMapがあります」になっています. そうなるとヘブルの場合にこの警告は表示されていなかった=Unicode CMapでグリフ 名を見つけた,ということなのでしょう.そしてUnicode Cmapを使用,ということになっ ているのだと考えました.とすると,結論はUnicode Cmapが誤って使用されているため PSプリンタに出力できない,ということになります. しかし,なぜCmapがヘブルの場合に使用され,アラビア文字の場合に使用されないの か,よくわかりません.t1asciiでtfaにしてグリフ名があやしいと思ってごちゃごちゃ やったり,いろいろしましたが,結局,原因特定,解決には至っておりません. textraceでmfからフォントを生成するという方法も思いついたのですが,残念ながら textraceがテストの段階でつまずいてしまったので,こちらは試していません(この件 については,もうすこし色々見て,そのあと質問させていただくかもしれません). 私はマクロやPostScriptの中身はまったくわかりませんので,上記は完全に見当違い かもしれませんが,どうかご容赦のうえ,ご回答あるいは情報をお寄せくだされば幸い です. 以下に検証に必要と思われるリンクを示します. ・ArabTeX ftp://ftp.dante.de/tex-archive/language/arabtex/arabtex.htm フォントは上記サイトのアーカイブにもはいっていますが ftp://ftp.ring.gr.jp/pub/text/CTAN/languages/arabtex/psfonts/ などから直接入手できます(ArabTeXそのものも). ・hcmd修正版 http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/27680.html 参照 ・私の実験 http://web.mita.keio.ac.jp/~mb030025/test.zip 上記のtest.pdf,test2.pdf,teat_arab.pdf,test_arab2.pdf, test_output.eps(test.pdfをPSプリンタに対し「ファイルで出力」をしたもの) をまとめたtest.zipを置いておきます. 長文失礼いたしました.
この書き込みへの返事: