TeX
Markdown
ATOM

[Atom] bracket-matcherカスタム設定でTeXの数式囲み($$)を簡単に挿入

AtomでTeX文書を編集したりとか、Markdown + MathJaxな環境を構築してTeX文法の数式入りMarkdown文書を編集したりとか、やってる人は少なからずいると思います。

markdown-preview-plusパッケージを導入すればプレビューも可能で、結構実用的です。環境構築はQiitaだとこのあたりの記事が参考になります。

$$

TeX文法での数式挿入に対応している環境では、インラインで数式挿入する場合は$$で数式部分を囲みます。

例えば、

さて、$T_i = 30$の場合、

このように書くと、

さて、$T_i = 30$の場合、

と数式表示されます。(Qiitaも対応しています)
すると当然の欲求として、

さて、T_i = 30の場合、
    ^^^^^^^^

↑この部分を選択した状態で、Shift + $を打鍵したら、

さて、$T_i = 30$の場合、

こうなって欲しいわけです。Atomではデフォルトでbracket-matcherという公式パッケージが存在しており、このような機能を実装しています。
""()のような一般的な囲みにはデフォルトで対応していますが、$$はTeX文法に独特なものなので、以下のようにして導入できます。

言語ごとにbracket-matcherの追加パターンを登録する

要はここに書いてあることですが。

単純に、bracket-matcherのsettingを開いて、

Autocomplete Characters

この部分に追加パターンを挿入するのでもOKですが、そうすると言語問わずグローバルにパターンが有効になってしまいます。$$は対応環境以外では不要なので、言語を絞りたい。

Open Config Folder > config.csonと選択して、編集します。

config.cson
".tex.text":
  "bracket-matcher":
    autocompleteCharacters: [
      "()"
      "[]"
      "{}"
      "\"\""
      "''"
      "``"
      "“”"
      "‘’"
      "«»"
      "‹›"
      "$$" # デフォルトに無い`$$`
    ]

すでに.tex.textスコープに関するユーザ設定が存在している場合は、既存の.tex.textエントリ配下に追記しましょう。
LaTeX等の派生規格を使用している場合も、AtomのTeX関連パッケージではそれらのスコープが.latex.tex.textのようにサブスコープになっているため、上位のスコープに対して適用しておけば有効になります。

Markdownでも適用させたい場合は.md.textスコープに同じように記述しましょう。