LaTeXiTが沈黙した時の対応


TL;DR

  • LaTeXiTがエラーも出さずにコンパイルできなくなったら、GhostScriptが原因のことがある
  • gsを実行してみて「Can't find initialization file gs_init.ps.」と言われたらそれ。
  • LaTeXiTが参照しているgs-noX11が、brewで入れたgsを参照するようにすれば解決する。

LaTeXiTが死んだ

どういうタイミングかわからないのだが、たまにLaTeXiTが「コンパイルはしているっぽいが、プレビューに何も表示されないしエラーも出ない」状態になることがある。

この状態で「LaTeX it!」をクリックしても、なんかくるくる回った挙げ句に何も表示されない。

以前もそういう状態になったのだが、しばらくしたら治った。しかし、また同じ症状になったのでちゃんと調べることにした。

gsを調べてみる

まず、LaTeXiTの「環境設定」→「プログラム」から、実行パスを調べる。デフォルトではこんな感じだと思う。

注目すべきは以下の二つ。

  • Ghostscript (gs): /usr/local/bin/gs-noX11
  • ps2pdf : /usr/local/bin/ps2pdf

とりあえずgs-noX11を実行してみよう。。

$ /usr/local/bin/gs-noX11
GPL Ghostscript 9.27: Can't find initialization file gs_init.ps.

あ、これが問題ですね。直そう。まず、homebrewでghostscriptを入れてみる。

$ brew install ghostscript
Warning: ghostscript 9.50 is already installed, it's just not linked
You can use `brew link ghostscript` to link this version.

あ、既に入っているけど、リンクが切れているようですね。リンクしようとするとsymlinkを作れませんとか言ってくるので、強制上書きしましょう。

$ brew link --overwrite ghostscript
Linking /usr/local/Cellar/ghostscript/9.50... 58 symlinks created

もう一度gsを実行してみる。

$ gs --version
9.50

大丈夫そうだ。gs-noX11は?

$ gs-noX11
GPL Ghostscript 9.27: Can't find initialization file gs_init.ps.

ありゃ、だめだ。調べてみると、/usr/local/bin/gs/usr/local/Cellar/ghostscript/9.50/bin/gsのシンボリックリンクになっているが、gs-X11gs-noX11は古い実体が置かれたままになっている。gs-noX11をリネームして、新しい方のgsにシンボリックリンクを張ろう。

$ cd /usr/local/bin
$ sudo mv gs-noX11 gs-noX11.org
$ ln -s gs gs-noX11

gs-noX11を実行して問題がないことを確認する。

$ cd
$ gs-noX11
GPL Ghostscript 9.50 (2019-10-15)
Copyright (C) 2019 Artifex Software, Inc.  All rights reserved.
This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
see the file COPYING for details.
GS> quit

うん、問題ないですね。

この状態でもう一度LaTeXiTを使ってみる。

できた!

まとめ

LaTeXiTが突然沈黙したら、それはgsのリンクがおかしくなっているせいかもしれません。

参考