LaTeX機能は独立させてCaTeX として新たにリリースしました。Generic Input Method を入れてもイメージ補完等は使えなくなったので、CaTeX の方を入れてください。詳細なアナウンス

はじめに

以前の記事にも書いたように、最近は作業環境を Emacs から VSCode に移行しています。

一方、どう考えても、Emacs の方が機能拡張(パッケージ)は沢山あって、どうしても VSCode には足りない部分も多くあります。 まあ Emacs はその沢山あるパッケージを管理するシステムが壊滅に腐っていたから地獄だったわけで、それにくらべれば、VSCode はしっかり考えて設計されており、今のところ大変快適です。

という訳で、仕方がないので LaTeX 向けの入力支援システムを作ってみました。 これがその generic-input-method です:

名前に LaTeX って入っていないのは、概要に書いたように LaTeX の入力支援だけではなく、ユニコード文字を多用する定理証明系の入力支援にも使えるからです。

DEMO

こんな感じで、YaTeX のイメージ補完とギリシア文字補完っぽいのができます:

Greek and Image

選択範囲を置き換えたり、包んだりするのに、別途コマンドパレットで呼び出すこともできます:

Invoking

ユニコード文字の入力はこんな感じ:

Invoking

詳しくは README とか設定ファイルを読んでほしいですが、自分で新しい変換辞書を定義したり、新しい記号を足したり、ということもできます。

また、API を露出してあるので、他の機能拡張から呼び出して使うこともできます。 一例として、この仕組みを使って実装した、定理証明系 redtt の入力支援パッケージが以下です:

LaTeX 環境の設定

オマケ的に VSCode 上での LaTeX 環境の整備について言うと、私のこれと、

あたりがあれば大変快適に TeX 打ちが出来るようになった。 というか、書いている途中で気付いたんだけど、LaTeX Workshop も、イメージ補完とギリシア文字補が合体したような機能があって、@を押すと有効化されるようだ。 とはいえ、この補完アイテムを自分で後から追加設定したりすることは出来ないようだし、多言語から呼ぶことも出来なさそうなので、こうして新しく作った甲斐はあったと思う。

他に似た用途の機能拡張だと、latex-inputUnicode LaTeXというのがあるようだけど、辞書が一つしか持てなかったり、そもそも辞書をカスタマイズ出来るようになっていなかったり、API を露出していなかったりする。

あと、多分変換を確定させる方法は Enter しかどれも提供していないが、こちらでは「補完シーケンス中に出て来ない任意の文字」で確定するようにしてある。 とはいえ、つかってみてちょっと不便な場合もあるので、今後この辺りももっと柔軟に設定出来るようにする予定。 乞うご期待。


Comments