TeXShop の外部エディタとして CotEditor を使う
TeXShop のエディタを使っているとよくカーソルが行方不明になるので、カーソルのいる行の色を変えるとかしたかったのだけど、できなさそうなんでいっそ CotEditor を外部エディタとして使うことにした。TeXShop のエディタには検索が使いにくいなど、他にも不満な点があるし。
ちなみに CotEditor でカーソルのある行の色を変える方法は以下。チェックを入れて、上の赤で囲ったところにチェックを入れて、下で色を設定。
CotEditor は2010年くらいから使っているけど最近は以前よりもかなり安定していて素晴らしいエディタだと思います。とか言いつつ、今日までスクリプトを使えることを知らなかった。
ここから本編
まず TeX Wiki からリンクの貼られていた以下の記事を参考にさせていただいて、
TeXShop と外部エディタの連携skalldan.wordpress.com
以下のような AppleScript を書いた。
tell application "CotEditor" try set texfileOnCot to the file of the front document set path2texfile to texfileOnCot as text set posixpath to POSIX path of path2texfile tell application "TeXShop" activate try -- opendoc(posixpath) -- should use this but I couldn't open(posixpath) set texfileOnTS to front document tell texfileOnTS to latexinteractive tell texfileOnTS to close end try end tell on error display dialog "Error!" beep 1 end try end tell
AppleScript はたまにしか書かないのでよくわからない。エラー処理とかも適当。コメントアウトしてる opendoc()
っていう関数は TeXShop で Help
> Notes on AppleScript in TeXShop
と辿ると見れる PDF にこっちを使えって書いてあったんだけど、よく分からなかった。
このスクリプトを、~/Library/Application Scripts/com.coteditor.CotEditor
に置く。このときに設定したファイル名が、CotEditor 上でのショートカットになる。Cmd+T に設定したかったけど後述のようにできないので、Cmd+Opt+T にするべく、cot2texshop.@~t.scpt
いうファイル名にした。そうするとメニューにはこんな風に表示される。
これで CotEditor で TeX ファイルを編集しているときに、Cmd+Opt+T を押すと TeXShop がコンパイルしてくれる。この辺りのことについては、以下の記事を参考にさせていただきました。
なお7年前の記事なので今とスクリプトを置く場所が異なるようです。また、この記事では Cmd+T は Show Fonts
に割り当てられているとなっているけど、僕の環境ではそうなっていない。僕の使っている CotEditor のバージョンは 3.1.3 なので、macOS Sierra だと Cmd+T でタブが開くっぽい (El Capitan を使っているのでメニューからは見えないが)。たぶんこのせいで Cmd+T は使えなくなっているのだろう。
なお CotEditor のスクリプトについて詳しくは、Help
> CotEditor Scripting Manual
> About Scripting
と進んでいけばファイル名の規則などが書いてあるヘルプドキュメントにたどり着けるはず。
あと、Cmd+Opt+T を押す前に、Cmd+S を押して保存しておかないと編集が反映されない。AppleScript 内に保存する動作を入れても良いかも。
あとあと、AppleScript を使わずとも CotEditor には強力なスクリプト機能があることをあとから知った。これを使えば、TeXShop を呼び出す必要もないのでそっちのほうが良いかも。TeXShop を呼び出す利点は、Ctrl+Cmd+A で aux ファイルを消せたり、Shift+Cmd+B で BibTeX を実行するといったショートカットが使えることかな。
その他参考リンク
AppleScript を書くときは毎回お世話になっております。