Asymptoteで日本語を表示させられませんでした

Asymptoteで日本語を表示させられませんでした

- 椿 四十郎 の投稿
返信数: 20

はじめまして。

奥村先生の美文書作成入門改訂第5版のDVDで、Windows7にTeXとAsymptoteをインストールしました。

本の付録Eにある標準正規分布の密度関数を描く例がうまく動作しません。

labelに日本語ではなく、英単語を入れると

warning: no config file for `download35'

と警告されるものの、PDFファイルを作ってもらえます。

しかし、日本語を入れるとLaTeXを呼び出した後、labelのところに対し、

! Missing $ inserted. ! Not two-byte family. ! Not two-byte family.

! Missing $ inserted. ! Extra }, or forgotten $. ! Missing } inserted.

と叱られた後、

C:\Program Files(x86)\Asymptote/plain_shipout.asy: 8210: runtime: shipout failed

と終了してしまいます。

本に書いてある円の中に文字を入れる例も同じような症状を見せます。

何か対応策がありましたら教えてください。

よろしくお願いします。

椿 四十郎 への返信

Re: Asymptoteで日本語を表示させられませんでした

- Akira Kakuto の投稿
Wiki に書いてあるように,デフォルトの漢字コード Shift-JIS
は使えませんから
texcommand="platex-utf8";
として,漢字コードは UTF-8 とします。
platex-utf8.exe は最近の配布には含まれています。

自動判断になっている場合,コードを UTF-8 にするだけで
よいかもしれません。

Akira Kakuto への返信

Re: Asymptoteで日本語を表示させられませんでした

- 椿 四十郎 の投稿

さっそくのご返信、ありがとうございます。

美文書作成入門に書いてあるように、

texcommand="platex-utf8";

と書き込んだファイルconfig.asyを作り、フォルダ.asyに入れてあります。

platex-utf8.exeもあります。

角藤先生が仰っている方法は、このことでしょうか。

それとも少し違いますか。

椿 四十郎 への返信

Re: Asymptoteで日本語を表示させられませんでした

- Akira Kakuto の投稿
> このことでしょうか。

そうです。それで ok です。ただし,コードを
確かに UTF-8 にしたかどうかを確認してください。
Shift_JIS で書いていないですか?

椿 四十郎 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 山本 和義 の投稿
これは回答ではなくある種の雑談です.なお私は美文書第5版は持っていないので,書籍に依存した質問には何も答えられません.

さて,Asymptote をインストールしてみました.こちらの環境は Windows XP sp3 & ちょっと古い W32TeX であり,本家からインストーラー付きのWindows用のものをダウンロードして,まあ適当にインストールしました.環境設定はここのWikiに従い,なおかつ自分の環境に合わせ

import settings;
tex="latex";
texpath="e:/usr/local/bin";
texcommand="platex-utf8";
dvips="dvips";
dvipsOptions="-Ppdf";
psviewer="e:/usr/local/ghostgum/gsview/gsview32.exe";

という内容の config.asy を %USERPROFILE%\.asy というディレクトリに入れました(インストールしただけで %USERPROFILE%\.asy はできていますね).テストとしてはやはりここのWikiに従い

usepackage("minijs");
import graph;
real dnorm(real x) { return exp(-x^2/2)/sqrt(2*pi); }
size(12cm,8cm,IgnoreAspect);
draw(graph(dnorm,-4,4,operator ..));
label("標準正規分布の密度関数 $y=\frac{1}{\sqrt{2\pi}}e^{-x^2\!/2}$",(0,0.45),S);
xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks);

という内容の file を test.asy という名前で作り,コマンドプロンプトからカレントで "asy test.asy" を実行すると,gsviw が自動的に立ち上がり目的と思しきものが見えています.日本語もちゃんと表示されており何の問題もなさそうです.

%---------------------------------
まだマニュアルをちゃんと読んでいないので,以下は完璧な雑談というか独り言です.

1) config file のデフォルトはプロファイル以下かぁ.あまり好みではないなあ.場所の変更は環境変数でできるようだが,他の方法もあるといいなあ.

2) gsview が即座に表示されるので途中は見えてないかもしれないが,gsview を終了させてからコマンドプロンプトを見ると,

E:\home\temp>asy test.asy
E:\usr\local\bin\dvips.exe: warning: no config file for `download35'

という warning が出ていますね.この warning が出る原因はどこにあるのだろう? 手元では dvips に対しては config.download35 を使うようには指示してはいないので,Asymptote が指示しているような気がする(それともどこかに設定項目があるのか?).無論,config.download35 を作って適当なところにおいておけば,この warning は無くなるのでどうでもよいともいえる話ではあるが.

3) Asymptote 自身は GUI は用意していないようですね.これが用意されれば Windows user がもっと増えると思いますね.デスクトップにできていたショートカットをダブルクリックして出てきた画面を見て,「何これ? もうダメ」という user も多そう.

4) ちなみに上の例は shift-jis でやってみました.ここの Wiki に書かれている通り(でいいかな)これはうまくいってしまう例のようですね.こちらでは漢字コード自動判断の実装がなされたころの W32TeX を用いており,platex-utf8 であっても shift-jis mode で pTeX は動いているような気がしますが... 違うかな,違うかもしれない.ちなみに,texput.log を見ると \showthe... の嵐なので,標準出力なり何なりを通してやり取りを行っているような気がします.ここの部分がうまく動くなら shift-jis でもいいような感じなのかな? いずれにせよ,全然調べていないので,いい加減なことを言っております,はい.
山本 和義 への返信

Re: Asymptoteで日本語を表示させられませんでした

- Akira Kakuto の投稿
%USERPROFILE%\.asy は私も好きではないので,
ASYMPTOTE_HOME を定義しています。

> platex-utf8 であっても shift-jis mode で pTeX
> は動いているような気がしますが... 違うかな

最近の platex-utf8.exe と platex-euc.exe は, platex の
エンジンを eptex に切り替えたのを忘れていたので,使えない
ものだったのですが (platex.fmt が無いと言って怒られ,
何度やっても,mktexfmt が走ってしまう。今日気がついて訂正し
ました) 山本さんの手元のものは,platex のエンジンが ptex
であった頃の幾分古いものだから使用可能だったのだと思います。
platex-utf8 は プログラム名を platex とし, --kanji=utf8
なるオプションをつけて, eptex.dll (以前は ptex.dll) を
呼んでいるだけなのですが,W32TeX の特徴として,自動
判断の場合(デフォルト),たとえ --kanji=utf8 としても,
--no-guess-input-enc を付けないかぎり自動判断をオフにしない
というものがあります。これが便利な局面もあるので,
このようにしています。よってplatex-utf8 でも Shift-JIS を
受け付けたわけです。

Akira Kakuto への返信

Re: Asymptoteで日本語を表示させられませんでした

- 椿 四十郎 の投稿
角藤先生、山本先生お返事ありがとうございます。

漢字コードは文字を出力させるときには気にしていましたが、入力するときに気にしたことはありませんでした。
長年コンピューターのお世話になっておきながら全く気付いていなかった自分が、恥ずかしいを通り越して、むしろ驚いています。

notepadで書いているので、セーブするときに文字コードとしてUTF-8を指定しました。
ファイルの内容も、美文書作成入門のものではなく、山本先生が挙げられた例に変えました。
コマンドプロンプトから"asy test.asy"を実行すると、
test.asy: 1.1: invalid token
test.asy: 1.2: invalid token
test.asy: 1.3: invalid token
と表示され、pdfファイルを作ってくれません。

notepad++をdownloadして、UTF-8(BOMなし)に変換してみました。
こんどは、
C:\w32tex\bin\dvips.exe: warning: no config file for `download35'
C:\Program Files (x86)\Asymptote/plain_shipout.asy: 82.10: runtime: shipout failed
と表示されるも、pdfファイルは作ってくれます。
しかし、Adobeはそのpdfファイルを開くことができません。

・山本先生の指摘を受けて、「config.download35を作って適当なところに置いておく」を試行錯誤しつつ試みましたが、まだ出来ていません。すみません。
・もしかしてGSviewならばファイルを開けるのかもしれないと思い、インストールしたのですが今度は何も表示させることができません。過去にもGSviewには辛酸をなめさせられているので、同じ過ちを繰り返しているのだと思います。再び勉強中です。
・デスクトップに現れたAsymptoteのショートカットをクリックして、山本先生の仰る通り一旦あきらめようと思いました。emathに流れようとしました。でも頑張ります。


椿 四十郎 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 山本 和義 の投稿
椿さんはデフォルトで pdf が出力されるように config.asy を設定されているのでしょうか(Asymptote としてのデフォルトは pdf ではなく eps ですよね,確か).そうであるにせよないにせよ,config.ps の内容を全部提示した方が良い結果を生むと思いませんか.この前私が post した内容はほとんど Wiki の写しのようなものですが,「自分のやったことを詳しく書いておかないと相手に伝わりませんよ」というつもりで書いたのです.error, warning の断片を書いただけでは相手にしてくれる人は少ないでしょう.そして,Asymptote は単純には断片的なことしか教えてくれません.どこで失敗しているかを見るためには,asy -vv test.asy のように -vv option を付け加えます.

no config file for `download35' の warning ですが,これは気にしなくてもいいでしょう.Asymptote 側が dvips に対して -Pdownload35 を送っているのですが,目的の config.download35 が存在していないというだけの話です.これは,追加の map file 情報であり,シンプルなデータでは何の問題も起きないでしょう.もし,map に関する問題が出てきたらその時に対処すればいいだけの話です.

asy -f pdf test.asy による pdf の作成は私の方でもうまくできていません.test.asy はこの前書いたものと同じ日本語が入ったものであり,日本語が入っていなければうまく作成されます.これに関しては,gs や dvips の version とか,これらに対する私の方の設定が甘いのが原因だろうと思っています.なのでこの前も書かなかったし,現在も設定を詰めていない(日本語が入った ps file だと ps2pdf もうまく動いてくれない状況です)ので分かっていることだけ書いておきます.

こちらの環境での現状としての原因は,Asymptote が gs に pdf を作らせるときに -dWINKANJI が送られていないというものです.この段階で日本語の実フォントが見つけられなくなって失敗しているようです.asy test.asy として test.eps を作り, -dWINKANJI を付けて同じようにして gs に test.pdf を作らせると,pdf が正常に作成されます.なお,asy -f pdf -vv test.asy の画面出力における失敗の該当部分は次のようなものです.

E:\usr\local\gs\gs8.61\bin\gswin32c.exe -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dEPSCrop -dSubsetFonts=true -dEmbedAllFonts=true -dMaxSubsetPct=100 -dPDFSETTINGS=/prepress -dCompatibilityLevel=1.4 -P -dSAFER -dAutoRotatePages=/None -g612x792 -dDEVICEWIDTHPOINTS=340.601 -dDEVICEHEIGHTPOINTS=226.772 -sOutputFile=test.pdf test_.eps
Error: /invalidfileaccess in /findfont
Operand stack:
  Fe  256  --nostringval--  --nostringval--  0  1278.16  Ryumin-Light-H
Execution stack:
  %interp_exit  .runexec2  --nostringval--  --nostringval--  --nostringval--  2  %stopped_push  --nostringval--  --nostringval--  --nostringval--  false  1  %stopped_push  1937  1  3  %oparray_pop  1936  1  3  %oparray_pop  --nostringval--  1920  1  3  %oparray_pop  1803  1  3  %oparray_pop  --nostringval--  %errorexec_pop  .runexec2  --nostringval--  --nostringval--  --nostringval--  2  %stopped_push  --nostringval--  --nostringval--
1895  7  4  %oparray_pop
Dictionary stack:
  --dict:1163/1684(ro)(G)--  --dict:0/20(G)--  --dict:77/200(L)--  --dict:182/300(L)--
Current allocation mode is local
Current file position is 117506
GPL Ghostscript 8.61: Unrecoverable error, exit code 1
E:\usr\Asymptote/plain_shipout.asy: 82.10: runtime: shipout failed

改行関係が相当に読みにくいかもしれません.全体をコピー・ペーストしたものも添付しておきます.
山本 和義 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 山本 和義 の投稿
>自分

>config.ps の内容を全部提示した方が良い結果を生むと思いませんか.

なんて書いてしまった.config.ps ではなく config.asy ですね.失礼しました.

あと,asy -f pdf での日本語を含む pdf の作成についてですが,とりあえずはうまくいきました.gs の cidfmap をぐりぐりいじって,日本語フォントの配置も色々やって... ということですね.日本語を含む ps file が ps2pdf でうまく処理できるのなら asy -f pdf でもうまくいくような感じです.ちょい面倒なので書きませんが,がんばればできるということですね.

それから,asy を実行したときにできる texput.log を見ていると,特に utf-8 mode の場合に気持ちの悪い message が吐き出されています.

*\setbox\ASYbox=\hbox{標準正規分布の密度関数 $y=\frac{1}{\sqrt{2\pi}
}e^{-x^2\!/2}$}
Missing character: There is no ^^ba in font cmr12!
Missing character: There is no ^^ad in font cmr12!
Missing character: There is no ^^a3 in font cmr12!
Missing character: There is no ^^ba in font cmr12!
Missing character: There is no ^^a6 in font cmr12!
Missing character: There is no ^^a2 in font cmr12!
Missing character: There is no ^^b0 in font cmr12!

なんていう部分です.sjis mode だとまた違うようです.これについてはまだ全然調べていないし,こちらの W32TeX 環境も古いので,単に情報としてだけ書き置いておきます.
山本 和義 への返信

Re: Asymptoteで日本語を表示させられませんでした

- Akira Kakuto の投稿
> あと,asy -f pdf での日本語を含む pdf の作成についてですが,
> とりあえずはうまくいきました.gs の cidfmap をぐりぐり
> いじって,日本語フォントの配置も色々やって... ということですね.

pdf 作成のときは, -dWINKANJI を使うと日本語文字がビットマップに
なってしまいますので,cidfmap によって TrueType フォント
を使ってください。

Akira Kakuto への返信

Re: Asymptoteで日本語を表示させられませんでした

- 山本 和義 の投稿
>pdf 作成のときは, -dWINKANJI を使うと日本語文字がビットマップに
>なってしまいますので,cidfmap によって TrueType フォント
>を使ってください。

ありがとうございます.今では -dWINKANJI を使わずに日本語 TrueType フォントをアウトライン埋め込み(という言い方でいいのかな)で使えています.gs/fonts に .ttc file へのシンボリックリンクを置くという方法でうまくフォントが探せています(無論実フォントを置いてもうまくいくが).

type1 smell の日本語otf (つまり拡張子が otf の日本語フォント)での設定もやってみました.こちらは gs/gs8.61/Resource/CIDFont に実フォントを置くとうまくいきます.シンボリックリンクだと失敗します,良くわかってはいないのですが.
山本 和義 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 椿 四十郎 の投稿
山本先生、ご指導ありがとうございます。
僕のファイルconfig.asyの内容は、次の通りでした。
import settings;
outformat="pdf";
tex="latex";
texcommand="platex-utf8";
dvips="dvips";
dvipsOptions="-Ppdf";

皆さんがすぐに返信して下さるのに、僕の報告が遅れてしまって申し訳ありません。
問題のコンピューターのところに毎日通うことができないからです。
間が開きすぎると失礼だと考え、まだ中間状態なのですが報告します。

上記のconfig.asyを山本先生にならって書き直しました。
import settings;
tex="latex";
texpath="c:\w32tex\bin";
texcommand="platex-utf8";
dvips="dvips";
dvipsOptions="-Ppdf";
psviewer="c:\users\local\ghostgum\gsview\gsview32.exe";
すると、日本語を含めた状態でEPSファイルは問題なく作ってくれました。
使っているGhostscriptのversionは9.05で、GSview32のversionは5.0です。
そしてasy -f pdf test.asyはうまく働いてくれません。

そこで角藤先生が教えてくださった方法を試そうとしました。
仰っている「cidfmapによってTrueTypeフォントを使う」ために何をすればよいのか
まだわかりません。
しかしGhostscriptのインストール時に
□Generate cidfmap for Windows CJK TrueType fonts
というチェックボックスがあったのを思い出して、Ghostscriptを再インストールし、
このチェックボックスを確かにonにしました。
そして用心のためGSviewも再インストールしました。
その結果、日本語を含めた状態のEPSファイルが見れなくなりました。
コマンドasy -vv test.asyを読んでも叱られていません。
GSviewのほうにエラーメッセージが出ます。
先にconfig.asyの内容を提出しなかった反省から、その内容を添付します。
おそらく簡単なミスで、自力で解決するレベルの問題だろうと今は信じています。

山本先生の行われたシンボリックリンクを置く方法について、お伺いしたいです。
gs/fontsという場所に.ttc fileというファイルへのリンクを張るということなのかと思うのですが、リンク名はなんと置けばよいのでしょうか。
今回この問題で初めてコンピューターの中のことを調べはじめた身なので、見当外れな質問ばかりかと思うのですが、どうぞよろしくお願いします。

椿 四十郎 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 上田 完 の投稿
 横からですが、

> gs/fontsという場所に.ttc fileというファイルへのリンクを張るということなのかと思う
> のですが、リンク名はなんと置けばよいのでしょうか。

UNIX 系と Windows では書式が違うので注意が必要です。

(1) UNIX 系の場合:
例: カレントディレクトリに /foo/bar/baz.ttc のシンボリックリンクを張るときは

    ln -s /foo/bar/baz.ttc ./

(2) Windows の場合:
例:カレントディレクトリに c:\foo\bar\baz.ttc のシンボリックリンクを張るときは

    MKLINK baz.ttc c:\foo\bar\baz.ttc

# これ、なんで逆なんでしょうねえ。未だに Windows で MKLINK を使うときには
# 緊張します……

上田 完 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 山本 和義 の投稿
話はずれていきますが

手元のマシンは Windows XP sp3 なので mklink は使えません.そこで Windows Server 2003 Resource Kit Tools をダウンロードして,そこに含まれる linkd を使っています(数日前に初めてやりました.それまでは XP ではシンボリックリンクなんて使えなくてもいいやと思っていましたので).ただ,この linkd,UNIX でいうところのシンボリックリンクとは似て非なるもののようですね.出来上がるリンクファイルのアイコンがフォルダアイコンであることが気になっていたのですが,linkd の d はディレクトリを表すのか? そんな感じです.少し上に書いた .otf だとうまくいかなかったというのもこれと関係しているのかもしれません.
山本 和義 への返信

Re: Asymptoteで日本語を表示させられませんでした

- Akira Kakuto の投稿
Windows XP までは,ハードリンク (当然同じ物理ドライブ上
でしか不可),ジャンクション (詳細は知りませんがおそらく
linkd がサポートするもの) などであり,Unix のシンボリック
リンクに殆ど近いものは Vista 以降で導入されたものと思います。

古い Windows でも NTFS ならサポートされているハードリンクは,
信頼性高く使用できています。プログラムが手に入らない場合は,
texinst2012.zip 内に ln.exe があります。使用法は Unix と同じで
ln source destination
です。ハードリンクですから,ドライブをまたぐことはできません。

椿 四十郎 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 山本 和義 の投稿
>gs/fontsという場所に.ttc fileというファイルへのリンクを張るということなのかと思うのですが、リンク名はなんと置けばよいのでしょうか。

「.ttc fileというファイル」ではなく使用する TrueType font file です.しかし,

>今回この問題で初めてコンピューターの中のことを調べはじめた身なので、

であるのなら,シンボリックリンクなんていうのは二の次三の次の話でしょう.まずは,ここの Wiki の Ghostscript の 8-9 のところのページを熟読してください.

http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Ghostscript-8%E7%B3%BB

ですね.私はこれを読みました.画面を読んでいると斜め読みしてしまいがちなので,熟読とは10回くらいは読むということです.また,単純な答なんてものは書いてないので,Windows だけではなく Unix の方も読みます.

あとこちらでやったのは,cidfmap の中の TrueType フォントの設定のところでは,-dWINKANJI を使わないで gs に直接見つけさせたいフォントに対してはパス部分は記述せず(拡張子を含めた)font file名のみにしておきます(gs/fonts/ までのパスを省略させているだけなのですが).これに関しては,そうしたらうまくいったというだけの話です.環境変数 GS_FONTPATH なんていうのでもいけるのかな? 既定以外の場所だとダメなのは -dSAFER 絡みかな? いやよく知りません.私の方でもあまりよくわかっていないので,答みたいなものはちょっと書けないです.
椿 四十郎 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 山本 和義 の投稿
Asymptote で日本語を含んだ pdf file の作成に不都合がある件について私の方で分かったことをまとめておきます.なお,前提条件は次の通りです.

1) 私の環境は Windows XP sp3 です.また,config.asy や入力ファイルは以前 post したものに基づいています.
2) 入力ファイルの漢字コードの問題はクリアされているものとします.すなわち,Asymptote は2回ほど TeX を呼んでいるようなのですが,この段階では日本語に関しては正常に処理されていることを仮定します.

[こちらで出会った原因] asy -f pdf を用いた場合には,Asymptote が gs を呼び出し pdf を作成するのですが.この際 -dSAFER が付加されます.そして,Windows user が gs を使う場合には,gs のインストール時になされた日本語フォントの自動設定をそのまま使っているだけという場合が多いと思われます(私もその一人).この自動設定自体には何も問題はないのですが,この設定は日本語フォントを gs の既定の位置には配置しません(これ自体は当たり前のことです).この状況で -dSAFER が使われた場合には,gs は既定の位置にない日本語フォントを見つけることができず,Asymptote は正常な pdf の作成に失敗します.

[対策法1] 環境変数 GS_FONTPATH に日本語フォントがある場所を設定してやります.これが一番楽でしょうか.しかしこれは -dSAFER を単に回避しているようなものですから,自己責任で行ってください.無論,ソフトウェアに関する設定などというものは,すべて自己責任であることは言うまでもありません.

[対策法2] 既定の場所,つまり,gs/fonts/ や gs/gs?.??/Resource/CIDFont/ に既定の形式で日本語フォントを置きます.シンボリックリンク等でもよいでしょう.そして,cidfmap を適切に書き換えます.何をどう置き,どのように書き換えるかについては解説を探してください.cidfmap の記述を理解していくことも必要でしょう.

# 少し上の post で,.otf の場合にはシンボリックリンクだとうまくいかなかった
# と書いたのですが,これは私の方が Windows XP で linkd を使っていることが
# 原因でした(linkd が作るのはシンボリックリンクとは似て異なるジャンクション).
# ハードリンクを張ってやったらうまくいきました(当たり前ではあるが).
# Windows Vista 以降なら mklink でうまくいくと思われます(ただし,未確認).
山本 和義 への返信

Re: Asymptoteで日本語を表示させられませんでした

- Akira Kakuto の投稿
> [対策法2] ... ...

[対策法3]
通常はこれがらくと思います。
c:/windows/fonts および c:/winnt/fonts はコンパイル時に
書き込んでいますので (ただし私がコンパイルしたもの),
cidfmap のフォント名のはじめのほうの
c:/windows/fonts/ (あるいは c:/winnt/fonts/) を削除して
相対パス記述にします。
例えば
/Path (c:/windows/fonts/msmincho.ttc)

/Path (msmincho.ttc)
に書き換えます。これで -dSAFER が通ります。

Akira Kakuto への返信

Re: Asymptoteで日本語を表示させられませんでした

- 山本 和義 の投稿
>[対策法3]
>通常はこれがらくと思います。
>c:/windows/fonts および c:/winnt/fonts はコンパイル時に
>書き込んでいますので (ただし私がコンパイルしたもの),
>...

なるほど,それだけでうまくいくのですか.手元ではパス名部分はもう消してあるので,linkd でのジャンクションも消して試してみると,確かにうまく動作している.あれ,でも手元では c: じゃなくて e: をメインにしているのだけど... ですが Cドライブには今はまともに動作しない Windows98 が入っていて,そちらの c:\windows\fonts\msmincho.ttc をアクセスしているのでした.じゃあこの c:\... の方をりネームしてみると,うまく動かない.linkd で作ったジャンクションがあってもなくてもうまく動かない.ということは,今までの実験ではずっと c:\... の方をアクセスしていたわけだ,ガーン.ハードリンクにしたらうまくいっています.すなわち,Eドライブ上の msmincho.ttc にアクセスしています.

というわけで,今まではいい加減なことを書いておりました.この問題に関しては,Windows XP の linkd で作成したジャンクションは,シンボリックリンクとしての動作は全くしていませんでした(msmincho.ttc という名前の単なるディレクトリがあるとみなされているような気がします).

いい加減な情報を書き込んでしまい申し訳ありませんでした.AND, 有益な情報をありがとうございます.
山本 和義 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 椿 四十郎 の投稿
上田先生、山本先生、角藤先生ありがとうございます。

山本先生の教えに従って、WikiのGhostscript 8-9のページをきちんと頭に入れるために、手で紙に書き写していきました。
そこで自分がとんでもない勘違いをしていることがわかりました。

山本先生の返信のなかにあったGUIという単語を調べたときに、はじめてGraphical User InterfaceやCharacter User Interfaceという概念を知ったので、それまでGSviewがGhostscriptのGUIだとは知りませんでした。
いままでGSviewが本体で、Ghostscriptはその本体に使うフォント集だとしか思っていませんでした。
今回もGSviewがうまく表示できないときに、「なぜWikiにGSviewのページがないのだろう、Ghostscriptのページはこんなに充実しているのに」と思っていました。
そして問題を解決するためにネットであさっての方向をいろいろ探していました。

根本的にやり直さなくてはと思い、Ghostscriptを再インストールし「これはGUIだぞ」と思いながらGSviewを再インストールし直し、「さてトラブルを再現しよう」としたらうまくいってしまいました。
心がけで解決できたことになってすみません。

ここのWikiのGhostscriptのページを読んでいくうちに異体字セレクタなどをしり、何が大変だったりすごいことなのか、一角を知ることができました。
これを機に度々学んでいきたいと思います。

先生方におかれましては、忙しい中ご親切に助言して下さり、実験までして頂いて、本当にありがとうございました。

これからもよろしくお願いします。

椿 四十郎 への返信

Re: Asymptoteで日本語を表示させられませんでした

- 山本 和義 の投稿
椿さん.色々とひっかきまわすようなことになり申し訳ありません.gs のフォントまわりのことは全然知らなかったので,今回は私が勉強になりました.

さて,-dSAFER 使用時のフォント検索の件ですが,多くの Windows user の場合には何もしなくてもうまくいくのですね,きっと.つまり,問題はもともと発生しないようですね.どういうことかというと,

・Windows のシステムフォントは c:\windows\fonts にある.
・gs のインストール時等に(日本語フォントに関する) cidfmap の自動作成をさせ
そこに /Path (c:/windows/fonts/msmincho.ttc) 等が書かれている.
・角藤さんがコンパイルした gs を用いており,c:\windows\fonts が gs の
font path にもともと含まれている.

という条件を満たすならば,c:/windows/fonts/msmincho.ttc 等はたとえ絶対パスであってもうまく探される(手元で試してみたらそんな感じです).そして,凝ったことをしていなければ msmincho と msgothic があれば大抵の場合うまく動作する.つまり,-dSAFER が通る.すなわち,

[対策法0] いや,何もしなくてもたぶんうまくいくよ.

ですね(きっと).私の方では,Windows XP のシステムフォントは e:\... の方にあり,しかも c:\... の方にも msmincho.ttc があるというヘンテコなシステムを使っているのではまってしまいました.いやぁ,失礼いたしました.そして,とてもいい勉強になりました.