psfragの日本語文字化けについて (MacTeX2013)

psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
返信数: 31
tgifで描いた図をepsで出力

texのソースにpsfragを用いて文字の変換などを記述

ターミナルで「platex filename」と打ってreturnキー

出来上がったdviファイルをターミナルで「dvips filename」と打ってreturenキー

変換して出来たpsファイルをプレビューで表示

以上の手順でやりました。
プレビューで表示した時、postscript変換エラーで「IPAMincho-H not found, using Courier.」と出て、確認すると日本語に変換しようとした箇所で文字化けが起きました。
psファイルをのせるので、文字化けの確認と解決策をご教授ください。
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- Z. R. の投稿

確認ですが:
普通の pLaTeX 文書、つまり「EPS 画像の挿入はないが、日本語の文字を含む」文書は platex → dvips → プレビューで正しく表示されますか?

Z. R. への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
はい、正しく表示されます。
psfragを使わずにEPS画像を挿入した日本語文章も正しく表示されます。
しかしEPS画像+psfragをすると、文章中の日本語も文字化けしてしまいます。
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- tat tsan の投稿
当方Linux環境ですが、添付されたファイルは特にエラーも
出ずに表示されました。日本語は「わっはっは」のみでした。
tat tsan への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- tat tsan の投稿
tgif が出力する eps には tgif で設定した日本語フォント指定が書き込まれます。
これを TeX で処理して dvips で出力したps ファイルには、TeX で設定した日本語
フォントとtgifで設定した日本語フォントの両方の指定が書き込まれます。
TeX用にフォント設定されたGhostscriptに、tgifのフォントが設定されていない
のかも知れません。
%% とは言え「IPA明朝が表示できない」ってのも変ですね。

(確認) tgif の図に直接日本語を記入しませんでしたか?

たとえ英文しか記入されていないように見えても、入力時の最初に日本語モードに
なっていて、それを英語に切り替えて英文を記入したときには、出力されたepsには
日本語のフォント指定が残ってしまいます。

tgifのepsに日本語指定を一切残さず、日本語はすべて psfrag 経由の置換で行なうと
文字化けしないかも知れません。

tat tsan への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
Linuxでは「わっはっは」が表示されたと言うことは、正しく表示されるということですね。
ご確認ありがとうございます。
tgifですが、日本語入力機能は一切つけてなく、表示はすべて英語です。
ただtgifのソースを書き換えた覚えがあるので、元に戻してみます。

おそらく「プレビュー」自体のエラーだと思われます。


追記
macでpsをpdfに変換する方法があれば教えてください。
プレビューでは変換エラーが起きてしまうため、他の方法をお願いします。
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
またまた追記です。
ghostscriptのps2pdfで変換を試みてみました。

$ ps2pdf filename

でpsをpdfに変換したところ、見事に文字化けしていました。
Linuxでは正しく表示されたということなので、おそらくpsをpdfに変換する際にエラーが起きているものと思われます。
他の手段はないのでしょうか。

psfragという名の通りpsに変換する際に強引に文字を置き換える手法なので、dviから直接pdfに変換するdvipdfmxを使っても無意味ですし、今のところ手詰まりです。

amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- Akira Kakuto の投稿
PS名 IPAMincho を持つフォントは,実際には TrueType フォントなので,
Ghostscript の cidfmap に,実フォントファイルに結びつける記述が
ないと,だめなのだと思います。
Akira Kakuto への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
なるほど・・・
では、実際にどうすればいいのでしょうか。
cidfmapに書き足せばいけますか?
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- Akira Kakuto の投稿
例:

/IPAMincho << /FileType /TrueType
/Path (/usr/share/fonts/truetype/ipa/ipam.ttf)
/SubfontID 0 /CSI [(Japan1) 6] >>
Akira Kakuto への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- Akira Kakuto の投稿
例:

追加部分の例を添付してみます。
Akira Kakuto への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
大体の理由が分かったかもしれません。
そもそもですが、「IPAMincho-H」なんてフォントを私は持っていませんから文字化けするはずです。
IPA明朝ならありますが、Hタイプのは以下のサイトでも配布されていませんからフォントをインストールできません。
http://ipafont.ipa.go.jp/ipafont/download.html

もしかすると、これはpsfrag.styに問題があるのでしょうか?

それ以外でも解決策があればお願いします。


追記
psファイルをテキストエディットで開いてみると、IPAMincho-Hと書かれた項目がありました。
なので、dviからpsに変換する際に文字を「IPAMincho-H」に指定されたのかもしれません。
この指定を変えることが出来ればいけそうなのですが・・・
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- tat tsan の投稿
IPAMincho-H の「-H」は CMapテーブルの指定で、フォント名の一部ではありません。
ですので普通のIPA明朝がインストールされていれば、表示は可能です。

ps2pdf は ghostscript を用いた変換スクリプトですので、まずは角藤先生の添付された
ghostscriptの設定例を試してみることをお勧めします。

ただ私は「psfragを使用しなければ日本語が表示できていた」という事実が気になります。
この表示できていたときのpsの日本語フォント指定も、 grep -i documentfont などで
調べてみた方が良いと思います。また tgifの生成した eps も調べてみて下さい。
tat tsan への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
私は普段Texworksを使っており、そのためタイプセットをすると自然にdviを作ってpdfを出力してくれるので、いちいちターミナルでplatex→dvips→ps2pdfないし、platex→dvipdfmxをしたりしていませんでした。
そこで過去に作った書類をいつもの手順と違うplatex→dvips→ps2pdfのやり方でやってみました。
すると、ps2pdfの手順でターミナルにエラーメッセージが表示されました。
一応出来上がったpdfをみると、日本語が全て文字化けしていました。
いままで気づかなかったのですが、結構異常です。
このときはps自体をプレビューで開けませんでしたが、texソースのプリアンブルに、
usepackage[dvipdfmx]{graphicx}
と書いていたので、オプションを[dvips]に変えてplatexを実行すると、psファイルをプレビューで見ることが出来ました。

しかしこのときも日本語が文字化けしていましたから、すいません嘘言っていました。
いつもtexworksの「command + t」でタイプセットをやっていたので気づきませんでした。

原因はplatexのときに日本語がIPAMincho-Hに設定されているものだと思われます。
私はこのフォントをどうやっても表示できないので、ヒラギノで表示したいと思います。

駄文ですが、やり方があれば教えてください。
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- tat tsan の投稿
[1] これまでの環境で出力するなら
普段 dvipdfmx をお使いになっているのに dvips が必要になるのは
psfrag が dvipdfmx に対応していないからですよね。ならば

(1) psfrag.sty の代りに overpic.sty を用いる。奥村先生の
http://oku.edu.mie-u.ac.jp/~okumura/documents/texconf11.pdf
の77ページから説明があります。
(2) tgif の図はPDFで出力する。既存の図はPDFに変換する。

[2] dvips による出力環境も整備するなら、ヒラギノを利用可能にする。
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Mac#i9febc9b

tat tsan への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
[2]をやりました。
しかし、psは文字化けしたままです。
他にやるべきことはありますか?


追記
psをプレビューで開いた際のエラーメッセージです。

· HiraMinPro-W3-UniJIS-UTF16-H not found, using Courier.
· HiraKakuPro-W3-H not found, using Courier.
· HiraMinPro-W3-H not found, using Courier.

ですが、埋め込みはやったはずです。
何が問題なのでしょうか。
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- tat tsan の投稿
シンボリックリンクが正しく作成されていないのではありませんか。

kpsewhich -format=.otf HiraMinPro-W3.otf

の結果はどうなりますか。
tat tsan への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- tat tsan の投稿
tat tsan への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
texworksはdviを出力してからdvipdfmxでpdfを作ってしまうので、psfragは使えません。
なので関係ないと思います。
tat tsan への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
/usr/local/texlive/2013/../texmf-local/fonts/opentype/hiragino/HiraMinPro-W3.otf

こう出ました。
これでいいのでしょうか。
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- tat tsan の投稿
TeXの側からはちゃんと認識されていますね。

過去に類似のスレがありました。これも解決していませんね。
https://okumuralab.org/tex/mod/forum/discuss.php?d=933

結局つぎのような事でしょう。

(1) dvips での日本語フォントの「埋め込み」は、フォント自体を埋め込んでいるのではなく
Ryuminなどの仮のフォント名を実際に用いるフォント名に置き換えているだけ。
なので ps のインタプリタがそのフォントを探し出せねばならない。

(2) ghotscript の設定なら、先の角藤先生の投稿を参考にすればよい。
これで ghostscript でプレビューすることはできるはずです。
あるいは ps2pdf でPDFにしてからプレビューできる。

(3) Mac のプレビュアーについては、すみません、私にはわかりません。
ただおそらく、このプレビュアーの設定で解決すると思われます。
# もしかしたら「非埋め込み」にすれば、Ryuminなどからの代替を
# やってくれるかも

とりあえず(2)が出来るようにしてみては如何でしょう。


amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- Akira Kakuto の投稿
プレビューが Ghostscript に関係しているとは思いませんが,参考までに。
Ghostscript で OpenType フォントを使うには,かなりの準備が必要です:

(1) Resource/CIDFont/ に PostScript 名でフォントを置く
(2) Resource/Font に HiraMinProN-W3-H なる名前で
内容が /HiraMinProN-W3-H /H [/HiraMinProN-W3] composefont pop
のようなファイルをそれぞれのフォントに対して置く。

W32TeX の場合は ps2otfps.exe を使うことにより,(2) は不要に
なっています。
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- TAKENO Shigeharu の投稿
Tgif の日本語フォントの設定は、 X のリソース (Tgif.SquareDoubleByteFonts) で行われているので、それを適切なフォント名に変えるのが多分簡単だと思います。

ターミナルで xrdb -q とすれば、現在のリソース値が確認できます。

別解としては、tgif が出力する ps or eps ファイルの日本語フォント名を sed 等で変換してしまうことでしょうか。

sed 's/IPAMincho/Ryumin-Light/g' in.ps > out.ps

好ましくはないかもしれませんが、多分それほど実害もないと思います。

TAKENO Shigeharu への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
私が使っているTgifは日本語化していないので、関係ないと思います。
単にpsからpdfに変換する際に文字化けが起きているので、それの解決法はないのでしょうか。
上記のGhostscriptの設定もよくわからないので何も出来ません。
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- tat tsan の投稿
今は ghostscript-fonts-hiragino という ports は無いんでしょうか。
sudo port install ghostscript-fonts-hiragino
で ghostscript から ヒラギノが使えるようになったという記事を見かけます。
前の私の書き込みの参照記事にも書いてありました。
tat tsan への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
日本語化されたGhostscriptにならありますが、MacTeX標準搭載のGhostscriptにはないようです。


遅くなりましたが、問題が解決しました。
まずIPAMincho-Hというのが何なのかが当初分からずフォントの名前なのかと思っていました。
ですが実際は「どのフォントを使うかを指定したテキスト」であったことが分かりました。
IPAMincho-Hと言うからにはipam.ttfを使うべきですが、私はヒラギノ(HiraMinPro-W3)を使うように設定しました。
添付テキストに書いてある通りです。

これをGhostscriptのResourceに置いてps2pdfを使うと文字化けせずに出力されました。
ただ、psをpdfに変換する際になぜ「IPAMincho-H」を使うように設定されてあるのかは不明です。

皆さんありがとうございました。
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- KUROKI Yusuke の投稿
ようやく今日になって事情が呑み込めた気がするのですが;
TeX システムで,代表的なDVIウェアに対する日本語フォント設定が,IPAフォント埋込みになるような設定をどこかでされていませんか?
たとえば,
kanji-config-updmap-sys ipa
といったコマンドを過去に実行していた,など.

PSファイルの時点で /IPAMincho-H が書かれているならば,PSを解釈するソフト(Ghostscript 本体やそれを使う ps2pdf, Ghostscript とは関係ないMacのプレビューなど)が,/IPAMincho-H を解釈できるようにしてあげないといけないわけですね.
KUROKI Yusuke への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- amano ikumi の投稿
覚えていませんが、そうしたかもしれません。
さっきターミナルで、
$ sudo kanji-config-updmap-sys hiragino
と設定しました。
ただ、これでもプレビューでは表示できませんでした。
プレビューで/IPAMincho-Hを解釈させることは出来るのでしょうか?
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- KUROKI Yusuke の投稿
kanji-config-updmap-sys が行うことは,TeXシステムの日本語埋め込み設定ですので,この設定をした後にタイプセットしたものに反映されます.ipa の設定で以前にコンパイルした仕上がりが変更されるわけではありません.

また,
> プレビューで/IPAMincho-Hを解釈させることは出来るのでしょうか?
については,Macプレビューの開発元へfeature requestを投げるほうが早いと思います.
amano ikumi への返信

Re: psfragの日本語文字化けについて (MacTeX2013)

- TAKENO Shigeharu の投稿
勘違いしておられるのではないかと思いますが、あなたのおっしゃる「Tgif の日本語化」と
はメニューの日本語化のことではないでしょうか。Tgif.SquareDoubleByteFont とは、
メニューの日本語化とは関係ありません。私よりもっと説明のうまい人が説明すればいい
のだと思いますが、一応説明します。

Tgif の図の中であなたが日本語を書いたときに、その日本語に PostScript フォント名
が割り当てられ、PS や EPS ファイルとして出力するときに、その文字列にそのフォント
名が割り付けられて出力されているのですが、Tgif の中でその日本語用のフォント名を
決めているのが、Tgif.SquareDoubleByteFont というリソースです。

Tgif で日本語を入力するときに、「あ」とかいうものを選んでフォントを日本語にしてから
入力していると思いますが、多分そのときに PostScript フォント名も Tgif の右上、ある
いは下の方に表示されると思います。その設定があなたの場合は IPAMincho-H にな
っているんでしょう。だから tgif はそういうフォント名を含むPSファイルを作るわけです。

PS ファイルに含まれる IPAMincho-H をなんとかそのまま使えるようにしたいなら、gs
や dvips などの設定を修正することになりますが、元々 tgif が出力してしまう
IPAMincho-H とかいう PSフォント名を、もっとより普遍的な Ryumin-Light-H とか
いう名前に変えたいなら、tgif の設定を変えることになります。

ちなみに、Tgif は、IPAMincho-H という設定がされていれば、そのようなフォントがある
かどうか、そのフォント名が正しいかどうか、などは全く考えずに、日本語に対してそういう
名前の PS フォント名を出力します。

あなたが自分の ~/.Xdefaults を変更してないのであれば、システムのデフォルトの
X のリソースファイルか、Tgif 用のデフォルトのリソースファイルでそう設定されているの
でしょう。しかし多分あなたの~/.Xdefaults に設定をすれば、それがシステムの設定を
上書きしてくれるのではないかと思います。詳しいやり方については、あなたのシステムに
関する X のリソースの変更方法の説明をインターネットなどで探してください。

私は Mac は使いませんので、状況は詳しくは知りません。xrdb や sed は、そちらの
環境での説明としては不適切だったのかもしれません。どうもすみません。