俺がVIM-LaTeXについて書くしかない(3) ファイル編集(前編)

  • 追記(2010-01-12):「コマンドの挿入」について追加。
  • 追記(2009-11-09):ちょこちょこ修正。
  • 追記(2009-12-13):コメント情報に基づき、F9補完についての記述を追加。

今回は、LaTeXドキュメントの編集の際に使うと便利な機能を厳選して紹介する。

なお、gVimを利用している場合は、メニューバーから各種コマンドを選択して実行することもできる。これについては、実際に体験すればすぐにやり方はわかるので、本記事では扱わない。

表紙:

目次

ヘルプ

使い方に迷ったら迷わずヘルプを参照すること。

:help latex-suite.txt
VIM-LaTeXのヘルプを参照する。オンラインでも閲覧可
:help latexhelp.txt
LaTeX2eのヘルプを参照する。オンラインでも閲覧可
:Tshortcuts [コマンドの種類]
VIM-LaTeXで使えるマクロコマンドの一覧を表示する

:Tshortcuts を引数なしで実行すると、どの種類の一覧を見るか選択を促される。また、例えば :Tshortcuts s のように引数sをつけて実行すると*1、「セクションマッピング」の一覧が表示される。

プレースホルダとは

後になって実際のデータが挿入される場所を示す記号を「プレースホルダ」という。VIM-LaTeXでは、プレースホルダを利用することで、カーソル移動の省力化を実現している。

VIM-LaTeXでは、マクロによってLatexコマンドを挿入した際に、<++>という形でプレースホルダが現れることがある。C-jを押すことで、現在位置の直後のプレースホルダに移動することができる。

(利用例) insert modeで `/ と入力すると、\frac{}{<++>}<++> という文字列が挿入される。そして、カーソルは最初のbraceの内部に移動する。テキストを適当に入力してC-jを押すと、次のbraceの内部(つまり最初のプレースホルダ)に移動する。またテキストを適当に入力してC-jを押すと、\fracコマンドの外(二番目のプレースホルダ)に移動する。

編集

テンプレートの挿入
:TTemplate [テンプレート名]
テンプレートファイルの挿入

ファイルを新規作成する際に便利なテンプレートファイルを挿入する。例えば、 :TTemplate article を実行すると、以下のテンプレートが挿入される(括弧の部分は動的に決定される)。

%        File: (ファイル名)
%     Created: (作成時刻)
% Last Change: (最終更新時刻)
%
\documentclass[a4paper]{article}
\begin{document}

\end{document}

テンプレート名入力時にタブを押せば、$VIM/ftplugin/latex-suite/templates/ 以下にあるテンプレートファイル名が補完される。または、:TTemplate とだけ入力すれば、上記ディレクトリからファイルを選択することができる。

環境マッピング

(1)環境の新規作成

環境を新規に作成する方法は3つある。

空行で使うと、\begin{...} \end{...}ペアを挿入し、環境名を入力するよう促される。単語が一つだけある行で使うと、その単語を環境名とした環境が挿入される。
, , , *2
には、よく使う環境が割り当てられていて、即座に挿入できる。この割り当ては g:Tex_HotKeyMappings で変更できる。
環境名を略した3文字
Eで始まる環境名を略した英3文字によって、insert modeで各種環境を挿入できる。

三番目のやり方だが、省略の仕方はいくつかあって、EFL(FlushLeft: 2分割したそれぞれの頭文字), EEQ(EQuetion: 最初の2文字), EQE(QuotE: 最初と最後の文字) などとなる。省略の仕方の優先順位は、上に並べた順番どおりである。

主要な環境について、マッピングを以下に示す*3

マッピング 挿入される環境名
EIT itemize
EDE description
EEN enumerate
EVM verbatim
EEQ equation
ETE table
EFI figure


(2)環境で既存の文字列を囲む

既に書かれた文字列を環境で囲む方法は2つある。

visual modeで文字列を選択して
環境名の入力を促され、入力すると、選択した文字列が入力した環境で囲まれる
visual modeで文字列を選択して、,(省略環境名の先頭のEを除いた2文字)
コンマの後に入力した環境名で、選択した文字列が囲まれる
セクションマッピング

セクションコマンドを略した英3文字(先頭はS)によって、各種セクションコマンドを挿入できる。
省略の仕方は環境名の場合に準ずる。
マッピングを以下に示す。

マッピング 挿入されるセクションコマンド
SPA \part{<++>}<++>
SCH \chapter{<++>}<++>
SSE \section{<++>}<++>
SSS \subsection{<++>}<++>
SS2 \subsubsection{<++>}<++>
SPG \paragraph{<++>}<++>
SSP \subparagraph{<++>}<++>
フォントマッピング

フォントコマンドを略した英3文字(先頭はF)によって、各種フォントコマンドを挿入できる。
省略の仕方は環境名の場合に準ずる。
主要なフォントコマンドについて、マッピングを以下に示す。

マッピング 挿入されるフォントコマンド
FBF \textbf{<++>}<++>
FRM \textrm{<++>}<++>
FIT \textit{<++>}<++>

既存の文字列をvisual modeで選択して ,(省略フォントコマンドの先頭のFを除いた2文字) を入力すると、選択した文字列がフォントコマンドで囲まれる。

コマンドの挿入

(1)insert or normal mode

単語を入力して、その上でを押すと、その単語をコマンドにしてくれる。

また、何もないところでを押すと、コマンド名入力のプロンプトが出る。

例えば、textbfという単語が入力されていたとして、この単語の上でを押すと、 textbf が \textbf{}<++> となり、カーソルはbraceの中に移動する。


(2)visual mode

文字列を選択してを押すと、コマンド名入力のプロンプトが出る。コマンドを入力して決定すると、選択した文字列を引数にとったコマンドが得られる。

例えば、aaaという文字列を選択していて、で表示されるプロンプトにtextitと入力すると、\textit{aaa}が得られる。

ギリシャ文字の挿入

insert modeでの `a から `z は、 \alpha から \zeta の各種ギリシャ小文字に変換される。また、シグマなどよく使われる一部の大文字も、 `S で大文字(\Sigma)に変換される。

その他の便利なバインディング

` で始まるさまざまなバインディングがある。ここではごく一部を紹介する。

insert modeで利用:

バインディング 挿入される文字列
`/ \frac{<++>}{<++>}<++>
`2 \sqrt{<++>}<++>
`I \int_{<++>}^{<++>}<++>


visual modeで利用:

バインディング 選択範囲を囲う文字列
`( \left( and \right)
`[ \left[ and \right]
`{ \left\{ and \right\}
`$ $$ or \[ \]
補完

キーによって、補完機能を利用できる。

たとえば、 \includegraphics{ と打ち込んだ後を押すと、ファイル名補完が可能である。この他にも、\inputや\includeのあとのファイル名補完、さらには\refや\citeに対するラベル名の補完など、さまざまな場面で利用できる*4

[以下、コメント情報に基づき追加]なお、\ref や \cite による補完を機能させるには、あらかじめ Python2.x をインストールしておくこと(Windowsの場合はさらに、vimfiles\ftplugin\latex-suite以下のpytools.py,outline.py,bibtools.py のfileformatをdosに直しておくことが必要になる)。

なお、\cite{ でF9補完する場合、\bibliographyの引数に与えるbibファイルは、パスで指定しておかなくてはならない(つまり、TEXINPUTSで指定したディレクトリにおいたファイルを名前だけ指定するのではダメ)。

マクロ機能の一時停止

以下のコマンドにより、VIM-LaTeXのマクロ機能を一時的に停止できる。

:let g:Imap_FreezeImap=1
Vim全体でマクロを一時停止
:let b:Imap_FreezeImap=1
カレントバッファでマクロを一時停止

一時停止を解除したい場合は、変数に0を代入すればよい。

折り畳み

normal modeで \rf と打つと、すべてのプリアンブル、環境、セクションが折り畳まれる*5。元に戻すには、折り畳まれた行でスペースを押せばよい。

既存の.texファイルをVIMで開くと、すでに折り畳みされた状態になっている。

*1:とりうる引数は、引数なし:Tshortcutsコマンドを実行すればわかる。

*2:はShiftを押しながらF1を押す、の意。

*3:マッピングを調べたい場合は、:Tshortcuts コマンドを使えばよい。以降で説明する他のマッピングについても同様。

*4:ただし、私の試した限りでは、Windows環境においては \input{ に対するファイル名補完はエラーが発生してしまう。それ以外にも、Windows環境における補完機能はエラーが発生することが多いようだ。最新バージョンでは正しく補完できる。どうやら自分が古いバージョンを使っていたために起きたエラーのようだ。自分の環境では、F9補完でエラーが発生しないものと発生するものの両方が存在する。 \input や \include はうまく動くが、 \ref や \cite ではうまく動かない。

*5:rfはrefresh foldsの意。