TeXShop の外部エディタとして CotEditor を使う

TeXShop のエディタを使っているとよくカーソルが行方不明になるので、カーソルのいる行の色を変えるとかしたかったのだけど、できなさそうなんでいっそ CotEditor を外部エディタとして使うことにした。TeXShop のエディタには検索が使いにくいなど、他にも不満な点があるし。

ちなみに CotEditor でカーソルのある行の色を変える方法は以下。チェックを入れて、上の赤で囲ったところにチェックを入れて、下で色を設定。

f:id:pn11:20170304051109p:plain

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() っていう関数は TeXShopHelp > Notes on AppleScript in TeXShop と辿ると見れる PDF にこっちを使えって書いてあったんだけど、よく分からなかった。

このスクリプトを、~/Library/Application Scripts/com.coteditor.CotEditor に置く。このときに設定したファイル名が、CotEditor 上でのショートカットになる。Cmd+T に設定したかったけど後述のようにできないので、Cmd+Opt+T にするべく、cot2texshop.@~t.scpt いうファイル名にした。そうするとメニューにはこんな風に表示される。

f:id:pn11:20170304052506p:plain

これで CotEditor で TeX ファイルを編集しているときに、Cmd+Opt+T を押すと TeXShopコンパイルしてくれる。この辺りのことについては、以下の記事を参考にさせていただきました。

satomacoto.blogspot.jp

なお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 を書くときは毎回お世話になっております。