【LaTex】VSCodeで作る卒論・修論執筆環境【Docker】


この記事は、鹿児島大学生 Advent Calendar 2019の8日目の記事です。

やっていき

この時期になるといよいよ卒論や修論を書き始めるぞ、という方が多いのではないでしょうか?
どうせ書くならいい環境を作ってから執筆したいですよね。

2年前、卒論執筆環境は以下の記事を参考に構築したのですが、

  • 日常的に使用しているテキストエディタがAtomからVSCodeに変わった
  • なんとなくDockerが使えるようになった

といった自身の変化があり、それに合わせた論文執筆環境を構築します。
意外とWordで論文書いてた or 書くつもり という友人・後輩も多かったので、参考になれば幸いです。

(参考)【必見】Atomで作る快適な論文執筆TeX環境【Mac】【卒論】【LaTeX】

Dockerの導入

まずはDockerの環境です。

macの方はこちらから
DockerをMacにインストールする(更新: 2019/7/13)

Windowsの方は、
奇しくも鹿児島大学生 Advent Calendar 20197日目の記事がまんまそれなのでこちらを参照してみてください。(さっそくカレンダーが繋がって嬉しい)
【Docker】Docker for Windowsの環境をセットアップしてDockerを試す

VSCodeの導入

VSCodeをインストールしてください。
インストール後、左のブロックのアイコンから拡張機能を追加できますので、
Remote Developmentをインストールします。

(参考)
VS Code Remote Development で Docker 開発環境を利用する
Dockerで立ち上げた開発環境をVS Codeで開く!

余談ですが、VSCode Remoteは本当に便利な機能で、研究室のGPUマシンやGCPのインスタンスにssh接続してVSCode上で開発できるのでとても重宝しています。

テンプレートをgit clone

こちらのテンプレートをフォークしてオレオレテンプレートを作成しました。
git clone https://github.com/fuchami/thesis-sample.gitしてください。
https://github.com/fuchami/thesis-sample.git

Dockerfileはこちらを参考にしました(ほとんど同じです)
https://github.com/Paperist/docker-alpine-texlive-ja

ハマったところとしては、
- alpine-linuxがbashではなく、ashがデフォルトなところ
- sedコマンドが何故かmacとLinuxでは非互換なところ

sedのスペース要る要らないは初見じゃ絶対分からないです...

(参考)
sedの-iオプションの非互換

執筆の流れ

VSCode Containerへ

texファイルがあるディレクトリをVSCodeで開いたら、
左下にある青い><マークをクリック

フォルダーの選択

Open Folder in Container...を選択してcloneしてきたディレクトリを開きます。

コンテナの選択

コンテナをどこから選ぶか聞かれるので、
From 'docker-compose.yml' を選択します。

buildを待つ

Dockerのbuildが走るので5分ほど待ちます。
これでDockerでのLatex環境が整いました。

Latex Workshopを入れる


このタイミングで拡張機能の LaTex Workshopも入れましょう。シンタックスハイライトやスニペット機能、VSCode内でPDFファイルが閲覧可能となり、本記事上部の状態が出来上がります。

いざ

あとは、下部のターミナルにて、

# PDFファイルをコンパイル
$ latexmk thesis.tex

# 監視モードを起動。texファイルが更新されるたびにPDFをコンパイル
$ latexmk -pvc thesis.tex 

などなどすればOKです。

まとめ

Docker&VSCodeを使うことで、環境を汚さずに簡単に論文執筆環境を構築することが出来ました。
VSCode内でPDF閲覧手段がLaTex Workshopでの機能のみ&自動更新が無いのでそのあたりの痒いところに手が届けば完璧かなと思います。