VS Codeを使った私のTeX執筆環境
卒論、修論、レポートに追われている皆さん、こんにちは。
初めてTeXを使っている人もそうでない方も、TeXの執筆環境の構築は迷うところではないでしょうか。
私は7,8年ほどTeXを使用しており執筆環境は毎年試行錯誤してきましたが、 昨年から採用したVS Codeを中心とした執筆環境が中々良さげなのでまとめようと思います。
私の必要要件
- 複数環境で同じように使える
- 強力な使い慣れたエディタで書ける
- 元々開発、執筆エディタを統一するようにしていた。数年前からVS Codeをメインで使うようになり、移行したかった
- TeXworksちょっとつらい
- 自前スタイルファイルを使わない
一言で言うと
VS Codeのスニペットと二つの拡張機能をごりごり使います
VSCodeとは
VS Code(Visual Studio Code)とはMicrosoftが開発したフリーの高機能エディタで、Windows、macOS、Linux上で動作します。
この手のエディタとしては後発(Sublime TextとかAtomとかが先)ですが、 高機能、比較的軽量、本体も拡張機能も開発が活発とあり、かなり使用者が増えている印象です。
環境構築
TeX インストール
TeXLiveを入れましょう。TeX Wikiに全て書いてあります。 texwiki.texjp.org
使用するOSに合わせたページを見ながらインストールしてください。
VS Code インストール
インストーラを落としてから入れましょう。従うだけです。簡単。
拡張機能 インストール
VS Codeを起動し、拡張機能を入れていきます。 Extensionタブに拡張機能名を入れると出てきます。
Settings Sync
GithubのGistを介して、異なるPC間で設定を全て同期する拡張機能です。 設定ファイルから、スニペット、キーバインド、インストール済みの拡張機能などおおよそ同期できます。 複数の環境でVS Codeを使用する場合は必須とも言えるのではないでしょうか。 使用する環境が一つしかない場合は必要ありません。
READMEの記述通りにセットアップするとすぐ使用できます。 詳しい使用方法は別記事に譲ります。
LaTeX Workshop
かなり強力なLaTeX用拡張機能です。 頻繁にアップデートを重ねており、有名所ではSublime TextのLaTeXToolsにも匹敵する機能を持ちつつあります。 例えば
といった基本的なところから、
- bibファイルの文献タグ、labelなどの補完
- 数式部分をホバーするとプレビュー表示
などといった機能も搭載しています。
こちらは拡張機能タブから検索、インストールすることですぐに使用できます。
VS Code 設定
LaTeX Workshop
この拡張機能で設定可能な項目は大量にあるのですが、ここではビルドコマンドの設定をしてきます。
LaTeX Workshopではビルドの設定を「tools」と「recipes」に分けて行います。 役割は以下のように分けられます。
- tools:ターミナルに打ち込むものと同じコマンドと引数を書く
- recipes:toolsに書いたコマンドを組み合わせて、実行するビルドセットを構築する
これらはそれぞれ複数記入可能です。 つまり、例えばtoolsにplatexのコマンドとdvipdfmxのコマンドを書いておき、recipedでこれらを組み合わせたセットを作ればplatexでビルドができます。
とありますが皆さんはもちろんlatexmk使いますよね? というわけで私の使っているLaTeX Workshopの設定はこんな感じです。
"latex-workshop.latex.recipes": [{ "name": "latexmk", "tools": ["latexmk"] }], "latex-workshop.latex.tools": [{ "name": "latexmk", "command": "latexmk", "args": [ "-e", "$latex=q/platex -synctex=1 -halt-on-error/", "-e", "$bibtex=q/pbibtex/", "-e", "$biber=q/biber --bblencoding=utf8 -u -U --output_safechars/", "-e", "$dvipdf=q/dvipdfmx %O -o %D %S/", "-e", "$makeindex=q/mendex %O -o %D %S/", "%DOC%" ] }],
こんなコマンドなってねえよっていう方は適宜変えてください。 あと教えてください。
スニペット
LaTeX Workshopにもスニペットはある程度用意されているのですが、 さらによく使うものを登録しています。 例えば表は
"Table": { "prefix": "table", "body": [ "\\begin{table}[${1:t}]", "\\centering\\caption{$2}\\label{tabl:$3}", "\\begin{tabular}{$4}\\hline", "$5", "\\end{tabular}\\end{table}" ], "description": "set table" }
横並びの図は、まず"mfigure"と名付けたスニペットを展開して
"Multi fig": { "prefix": "mfigure", "body": [ "\\begin{figure}[${1:tbp}]", "${4:figureitem}", "\\caption{$2}\\label{fig:$3}\\end{figure}" ], "description": "set multi fig. Please use 'mfigitem'" }
figureitemのところに"figureitem"を展開するようにしました。
"Multi fig item": { "prefix": "figureitem", "body": [ "\\begin{minipage}[t]{${1:size}\\hsize}\\centering", "\\includegraphics[${2:width=\\linewidth}]{$3}", "\\subcaption{$4}\\end{minipage}" ], "description": "set multi fig item" }
また、よく使う書き出し部分も登録しています。
"TeX templete": { "prefix": "templete", "body": [ "\\documentclass[a4j, dvipdfmx]{jsarticle}\n", "\\usepackage[dvipdfmx]{graphicx}", "% \\usepackage[dvipdfmx, draft]{graphicx} % Output only frame of figure", "\\usepackage{amsmath, amssymb} % Extend math", "\\usepackage{float} % Improved interface for floating objects", "\\usepackage{multirow} % Create complex table", "\\usepackage{url} % Display URL", "\\usepackage{subcaption} % Use subcaption", "\\usepackage{tabularx} % Newline in table cell\n", "\\begin{document}", "$1", "\\end{document}" ], "description": "documentclass and packages" }
まとめ
以上、いかがでしたでしょうか。
簡単ではありますが、それなりに強力、高速、便利な執筆環境が出来たのではないかと思います。 この記事をご覧になった皆さんの参考になりましたら嬉しいです。
付録
今私が使っているVS Codeのlatexスニペットを公開します。
スニペットから\refを参照すると補完が効かないのが今唯一上手く行ってない部分です。