
私は 20 年以上 MetaPost を使っています。最近、MetaPost という素晴らしいツールを見事な合理化と一般化で実現した Asymptote を見つけました。MetaPost から Asymptote に移行したいのですが、問題があります。
現在の OS は Windows 10 Pro です。聞かないでください。
最新の Asymptote for Windows をダウンロードし、すべてデフォルト設定のままにして、すべて正常に動作しているように見えました。バージョンを問い合わせた結果は次のとおりです。
miktex-asy version 2.67 [(C) 2004 Andy Hammerlindl, John C. Bowman, Tom Prince]
ENABLED OPTIONS:
WebGL 3D HTML rendering
OpenGL 3D OpenGL rendering
CURL URL support
DISABLED OPTIONS:
GSL GNU Scientific Library (special functions)
FFTW3 Fast Fourier transforms
XDR external data representation (portable binary file format)
Readline interactive history and editing
Editline interactive editing (if Readline is unavailable)
Sigsegv distinguish stack overflows from segmentation faults
GC Boehm garbage collector
ディレクトリ C:\Program Files\Asymptote には、plain を含むすべてのモジュールがあるようです。ただし、従来の test.asy を含むディレクトリで「asy -f PNG test」と入力すると、「モジュール plain が見つかりません」という結果になりました。
これは不要に思えましたが、私は WEB のアドバイスに従って、環境変数 ASYMPTOTE_DIR を C:\Program Files\Asymptote に定義しました。その結果は次のようになりました。これは、この年老いたコンパイラ作成者にとってはコンパイル エラーのように見えます。
Welcome to miktex-asy version 2.67 (to view the manual, type help)
real value(string s, int i) {return byteinv(hex(substr(s,2i+offset,2)));}
^
C:/Program Files/Asymptote/plain_pens.asy: 333.39: no matching variable 'byteinv'
real[][][] S=_schur(a);
^
C:/Program Files/Asymptote/plain.asy: 312.16: no matching variable '_schur'
pair[][][] S=_schur(a);
^
C:/Program Files/Asymptote/plain.asy: 326.16: no matching variable '_schur'
error: recursive loading of module 'plain'
私が何を間違っているのか、誰か考えがあるでしょうか?
答え1
このヘルプ リクエストを SourceForge の Asymptote コミュニティにコピーしたところ、John Bowman が親切にも問題を指摘してくれました。MikTeX には、最新バージョンの Asymptote と互換性のない、完全に古い asy.exe のコピーが同梱されています。Windows が実行ファイルを検索する順序により、新しいバージョンを見つける前にこの古いバージョンが見つかりました。1 つの解決策は、PATH パスを並べ替えて、Asymptote が MikTeX より前になるようにすることです。MikTeX の bin ディレクトリで asy.exe の名前を変更しただけです。問題は解決しました。:)