最近のLaTeX事情

以前各環境でTeX Liveをインストールする記事を書いたのですが、最近はもっぱらDockerを使ってどの環境でも同じように\LaTeXを書いてるのでそれの紹介をします。

blog.akashisn.info

blog.akashisn.info

blog.akashisn.info

VS Code + Remote Containers

VS CodeのRemote Development機能を使って\LaTeXの環境とおなじみのLaTeX WorkshopをContainerの中に閉じ込めていつでも同じ環境で作業することが出来ます。

marketplace.visualstudio.com

marketplace.visualstudio.com

Remote Developmentのインストール

Remote Developmentは、

  • Remote SSH
  • Remote Containers
  • Remote WSL (Windowsの場合)

の3つがセットになってるのでContainer機能だけでいい場合はRemote - Containersをインストールします。

marketplace.visualstudio.com

いつものように拡張機能からインストールします。 f:id:akashisn:20211218192851p:plain

使い方

準備

VS Codeで\LaTeXのプロジェクトルートとなるフォルダを開きます。

ルートディレクトリに .devcontainer と言うフォルダを作ってその中に devcontainer.jsondocker-compose.yml と言うファイルを作ります。

f:id:akashisn:20211218193306p:plain

そしてそれぞれ以下の内容を貼り付けます。

Dockerで使うイメージを今回は

arkark様のlatexmk-docker

github.com

を少しカスタマイズした

github.com

を使ってますが、\LaTeXの環境があれば何でもいいです。

devcontainer.json

  • name: このDevContainerの名前
  • dockerComposeFile: DevContainerの元となるイメージを指定するためのComposeファイル
  • extensions: Containerの中にインストールするVS Codeプラグイン
  • service: このDevContainerの中で動かすComposeサービスの名前
  • settings: Containerの中で有効なVS Codeの設定
    • latex-workshop.*: LaTeX Workshopに関する設定
  • workspaceFolder: WorkDirの設定(Dockerイメージと合わせる)
  • shutdownAction: DevContainerを停止するときにする動作

次に、 latexmkの設定をする。 フォルダルートに .latexmkrc と言うファイルを以下の内容で作成します。

これで準備完了

Containerの中に入る

左下の緑のところを押して

f:id:akashisn:20211218195255p:plain

Reopen in Containerを選ぶ

f:id:akashisn:20211218195335p:plain

すると、DockerのイメージをダウンロードしてContainerを実行してくれます。

左下の緑のところが "Dev Container:" となっていればContaeinrを開いています。

f:id:akashisn:20211218195456p:plain

ビルド

f:id:akashisn:20211218195818p:plain

TeXファイルを開いて左の端にある \TeXを押して "Build LaTex project" を押すとデフォルトの uplatex によるビルドが始まります。

そして、その下にある "View LaTeX PDF" を押すと、タブが別れてPDFのプレビューが表示されます。

f:id:akashisn:20211218195858p:plain

ビルドされたPDFは、 out フォルダ以下に生成されます。

また、 lualatex でビルドしたいときは、

f:id:akashisn:20211218200836p:plain

Ctrl + Shift + P を押して "LaTeX Workshop: Build with recipe" を選択して、

f:id:akashisn:20211218200539p:plain

"latexmk with lualatex" を選択すると lualatex によるビルドが始まります。

f:id:akashisn:20211218200719p:plain

一回ビルドを行うと保存を行うたびに再度ビルドがかかってプレビューも更新されるので便利