cacoo.elをorg-modeで使ってみた


遅ればせながら、最近になってcacoo.elを使わせてもらってます。実はずっとcacoo専用のものだと思いこんでいたのですが、とても汎用性のあるツールだということに気づきました。

Emacsでスムーズに図形編集ができるようになるcacoo.elを作ってみた – 技術日記@kiwanami

というわけで、早速org-modeで快適に使えるようにしてみました。

まずは、org-modeのリンクの記法に対応するよう、cacoo:img-regexpに追加します。

(setq cacoo:img-regexp 
     '("$latex displaystyle img:\(.*\)$[^]nr]*$latex " ; imgのデフォルト記法
       "$latex displaystyle f:\(.*\)$[^]nt]*$"   ; はてなフォトライフ記法
       "<img src=["']\(.*\)["'][ ]*\/>[^nt]*$latex " ; HTMLのimgタグ
       "$latex displaystyle .*\[\(.*\)$\][^]nr]*$" ;org-modeの記法
       ))

そのままだと、リンクのアンダーラインが表示されてすごく見にくいので次ようなdefadviceを書いて対処。

(defadvice toggle-cacoo-minor-mode
    (around my-toggle-cacoo-minor activate)
    (if (string-equal mode-name "Org")
        (if cacoo-minor-mode
            (progn
              ad-do-it
              (set-face-underline-p 'org-link t))
          (progn
            (set-face-underline-p 'org-link nil)
            ad-do-it))
      ad-do-it))

これで、使い勝手が良くなりました。 画像をよく出力する、例えばRとかとcacoo.elの相性はとても良さそうです。もう少し活用法を考えてみます。