LoginSignup
2
6

More than 3 years have passed since last update.

Mac上のVS Codeで科研費LaTeXをビルドする

Last updated at Posted at 2019-10-01

TL;DR

  1. LaTeXファイルのあるディレクトリに.vscodeというディレクトリを掘る
  2. その中にこのファイルsettings.jsonという名前で保存する
  3. VS CodeでLaTeXファイルのあるディレクトリを開く
  4. 科研費LaTeXを含む日本語LaTeXファイルがVS Codeでビルドできるようになる

はじめに

科研費、書いてますか?>挨拶

LaTeXの編集をVS Codeでやっている人も多いと思いますが、VS Codeはデフォルトでは日本語LaTeXに対応していません。普段からVS Codeで日本語LaTeX文書を書いている人はともかく、急に日本語を書くことになって設定方法がわからなくなった人(=私)向けに設定方法を書いておきます。

ローカル環境の確認

コンパイル確認

まずはローカルで科研費LaTeXのコンパイルができることを確認しておきましょう。

科研費LaTeXのページに行って、作者に感謝の気持ちを捧げてから、適当なファイル、例えば基盤CのUTF Singleをダウンロードして、展開しましょう。

$ unzip kiban_c_utf_single_20190904.zip
$ cd kiban_c_utf_single

コンパイル、PDF化ができることを確認します。

$ platex kiban_c.tex
$ platex kiban_c.tex
$ dvipdfmx kiban_c

こんなPDFができれば確認完了です。

image.png

エラーの確認

VS Codeから実行するには、エラーが起きた時に入力待ちになっては困ります。わざとコマンドをミスして、エラーで止まらないコマンドを確認しておきましょう。

わざと\newcom1mandという命令を入れてコンパイルします。

$ platex kiban_c.tex
! Undefined control sequence.
l.15 \newcom
            1mand{\研究課題名}{象の卵}

入力待ちになりました。エラーで入力待ちにしたくない場合、platexを使うなら-interaction=nonstopmodeを指定します。

$ platex -interaction=nonstopmode kiban_c.tex
(snip)
! Undefined control sequence.
l.15 \newcom
            1mand{\研究課題名}{象の卵}

! LaTeX Error: Missing \begin{document}.
(snip)
Output written on kiban_c.dvi (8 pages, 14204 bytes).
Transcript written on kiban_c.log.

最後まで走りました。

VS Codeでの確認

では、VS Codeでkiban_c.texを開いてみましょう。LaTeX Workshopプラグインを入れてなければ入れておきます。

ファイルを保存するとLaTeX Workshopのレシピが走って、こんなエラーが出ます。

Latexmk: This is Latexmk, John Collins, 25 October 2018, version: 4.61.
Rule 'pdflatex': Rules & subrules not known to be previously run:
   pdflatex
Rule 'pdflatex': The following rules & subrules became out-of-date:
      'pdflatex'
(snip)udline.sty:2: Undefined control sequence.
\GenericError  ...                                
                                                    #4  \errhelp \@err@     ...
l.2 ...マクロ ver2.52:ロードします]

LaTeX Workshopにはレシピがいくつか用意されています。今回はLatexmkが走りましたが、日本語に対応していないために動きません。

なお、レシピの確認は、Shift+Command+Pで出てくるコマンドパレットでBuild with recipeを探すとできます。2019年10月現在、デフォルトでは

  • latexmk 🔃
  • latexmk (latexmkrc)
  • latexmk (lualatex)
  • pdflatex ➞ bibtex ➞ pdflatex × 2

の4つが定義されています。これはdefaultSettings.jsonに以下の様に定義されています。

    "latex-workshop.latex.recipes": [
        {
            "name": "latexmk 🔃",
            "tools": [
                "latexmk"
            ]
        },
        {
            "name": "latexmk (latexmkrc)",
            "tools": [
                "latexmk_rconly"
            ]
        },
        {
            "name": "latexmk (lualatex)",
            "tools": [
                "lualatexmk"
            ]
        },
        {
            "name": "pdflatex ➞ bibtex ➞ pdflatex × 2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        }
    ],

また、Recipeで参照されているpdflatexなどの実行方法はToolで定義されています。

"latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "lualatexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-lualatex",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "latexmk_rconly",
            "command": "latexmk",
            "args": [
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ],
            "env": {}
        }
    ],

ローカル設定

さて本題です。これから科研費LaTeX用に設定をいじるわけですが、全体の設定を変えるのはやめたほうが良いと思います。そこで、先程展開した科研費LaTeXのディレクトリにVS Codeの設定を書きましょう。VS Codeが開くディレクトリに .vscode/settings.jsonがあると読み込まれ、デフォルトの設定を上書きます。

先程のディレクトリkiban_c_utf_singleに、.vscodeというディレクトリを掘って、そこに以下の内容のファイルを作りましょう。

settings.json
{
    "latex-workshop.latex.recipes": [
        {
            "name": "platex*2+dvipdfmx",
            "tools": [
                "platex",
                "platex",
                "dvipdfmx"
            ]
        }
    ],
    "latex-workshop.latex.tools": [
        {
            "name": "platex",
            "command": "platex",
            "args": [
                "-interaction=nonstopmode",
                "%DOC%"
            ]
        },
        {
            "name": "dvipdfmx",
            "command": "dvipdfmx",
            "args": [
                "%DOC%"
            ]
        }
    ]
}

やっていることは、

  • レシピとしてplatexを二回のあとdvipdfmxをかける
  • その中身をツールとして記述する(ただファイル名を渡すだけ)

です。

この状態で、kiban_c.texのあるディレクトリをVS Codeで開きましょう。

$ code .

kiban_c.texを開き、コマンドパレットからLaTeX Workshop: Build with recipeを実行して、Please Select a LaTeX Recipeの画面で、platex*2+dvipdfmxしか表示されなければ正しく読み込まれています。

あとはファイルを保存するたびに勝手にPDFが作られるようになります。LaTeX Workshopの「View LaTeX PDF」を選ぶと、PDFが表示されます。あとはこれを見ながら修正していきましょう。

bibtexなどを使いたい場合や、別のビルドコマンドを使いたい場合は、上記のsettings.jsonを修正してください。

まとめ

Mac上のVS Codeで科研費LaTeXをビルドするには

  • 端末でビルドコマンドを確認し
  • そのビルドコマンドを.vscode/settings.jsonにレシピとツールとして記述

すればOKです。

ではがんばって科研費書きましょう。皆さんに(僕にも)良い結果が出ますように!

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6