(ドタバタの記録。そのうち整理することが出来るだろう…)
MacTeX 2023, ほぼ全ての Mac で快適に使えるようになったのだが、 1台だけ問題児がいた。
gv (PostScript のビューアー, Ghostscript を呼び出すことで実現されている) を実行しようとすると、
dyld[48474]: symbol not found in flat namespace '_yylex' |
しばらくネットを徘徊したけれど、 この症状が出た場合に簡単に直す処方は見つからなかった。 そのうちに MacPorts の方で直してくれることを期待しているけれど、 とりあえず何とかしないと。以前は動いていたんだよね。
% port installed gv The following ports are currently installed: gv @3.7.4_4 gv @3.7.4_6 (active) |
% sudo port activate gv @3.7.4_4 |
さて、それで gv 動くようになったのだけれど、 その表示結果は日本語部分が全て文字化け。はてな?
あ、MacPorts のでなくて、TeXLive の ghostscript が動いているのか。 そちらでも表示できるようにすべきだけれど、 まずは MacPorts で動くようにしないと。 PATHの順番を直接いじるのは他への影響が大きいので、 シェル・スクリプトを使うか、エイリアスを使うのかな。 例えばエイリアスについては
alias gv='env PATH=/opt/local/bin:$PATH gv' |
この結果、半歩前進。 PostScript データによっては文字化けなく表示できるが、 文字化けするものもあった。
具体的には、Ryumin-Light-H や GothicBBB-Medium-H を使うものは大丈夫だったが、 HaranoAjiMincho-Regular-UniJIS-UCS2-H, HaranoAjiMincho-Regular-UniJIS2004-UTF16-H を使うものはダメだった。
これは /opt/local/share/ghostscript/9.56.1/Resource/Font/ にあるファイル (Ryumin-Light-H, GothicBBB-Medium-H, HaranoAjiMincho-Regular-UniJIS-UCS2-H, HaranoAjiMincho-Regular-UniJIS2004-UTF16-H) を調べないと。
読んでみると、 HaranoAjiMincho-Regular-UniJIS-UCS2-H も HaranoAjiMincho-Regular-UniJIS2004-UTF16-H も、 HaranoAjiMincho-Regular という CIDFont を使うように書いてある。 CIDFont を調べてみよう。
% cd /opt/local/share/ghostscript/9.56.1/Resource/CIDFont % ls -l HaranoAjiMincho-Regular lrwxr-xr-x 1 root wheel 94 4 20 2020 HaranoAjiMincho-Regular@ -> /usr/local/texlive/2020/texmf-dist/fonts/opentype/public/haranoaji/HaranoAjiMincho-Regular.otf % file HaranoAjiMincho-Regular HaranoAjiMincho-Regular: broken symbolic link to /usr/local/texlive/2020/texmf-dist/fonts/opentype/public/haranoaji/HaranoAjiMincho-Regular.otf |
/usr/local/texlive/2023/texmf-dist/fonts/opentype/public/{haranoaji,haranoaji-extra} にある Haraなんとか.otf へのリンクを、 /opt/local/share/ghostscript/9.56.1/Resource/CIDFonts/Haraなんとか という名前で作る。 手動でやると間違えそうだし、また後で同じことをやるかもしれないので、 シェル・スクリプトを書く。
linkhara.sh |
#!/bin/sh NENDO=`/bin/ls /usr/local/texlive/|grep 20|tail -1` SOURCE=/usr/local/texlive/$NENDO/texmf-dist/fonts/opentype/public VER=`/bin/ls /opt/local/share/ghostscript|grep -v fonts|tail -1` DEST=/opt/local/share/ghostscript/$VER/Resource/CIDFont cd $DEST for i in `/bin/ls $SOURCE/haranoaji-extra` do trimmed=$(basename $i .otf) rm -f $trimmed ln -s $SOURCE/haranoaji-extra/$i $trimmed done for i in `bin/ls $SOURCE/haranoaji` do trimmed=$(basename $i .otf) rm -f $trimmed ln -s $SOURCE/haranoaji/$i $trimmed done |
実行…これで MacPorts の Ghostscript の文字化けが解消した。やれやれ。
MacTeX の Ghostscript の方は? MacTeX のインストール作業にミスがあったようで、一部やり直したら、 MacTeX の Ghostscript でも文字化けはなくなった。やーれやれ。
1つの疑問は、このシンボリック・リンクを張る作業は、 これまでどうやっていたのだろう??
あ、これか。 「日本語フォントの選択を考える (原ノ味フォントにこんにちは)」
こんなことをした |
pushd /usr/local/share/ghostscript/9.50/Resource tar cfz ${SOMEWHERE}/HaranoAji.tar.gz */Hara* cd /opt/local/share/ghostscript/9.50/Resource sudo tar xzf ${SOMEWHERE}/HaranoAji.tar.gz popd |
pushd /usr/local/share/ghostscript/10.00.0/Resource tar cfz ${SOMEWHERE}/HaranoAji.tar.gz */Hara* cd /opt/local/share/ghostscript/9.56.1/Resource sudo tar xzf ${SOMEWHERE}/HaranoAji.tar.gz popd |
(復習) MacTeX では、日本語を表示させたい場合は、 デフォールトで HaranoAji フォントを使うようになっている。 Ghostscript でもそれを利用するようにできている。 MacPorts の Ghostscript では、OTF の Hiragino フォント (古い!) を使って日本語を表示するようになっていた(る?)が、 これは obsolete である。 それで私は、MacTeX の Ghostscript から、 HaranoAji フォントとそれを利用する設定をパクって MacPorts の Ghostscript で 日本語を表示するようにしている、ということである。
MacPorts の中にそういうのって入っていたりするのかな?? 誰かやってくれないだろうか。
…そもそも MacTeX の Ghostscript が素晴らしいのだから、 MacPorts の Ghostscript なんか使わなければ良い、 という考え方もあるか。 MacPorts で gv をインストールするときに、 依存関係で Ghostscript が入ってしまうけれど、 そのあたりを見直せば良いのかな? gv くらい自分でインストールするとか、 gv の代替物を探すとか、 MacPorts の Ghostscript を(インストールはするけれど)使わないことにして gv から MacTeX の Ghostscript を呼ぶことにするとか。
MacPorts は TEX でもそうだけれど、 何でもかんでも依存関係でインストールさせているのが問題の種になっているね。 そのあたりを調べるのか。
Macのプレヴュー(Preview)が、 日本語の PostScript ファイルをちゃんと表示できるようにすれば良い、 という気もする。Preview が裏で使っている /usr/bin/pstopdf を Ghostscript の ps2pdf に置き換えられないかとも考えたけれど、 それはたとえ出来ても、 日本語 Ghostscript が使えるようになっていることが前提になるので、 あまり意味がないかな。 でも、 PostScript ファイルがダブルクリックで表示できれば嬉しい気もする。