Help us understand the problem. What is going on with this article?

macOS High Sierra & Ubuntu 16.04 で 日本語LaTeX環境構築 with Visual Studio Code

More than 1 year has passed since last update.

概要

macOS High Sierra & Ubuntu 16.04 でLaTeXの環境を整えたので,メモを残しておく.
(2018/03/28 LaTeX Workshopのバージョンアップに伴い更新)

LaTeX環境のインストール

以下のコマンドを実行して,一連のパッケージを導入する.
数GBあるので,通信環境が良好なところで実行することを勧める.

macOSの場合

ここの手順通りに進めることでインストールできた.
El Capitan / SierraでTeX環境をゼロから構築する方法

Ubuntuの場合

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install texlive texlive-lang-japanese texlive-lang-cjk
$ sudo apt install texlive-fonts-recommended texlive-fonts-extra

Visual Studio Codeの設定

以下の情報は,Visual Studio Code 1.21.1 & LaTeX Workshop 5.0.3 で動作確認をしている.
(5.0系以前と以降でLaTeX Workshopの設定ファイルの形式が変わった?)

Visual Studio Codeのインストール

TeXのエディタとしてはEmacs,VimやAtomがメジャーなようだが,Emacs,Vimは(まだ)極めていない,Atomは無駄に重いので,Visual Studio Codeを使う.

Visual Studio Code のページからパッケージをダウンロード,インストールする.

LaTeX Workshopのインストール

  1. Visual Studio Codeを起動
  2. F1を押してExtensions: Install Extensionsと入力
  3. MarketplaceでLaTeX Workshopを検索し,インストール
  4. Visual Studio Codeを再起動

LaTeX Workshopの設定

メニューから,基本設定 -> 設定をクリックし,setting.jsonを開く.
(ユーザー設定のタブが開かれていることを確認する.)

JSON形式でエディタ・拡張機能の設定を記述できる.

このJSONファイルにLaTeX Workshopの設定を追記する.

setting.json
{
    /////////////////////////
    // LaTex Workshopの設定 //
    /////////////////////////
    // toolsの設定
    "latex-workshop.latex.tools": [
        {
            "command": "pdflatex",
            "args": [
                "-kanji=utf8",
                "%DOCFILE%"
            ],
            "name": "pdflatex"
        },
        {
            "command": "platex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-jobname=\"%DOCFILE%\"",
                "-kanji=utf8",
                "-guess-input-enc",
                "%DOC%"
            ],
            "name": "platex"
        },
        {
            "command": "pbibtex",
            "args": [
                "-kanji=utf8",
                "%DOCFILE%"
            ],
            "name": "pbibtex"
        },
        {
            "command": "dvipdfmx",
            "args": [
                "%DOCFILE%.dvi"
            ],
            "name": "dvipdfmx"
        }
    ],
    "latex-workshop.latex.recipes": [
        {
            "name": "pdflatex (with pbibtex)",
            "tools": [
                "pdflatex",
                "pbibtex",
                "pdflatex",
                "pdflatex",
            ]
        },
        {
            "name": "pdflatex (without pbibtex)",
            "tools": [
                "pdflatex",
                "pdflatex",
            ]
        },
        {
            "name": "platex (with pbibtex)",
            "tools": [
                "platex",
                "pbibtex",
                "platex",
                "platex",
                "dvipdfmx"
            ]
        },
        {
            "name": "platex (without pbibtex)",
            "tools": [
                "platex",
                "platex",
                "dvipdfmx"
            ]
        },
    ],
    // auxiliaryファイルを自動で削除する
    "latex-workshop.latex.clean.enabled": true,
    // VSCodeのタブでプレビュー
    "latex-workshop.view.pdf.viewer": "tab",
}
  • "latex-workshop.latex.clean.enabled": true は,中間ファイルを自動で削除するかしないかの設定
  • "latex-workshop.view.pdf.viewer": "tab" は,PDFのプレビューをVSCodeのタブで行う設定
    • "browser"にすると,デフォルトのブラウザでプレビューできる

LaTeX Workshopの使い方

一度実行したコマンドは,F1を押して選択するだけで実行できるようになる.

タイプセット

  1. .texファイルを開いた状態でF1を押し,build with recipeと入力してEnterを押す.
  2. with bibtexwithout bibtex を選択してEnterを押す.

もしくは,.texファイルを開いた状態でF1を押し,build latex projectと入力してEnterを押してもよい.
この場合,latex-workshop.latex.recipes の先頭にある recipe が実行される.
(上記の設定では with bibtex)

PDFのプレビュー

.texファイルを開いた状態でF1を押し,view latex pdf fileと入力してEnterを押す.

プロジェクトごとの設定

Build LaTeX project でタイプセットを行う場合,上記の設定では with bibtexrecipe が使用される.
BibTeXを使用していないプロジェクト (\bibliography が記述されてない or \cite が一度も用いられていないもの?) では,この recipe でタイプセットを行おうとするととエラーが発生する.Build with recipe から適切な recipe を選択すればこのエラーは回避できるが,毎回選択するのは面倒である.

VSCodeでは,プロジェクトごとの設定によってユーザー設定を上書きできるので,それを使用してビルド手順を簡略化する.

  1. .vscode という名称のディレクトリを *.tex ファイルのあるディレクトリに作成
  2. .vscode/ 以下に settings.json という名称のファイルを作成
  3. settings.json に以下の記述を行う.
settings.json
{
    "latex-workshop.latex.recipes": [
        {
            "name": "without bibtex",
            "tools": [
                "extractbb",
                "platex",
                "platex",
                "dvipdfmx"
            ]
        },
        {
            "name": "with bibtex",
            "tools": [
                "extractbb",
                "platex",
                "pbibtex",
                "platex",
                "platex",
                "dvipdfmx"
            ]
        }
    ]
}

プロジェクトを開く場合には,.vscode ディレクトリを内包するディレクトリをVSCodeで開く必要がある.
ターミナルから開くのが簡単だと思う.
(ターミナルからVisual Studio Codeを起動する方法【公式の方法】)

$ code /path/to/directory_containing_vscode_dir/

以上の設定を行うと,このプロジェクトで Build LaTeX project によるタイプセットを行う場合,without bibtexrecipe が使用される.

おまけ

以下のようなシェルスクリプトを用意しておくと,一時ファイルをまとめて削除できる.

remove_tmpfiles.sh
#!/bin/sh
if [ $# = 1 ]
then
    path=$1
    dir=$(cd $(dirname $path) && pwd)
    file=$(/usr/bin/basename $path)
    abs_path=$dir/$file
    FILENAME_AND_EXT=$dir/${abs_path##*/}
    FILENAME=${FILENAME_AND_EXT%.*}
    FILE_EXT=$dir/${FILENAME_AND_EXT##*.}
    if [ $FILE_EXT = $dir"/tex" -o $FILE_EXT = $dir"/pdf" ]
    then
        if [ -e ${FILENAME}.aux ]
        then rm -i ${FILENAME}.aux
        fi
        if [ -e ${FILENAME}.log ]
        then rm -i ${FILENAME}.log
        fi
        if [ -e ${FILENAME}.blg ]
        then rm -i ${FILENAME}.blg
        fi
        if [ -e ${FILENAME}.bbl ]
        then rm -i ${FILENAME}.bbl
        fi
        if [ -e ${FILENAME}.dvi ]
        then rm -i ${FILENAME}.dvi
        fi
        if [ -e ${FILENAME}.brf ]
        then rm -i ${FILENAME}.brf
        fi
        if [ -e ${FILENAME}.synctex.gz ]
        then rm -i ${FILENAME}.synctex.gz
        fi
    fi
fi
$ ./remove_tmpfiles.sh file.tex
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away