備忘録。基本的にはMacのTerminalでやることを想定。Macをインストールしたての状態を仮定する。
homebrewを使って、TeXLiveとSkimをインストールする。latexmkの設定をした後、vimにdein.vimを入れて、それを用いてvimtexを入れるところまでやる。おまけでvimrcの他の設定や、colorschemeの設定もやる。
注意
なるべくコマンドを載せるようにするが、それを実行しても上手くいかない場合は、公式サイトなどを参照すること。この記事が古くなっていて、打つべきコマンドが変わっている可能性がある。
homebrewのインストール
homebrewをインストールしておくと、いろいろなソフトがbrew (cack) install ...
だけでインストールできる。便利なので入れる。
homebrewの公式サイトのインストールを参照。
念のため、Terminalを再起動しておく。
TeXLive(MacTeX)のインストール
TeXLiveの説明についてはWikiを参照。TeX関連のあらゆるパッケージやソフトの詰め合わせ。そのMac版がMacTeX。
MacTeXやそのインストール方法については、Wikiを参照。homebrewをインストールしたので、次のコマンドでインストールできる。以下はmactex-no-gui
としているが、もしguiアプリも入れたい場合はmactex
とする。どんなguiアプリが入るのかについてはWikiを参照。
かなり巨大なファイル群のため、インストールにかなり時間がかかった気がする。
$ brew cask install mactex-no-gui $ sudo tlmgr update --self --all $ sudo tlmgr paper a4
念のため、Terminalを再起動しておく。
Skimのインストール
SkimとはPDFビュワーの一種で、PDFの自動リロードを行ってくれる。こちらもhomebrewでインストールできる。
$ brew cask install Skim
起動して、環境設定を開く。「同期」タブに移動して、「ファイルの変更をチェック」と「自動的にリロードする」にチェックを入れておく。
latexmkの設定
後でインストールするVimのプラグイン(vimtex)がlatexmkを利用するので、設定しておく。
こちらのページは、latexmkについて分かりやすく説明してくれているので見ておくと良い。
~/.latexmkrc
を作成し、内容を以下のようにする。これは上の参考サイトの引用。
|
|
Vimのインストール
恐らく標準で入っていると思われる。もし入っていなかったら以下のコマンドでインストールする。
$ brew install vim
dein.vimのインストール
Vimのプラグインを管理するためのプラグイン。
公式のQuick Startの1を参考に、以下のコマンドを実行。
すると以下のメッセージが表示される。
$ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh $ sh ./installer.sh ~/.cache/dein
... Done. Please add the following settings for dein to the top of your vimrc (Vim) or init.vim (NeoVim) file: "dein Scripts----------------- if &compatible set nocompatible " Be iMproved endif ...(略) " If you want to install not installed plugins on startup. " if dein#check_install() " call dein#install() " endif "End dein Scripts------------------------- Done. Complete setup dein!
言われた通り、"dein Scripts----
から"End dein Scripts----
までの内容を~/.vimrc
に記載する。
ただし、恐らく最後の3行になっているであろう以下の記述はコメントを外しておく。これを行っておくと、vimが起動する度に、登録したプラグインを自動でインストールしてくれる。登録方法については後の項でやる。
|
|
source
コマンドを打つか、Vimを再起動する。
helpが見られるようにする
Vimを起動して、以下のコマンドを実行する。
|
|
これで、:h dein
でdeinのhelpが見られるようになる。
tomlファイルの設定
プラグインの登録は~/.config/dein.toml
、遅延ロードしたいプラグインの登録は~/.config/dein_lazy.toml
に記載することにする。遅延ロードとは、ある特定の状況のみプラグインがロードされる仕組みのこと。例えば「挿入モードに入った時」「texのファイルを読み込んだ時」などのタイミングで、然るべきプラグインをロードすることができる。これにより、すべてのプラグインをロードしなくて済むため、vimの動作が遅くなりにくくなる。
:h dein
でhelpを開き、toml
という単語で検索をかける。色々調べていくと、結局以下のように設定すれば良いことが分かる。さっき書いた設定ファイルにおいて、dein#load_state
とdein#begin
の直後に文を追加する。
|
|
source
コマンドを打つか、Vimを再起動する。
プラグインの登録
~/.config/dein.toml
を作っておく。とりあえず中身は空にする。~/.config/dein_lazy.toml
の内容を以下のようにする参考。
|
|
軽く説明すると、
- 1つのプラグインの登録は
[[plugins]]
から始める repo = プラグインのリポジトリ名
on_ft = [ファイルの種類のリスト]
。今回はon_ft=['tex']
なので、texのファイルの時だけ、このプラグインがロードされる。hook_source
: プラグインが読み込まれる直前に実行される命令を書く。hook
関連については、:h dein-hook
を引くか、こちらが参考になる。
g:vimtex_view_general_viewer
では、開くPDFビュワーを設定する。ここではdisplayline
を設定している。これはSkimをインストールした際に付属するスクリプト。Skimの公式Wikiを漁ってみたところ、説明はこのページにあった。pdfを、行番号指定付きで開くためのもの。vimtexは<localleader>lv
というコマンドで「該当行をハイライトしてpdfを開く」ことが可能なので、その機能の実現のためにdisplaylineを使っているのだと思われる。g:vimtex_view_general_options
では、displayline
に指定するコマンドライン引数を設定している。
texファイルのfiletypeをlatexにする
空のtexファイルを作ったときに限って、vimtex
が読み込まれない。これは、空のtex
ファイルのfiletypeはplaintex
として認識されているかららしい(参考)。よく調べたら、:h vimtex-comment-internal
にも書いてあった。
~/.vimrc
に以下の記述を追加。
|
|
localleaderの設定
詳細は:h mapleader
や:h maplocalleader
を参照。vimtexでは<LocalLeader>ll
で自動コンパイルモードをオンにしたり、<LocalLeader>lv
でpdfを開いたりする。
以下の設定をすることで、<LocalLeader>
の部分を半角スペースに設定する。つまり、[Space]ll
や [Space]lv
というコマンドを認識するようになる。
|
|
vimtexを使う
適当なtexファイルを書いて、
- スペース +
ll
: 自動コンパイルモードのON/OFF切り替え。 - スペース +
lv
: PDFを表示。
ができる。これでひとまず、LaTeXができる環境が整った。
おまけ
colorschemeの設定
ここではicebergを利用する。dein.toml
にcolorschemeの設定をしてもうまく動かない。:h dein-faq
に詳細が載っていたので、それに沿って設定。.vimrc
において、dein#load_state
の中と外に文を追加する。別の解決方法もあるみたい。
|
|
vimrcの設定
そもそもvimでtexを使うような人はvimをよく使っている人がほとんどだと思うので、この節は必要ないかもしれないが…
とりあえずこちらを参考にして、必要なものだけ設定するのがありだと思う。
それに加えて、個人的には以下の設定をやったほうが良い。こちらからの引用。~/.vimrc
に追記する。これは、挿入モードに入った時にカーソルの形を変える設定。いま自分が挿入モードとノーマルモードのどちらにいるのかが分かりやすくなる。
|
|
何かわからないことがあったら、こまめに:hコマンドで調べてみると良い。素のvimのhelpなら日本語版もある。
参考
- homebrew
- TeXLive - TeX Wiki
- Latexmkから学ぶPDF化までの処理の流れ - Qiita
- Shougo/dein.vim - GitHub
- CLIのneovimでSkimとSyncTeXするには - Qiita
- [dein.vim] hook の便利な使い方 - Qiita
- Skim/Wiki/TeX_and_PDF_Synchronization
- lervag/vimtex - GitHub
- vim and TeX filetypes: plaintex vs. tex - superuser
- cocopon/iceberg - GitHub
- dein.vimによるプラグイン管理のマイベストプラクティス - Qiita
- help - Vim日本語ドキュメント