GitHub 社が Atom の開発終了をお知らせしたのを良いタイミングだと思って、VS Code に乗り換えることにした。
homebrew
でインストールが可能。
brew install visual-studio-code --cask
Atom と操作が似ている部分が多くて馴染みやすかった(どっちが真似したんだ?)。 同じ GitHub アカウントでログインしておけば複数PCで設定が共有されるの(Settings Sync)が非常に便利である。
Cmd + Shift + p
でコマンドパレットを開ける。Cmd + ,
の設定画面、あるいはその右上をクリックして開く settings.json
で編集する。Cmd + k
+ Cmd + s
のキーボードショートカット画面、あるいはその右上をクリックして開く keybindings.json
で編集する。settings.json
(あるいは設定画面)を使ってエディターの共通設定をいくつか変更。
"editor.mouseWheelScrollSensitivity": 0.6,
"editor.tabSize": 2,
"editor.wordWrap": "on",
"editor.formatOnSave": true,
上から順に
Alt + z
スペルチェック用に Code Spell Checker
を導入した。
スペルミスした部分が青波線で表示され、以下の操作により修正できるようになる。
Cmd + .
出現するダイアログから正しい単語を選ぶ。latexmk
を使用する場合、(未設定ならば)設定ファイルを作成する。
今回は upLaTeX
用のグローバル設定を ~/.latexmkrc
に作って
$latex = 'uplatex %O %S';
$bibtex = 'upbibtex %O %B';
$dvipdf = 'dvipdfmx %O -o %D %S';
$max_repeat = 10;
としておいた。
VS Code 側では、最も有名な拡張機能である LaTeX Workshop
をインストールする。
settings.json
の内容は ここやここを参考に、こんな感じ。
// ---------- Language ----------
"[tex]": {
// スニペット補完中にも補完を使えるようにする
"editor.suggest.snippetsPreventQuickSuggestions": false
},
"[latex]": {
// スニペット補完中にも補完を使えるようにする
"editor.suggest.snippetsPreventQuickSuggestions": false
},
// ---------- LaTeX Workshop ----------
// 使用パッケージのコマンドや環境の補完を有効にする
"latex-workshop.intellisense.package.enabled": true,
// 生成ファイルを削除するときに対象とするファイル
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
// "*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk",
"*.snm",
"*.nav",
"*.dvi",
// "*.synctex.gz"
],
// ビルドのレシピ
"latex-workshop.latex.recipes": [
{
"name": "pdflatex ➞ bibtex ➞ pdflatex x 2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
{
"name": "latexmk (uplatex)",
"tools": [
"latexmk-uplatex"
]
}
],
// ビルドのレシピに使われるパーツ
"latex-workshop.latex.tools": [
{
"name": "latexmk-uplatex",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdfdvi",
"%DOC%"
],
"env": {}
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
クリーン時に削除されるファイルのリストでは、latexdiff-vc
や論文の投稿に必要な *.bbl
ファイルと、sync に必要な *.synctex.gz
ファイルは除外している。
recipes
は *.tex
ファイルのビルドに使われるコマンド群を指定しており、各コマンドの詳細を tools
が指定している。
デフォルトでは一番上のレシピである pdflatex
が使われ、コマンドパレットから Build with recipe
を選ぶことで latexmk + uplatex
も使えるようになっている。
左下の歯車から、ユーザースニペットの構成、latex
と進み、latex.json
を作成する。
この中にテンプレートを登録しておくことで、次回から簡単に呼び出せるようになる。ひとまず Referee report への返答中だったので、これを登録してみる。
"Referee Reply": {
"prefix": "reply",
"body": [
"\\documentclass[12pt]{article}",
"\\begin{document}",
"",
"We thank the referee very much for careful reading and useful comments that help to improve our draft.",
"Replies to the comments are listed below.",
"",
"\\begin{enumerate}",
"\t\\item ...",
"",
"\textbf{Reply}",
"",
"...",
"\\end{enumerate}",
"",
"We hope that we have addressed the referee's questions to their satisfaction and that the revised manuscript is suitable for publication.\\\\",
"",
"Sincerely,\\\\",
"",
"\\noindent",
"So Chigusa\\\\",
"...",
"",
"\\end{document}"
],
"description": "reply to referee report"
}
任意の *.tex
ファイル内で reply + Tab
とすると返答のテンプレートができる。
latex-workshop.latex.autoBuild.run
= onSave
(保存のたびに自動でビルド)latex-workshop.latex.autoClean.run
= onBuilt
(ビルドのたびに自動でクリーン)latex-workshop.synctex.afterBuild.enabled
= true
(ビルド後のプレビュー画面がカーソル位置まで飛ぶ)latex-workshop.latex.recipe.default
= lastUsed
(ビルドのレシピは最後に使用したものを使用)Cmd + Alt + b
Cmd + Alt + v
Cmd + Alt + c
Cmd + Alt + j
Cmd + Click
\align + Tab
等@a + Tab
等以下の拡張機能を使用。
pandoc
の代わり)このページを参考に、好みのスタイルシートを使って出力できるように設定する。
GitHub のスタイルシートを ここ から手に入れて、settings.json
に追記。
//デフォルトのCSSを無効にする
"markdown-pdf.includeDefaultStyles": false,
// 上記で編集したCSSを指定する
"markdown-pdf.styles": ["<path-to-css>"],
Cmd + Alt + v
Cmd + Alt + e
Ctrl + q
Ctrl + Alt + q
Cmd + b
Cmd + i
Ctr + s
Cmd + .
開発者ツールが使用できる優秀な html ビューアー、Live Preview
を導入した。
Alt + k
(markdown preview と競合するようなのでショートカットを分けてある)