概要
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のインストール
- Visual Studio Codeを起動
- F1を押して
Extensions: Install Extensions
と入力 - Marketplaceで
LaTeX Workshop
を検索し,インストール - Visual Studio Codeを再起動
LaTeX Workshopの設定
メニューから,基本設定 -> 設定をクリックし,setting.json
を開く.
(ユーザー設定のタブが開かれていることを確認する.)
JSON形式でエディタ・拡張機能の設定を記述できる.
このJSONファイルにLaTeX Workshopの設定を追記する.
{
/////////////////////////
// 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を押して選択するだけで実行できるようになる.
タイプセット
-
.tex
ファイルを開いた状態でF1を押し,build with recipe
と入力してEnterを押す. -
with bibtex
かwithout 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 bibtex
の recipe
が使用される.
BibTeXを使用していないプロジェクト (\bibliography
が記述されてない or \cite
が一度も用いられていないもの?) では,この recipe
でタイプセットを行おうとするととエラーが発生する.Build with recipe
から適切な recipe
を選択すればこのエラーは回避できるが,毎回選択するのは面倒である.
VSCodeでは,プロジェクトごとの設定によってユーザー設定を上書きできるので,それを使用してビルド手順を簡略化する.
-
.vscode
という名称のディレクトリを*.tex
ファイルのあるディレクトリに作成 -
.vscode/
以下に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 bibtex
の recipe
が使用される.
おまけ
以下のようなシェルスクリプトを用意しておくと,一時ファイルをまとめて削除できる.
#!/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