LoginSignup
8
4

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-10-26

概要

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
8
4
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
8
4