前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

2419 re(1):日本語付き eps
2011/1/21(金)14:38 - 竹の - nolm01.iee.niit.ac.jp - 896 hit(s)

引用する
現在のパスワード


Shift_JIS 文字列が enhanced モードで文字化けしてしまう、という問
題ですね。これは実は厄介な問題です。

日本語の Shift_JIS コードの 2 バイト目は 7bit コード (0-127) に
なっているものがあり、gnuplot のようにフォントをマルチバイト処理
していないプログラム (そのままスルーする) では、文字の 1 バイト
ずつの処理が行われると、通常の 7bit コードと誤認識される可能性が
あります。

「円板を打ち抜く」も、「円」の 2 バイト目が 126 (~ と同じ) である
ために enhanced mode ではそれが特殊文字として処理されてしまうわけ
です。だから enhanced mode でなければ問題はありません。

cf. http://takeno.iee.niit.ac.jp/%7Eshige/unix/gnuplot/gpinfo-2004.html#info-20041106

回避策としては、もしそのタイトルには enhanced モードを適用しなくて
よいのであれば、

set title "..." noenhanced font "..."

のようにする手があります。もし、そのタイトルに enhanced モードを適
用しないといけない場合は厄介ですが、以下のような方法が考えられます。

1) enhanced モードを必要とする文字列と必要としないものを別に書く

これは、set title ではなく、set label を使って書き分けるという方法
で、enhanced モードを必要としない方には上のように noenhanced オプ
ションを使って書きます。ただし、位置の調整や、文字列の分離がちょっ
と面倒です。

2) Shift_JIS を使わない

これは、スクリプトを EUC-JP や UTF-8 などで書いて、フォントの
GothicBBB-Medium-XXXX-H の XXXX の部分を EUC や UniJIS-UTF8 など
にしてしまう、という手です。EPS としては問題ないものができると思
いますが、コードを変えるのが面倒でしょうか。

3) そのような特別な文字を 8 進表記にする

これは、円 =「137 126」なので 8 進表記で "\211\176" のように指定
する方法です。'{\211\176}板を打ち抜く' (単一引用符であることに注
意)、または "{\211\134\176}板を打ち抜く" (二重引用符であることに
注意) のようにします。なお、\134 は '\' に相当し、これが \176 に
対するエスケープ記号として機能します。

4) できた EPS ファイルを修正する

これは、出力された EPS ファイルをエディタなどで修正する、という方
法です。EPS ファイルは単なるテキストファイルですから、簡単に修正
可能です。gnuplot では title を仮の文字列にしておいて、できた EPS
ファイルのその文字列を awk や sed などのフィルタで変換する、とい
う手もあります。

5) ちょっと無理矢理な方法

例えば「円 (137 126)」の間に無理矢理エスケープ記号を埋める、という
方法もあります。126 の部分をエスケープするためにエスケープ記号 '\'
(92) を 137 と 126 の間に割り込ませて入れる、というかなり強引な手
法ですが、今の場合には「噂 (137 92)」を使うとそれが可能です。つま
り、'噂~板を打ち抜く' (単一引用符) か "噂\~板を打ち抜く" とすると、
先頭の部分は「137 92 126」と認識されるので、出力には正しく「円」と
書き出されます。


〔ツリー構成〕

【2418】 日本語付き eps 2011/1/21(金)09:45 skasai (650)
┣【2419】 re(1):日本語付き eps 2011/1/21(金)14:38 竹の (2555)
┣【2420】 re(2):日本語付き eps 2011/1/21(金)18:13 skasai (285)
┣【2421】 re(3):日本語付き eps 2011/1/22(土)04:51 松岡 (589)
┣【2422】 re(4):日本語付き eps 2011/1/22(土)05:38 松岡 (301)
┣【2431】 re(5):日本語付き eps 2011/1/24(月)13:11 skasai (1001)
┣【2432】 re(6):日本語付き eps 2011/1/24(月)14:01 竹の (102)
┣【2433】 re(7):日本語付き eps 2011/1/24(月)16:02 skasai (283)
┣【2434】 re(8):日本語付き eps 2011/1/25(火)03:44 松岡 (545)
┣【2435】 re(9):日本語付き eps 2011/1/25(火)08:30 松岡 (597)
┣【2441】 re(10):日本語付き eps 2011/1/28(金)03:14 松岡 (458)
┣【2425】 re(4):日本語付き eps 2011/1/22(土)17:58 竹の (614)
┣【2426】 re(5):日本語付き eps 2011/1/22(土)19:46 竹の (582)
┣【2429】 re(6):日本語付き eps 2011/1/22(土)20:04 松岡 (287)
┣【2436】 re(7):日本語付き eps 2011/1/26(水)16:12 竹の (860)
┣【2437】 re(8):日本語付き eps 2011/1/27(木)03:43 松岡 (210)
┣【2438】 re(9):日本語付き eps 2011/1/27(木)08:53 竹の (775)
┣【2439】 re(10):日本語付き eps 2011/1/27(木)10:17 松岡 (880)
┣【2427】 re(5):日本語付き eps 2011/1/22(土)19:46 松岡 (699)
┣【2428】 re(6):日本語付き eps 2011/1/22(土)20:02 松岡 (748)

前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.