はじめに
vscodeでtexを編集する環境が充実してそうなので入れてみました.プレビューがすぐに反映されるので良いです.
※試した環境 : ubuntu18.04 LTS
入れるもの
- latex環境(texlive)
- vscode
- LaTeX workshop(vscodeの拡張)
LaTeX環境の構築
$ sudo apt update $ sudo apt upgrade
LaTeXのインストール
$ sudo apt install texlive-lang-cjk xdvik-ja evince $ sudo apt install texlive-fonts-recommended texlive-fonts-extra
デフォルトでの使い方
$ platex hoge.tex $ dvipdfmx hoge.dviコンパイルされたpdfを閲覧する際に,evinceを使用するとpdfを開いたまま再コンパイルできるらしい.
$ evince hoge.pdf &
.latexmkrcの設定
~/.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"
latexmkが入ってない場合
texliveと一緒に入るらしいのですが,入ってない場合にはaptで入れちゃえば大丈夫だと思います.(僕はそうしましたが今のところ問題ありません)
$ sudo apt install latexmk
vscodeの設定
vscodeにLaTeX workshopを入れたら,setting.jsonに以下のような設定を追加※参考ページの設定をそのまま使わせていただきました.
"[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.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",
"*.synctex.gz"
],
// 生成ファイルを "out" ディレクトリに吐き出す
"latex-workshop.latex.outDir": "out",
// ビルドのレシピ
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
},
],
// ビルドのレシピに使われるパーツ
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-silent",
"-outdir=%OUTDIR%",
"%DOC%"
],
},
]
独自のスニペットを登録
vscode内の左下の歯車からユーザースニペットを選択,latexを選択するとlatex.jsonが生成される.そこにスニペットを定義する.(正直そんなにわかってないけど,こちらも参考ページの例を載せときます)
{
"report": {
"prefix": "report",
"body": [
"\\documentclass[${1:a4paper,11pt}]{${2:jsarticle}}",
"",
"",
"% 数式",
"\\usepackage{amsmath,amsfonts}",
"\\usepackage{bm}",
"% 画像",
"\\usepackage[dvipdfmx]{graphicx}",
"${3}",
"",
"\\begin{document}",
"",
"\\title{${4}}",
"\\author{${5}}",
"\\date{${6:\\today}}",
"\\maketitle",
"",
"",
"$0",
"",
"",
"\\end{document}"
],
"description": "授業レポート用テンプレート"
}
}
- 最初の"report"keyは一意の文字列なら何でも良い
- "prefix" : スニペットを呼び出すときの名前
- "body" : スニペットの内容.リストの各要素はそれぞれ1行に展開される
実際に使ってみる
- 以下のtexファイルを作成しctrl+alt+bでビルド
- ctrl+alt+vでプレビューを表示
// test.tex
\documentclass{jarticle}
\begin{document}
これはサンプルです。
\end{document}
以下のようにプレビューが表示されればOK