BEIKE blog

備忘録です

LaTeX 自動コンパイル環境作成(texファイル保存時)[vscode]

概要

Latexを使っていくにあたり自動でコンパイルできるような方法を今回紹介します。

動作環境&筆者のPCスペック(実際に動かした)

環境

  • Ubuntu18.04.4 LTS(実機)
  • vscode1.44.2 x64

やり方


vscodeLatexをインストールする
vscodeの追加機能LaTeX Workshopを追加する
③.latexmkrcの作成
④settings.json の編集

vscodeLatexをインストールする

  • vscodeのインストール方法は以下の記事です

UbuntuにVSCodeをインストールする3つの方法 - Qiita

  • Latexのインストール方法
~$ sudo apt install texlive-lang-cjk xdvik-ja evince
~$ sudo apt install texlive-fonts-recommended texlive-fonts-extra
  • 自動でPDFを更新してもらうためのツールをインストール
~$ sudo apt install latexmk

vscodeの追加機能LaTeX Workshopを追加する

左からExtentionsタブを選択し f:id:beike:20200520203025p:plain


③.latexmkrcの作成

~$ cd
~$ code .latexmkrc

以下コピペ

#!/usr/bin/env perl

# LaTeX
$latex = 'platex -synctex=1 -halt-on-error -file-line-error %O %S';
$max_repeat = 5;

# BibTeX
$bibtex = 'pbibtex %O %S';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';

# index
$makeindex = 'mendex %O -o %D %S';

# DVI / PDF
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;

# preview
$pvc_view_file_via_temporary = 0;
if ($^O eq 'linux') {
    $dvi_previewer = "xdg-open %S";
    $pdf_previewer = "xdg-open %S";
} elsif ($^O eq 'darwin') {
    $dvi_previewer = "open %S";
    $pdf_previewer = "open %S";
} else {
    $dvi_previewer = "start %S";
    $pdf_previewer = "start %S";
}

# clean up
$clean_full_ext = "%R.synctex.gz"

④settings.json の編集

  • 以下のようにsettings.jsonを開きます f:id:beike:20200520205047g:plain

以下コピペ

{
    // ---------- Language ----------

    "[tex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },

    "[latex]": {
        // スニペット補完中にも補完を使えるようにする
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        // インデント幅を2にする
        "editor.tabSize": 2
    },

    "[bibtex]": {
        // インデント幅を2にする
        "editor.tabSize": 2
    },


    // ---------- LaTeX Workshop ----------

    // 使用パッケージのコマンドや環境の補完を有効にする
    "latex-workshop.intellisense.package.enabled": true,

    // 生成ファイルを削除するときに対象とするファイル
    // デフォルト値に "*.synctex.gz" を追加
    "latex-workshop.latex.autoClean.run": "onBuilt",
    "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",
        "*.ilg",
        "*.synctex.gz"
    ],

    // 生成ファイルを現在のディレクトリに吐き出す
    "latex-workshop.latex.outDir": "",

    // ビルドのレシピ
    "latex-workshop.latex.recipes": [
        {
            "name": "latexmk",
            "tools": [
                "latexmk"
            ]
        },
    ],

    // ビルドのレシピに使われるパーツ
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-silent",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
        },
    ],
}

動作について

自動でコンパイルさせるには一度コンパイルを通しておく必要があります。

Ctr+sでtexファイルを保存したときにコンパイルされます。

以下実行動画 (gifだとバグったので、、)

youtu.be

参考サイト

qiita.com