VSCodeを使ってLateXを使えるようになりたい。今までは、OverleafやCloud Latexのオンラインエディターを使ってLatexを書いていていました。Overleafは共同編集ができて便利なのですが、なにぶんデータサイズが大きくなるとコンパイルがtime outするようになって限界を感じました。仕方なく自分のPCにTex環境を作ることにしました。
MacにTex環境を構築する方法はたくさん解説があります。自分も最初は下記の記事を参考に進めてみました。しかし、自分の環境では次の記事の通りに実行してエラーで止まる箇所があってこの記事の通りにやるのは諦めました。結局、MacTeXを使わずにVSCodeでLateXを編集できるようになったみたいなので、そのやり方をまとめます。
目標
・VSCodeでLateXを編集できる
・MacTeXを使わずにbasictexのみでLatexを動かす
・VSCode上で.texを保存するとpdfが自動更新される
→MacにTex環境を構築する王道はMacTeXだと思うのですが、MacTeXは4GBくらい容量を食うそうなのでできれば入れずにできると嬉しい
-まだできてないこと
・コンパイルはpdfLatexでやっているので日本語対応できてないです、pLateXやLuaLaTeXの日本語対応のLateXを使えるようにしたい
・
環境
OS: macOS Monterey Version 12.7.3
Processor: 1.6 GHz Dual-Core Intel Core i5
・Homebrew、VSCodeは既にインストール済み
うまくいった実施事項
(1) Homebrewのアップデート
brew update && brew upgrade && brew cleanup
(2) BasicTeXのインストール
brew install --cask basictex
ここで、/usr/local/texlive/2024basic/bin/universal-darwin
内にtlmgr
がインストールされるので確認しましょう。2024basic
がBasicTeXのバージョンに対応して変わるみたいです。
(3) tlmgrのアップデート
export PATH=$PATH:/usr/local/texlive/2024basic/bin/universal-darwin
sudo tlmgr update --self --all
最初はtlmgr
のPATHが通ってないのでエラーが出ます。最初にexportでPATHを通し、tlmgrのupdateをします。
(4) latexmkのエイリアスを設定
alias latexmk='/usr/local/texlive/2024basic/bin/universal-darwin/latexmk'
ここで、コンパイルしたいtest.tex
を用意して次のコマンドを実行するとpdfを作成してくれるはずです。
latexmk -pdf hoge.tex
(5) latexmkrcの作成
touch ~/.latexmkrc
これでまず、ホームディレクトリに.latexmkrcを作ります。この.latexmkrcをVSCodeで開いて次を書き込みます
# 最大のタイプセット回数
$max_repeat = 5;
# DVI経由でPDFをビルドすることを明示
$pdf_mode = 3;
# pdfLaTeXを使う
# -halt-on-error:初めのエラーで終わらせる
$latex = 'pdflatex %O %S -halt-on-error';
# pBibTeXを使う(参考文献)
$bibtex = 'bibtex %O %S';
# Mendexを使う(索引)
$makeindex = 'mendex %O -o %D %S';
# DVIからPDFへの変換
$dvipdf = 'dvipdfmx %O -o %D %S';
基本的に参考の記事と同じですが、latex = 'pdflatex %O %S -halt-on-error';
のところが、platexをpdflatexに置き換えています。
(6) VSCodeの設定 その1 〜LaTeX Workshopのインストール〜
- アクティビティバーの拡張機能マークをクリック(四角が4つあるマーク)
- LaTeX Workshopと検索
- LaTeX Workshopのインストールをクリック
-
cmd + shift + P
でコマンドパレットを表示. -
LaTeX Workshop: Build with recipe
>latexmk
を選択
(7) VSCodeの設定 その2 〜settings.jsonの設定〜
settings.json
を開いて、次を貼り付けます。参考の記事ほぼそのままですが、"latex-workshop.latex.tools"
の"args"
に"-interaction=nonstopmode"
を追加しています。これによりコンパイル中にエラーで止まってしまうことを回避します。他の設定が既にある場合は、{}
で全体を括り、最後以外の全ての設定の後ろに,
を忘れずに打ちます。
{
//----other settings----
//----latex settings----
//viewerをタブで開く
"latex-workshop.view.pdf.viewer": "tab",
//intellisenseを有効にする
"latex-workshop.intellisense.package.enabled": true,
//生成ファイルを格納するディレクトリ名
"latex-workshop.latex.outDir": "",
//自動でPDFを更新
"latex-workshop.latex.autoBuild.run":"onFileChange",
//生成ファイルで削除するファイル
"latex-workshop.latex.autoClean.run": "onBuilt",
"latex-workshop.latex.clean.fileTypes": [
"*.aux","*.bbl","*.blg","*.dvi","*.fdb_latexmk","*.fls","*.synctex.gz","*.toc"
],
//ビルドの動作
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": ["latexmk"]
},
],
//ビルドのコマンド
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-interaction=nonstopmode",
"-l",
"%DOC%",
]
},
]
//----other settings----
}
以上で一回VSCodeを再起動します。それでVSCode上で.texを保存するとpdfが自動更新されるようになりました。
うまくいかなかった実施事項
途中までは参考の記事を参考にして進めたので、その際のエラーを列挙します。
(0) MacTeXのインストール
brew install --cask mactex-no-gui
ここで下記のエラーが出ました。
-エラー1: Failed to download resource "openjpeg"
mactexをインストールするときいろんな物も一緒にインストールするんですが、そのうちのopenjpegがインストールできないとのこと。次のようにbrewでopenjpegを別個にインストールすることで次に進みました。
brew install openjpeg
-エラー2: Failed to download resource "ghostscript"
openjpegと同様にghostscriptがインストールできないとのこと。これも、次のようにbrewで別個にインストールすることで次に進みました。
brew install ghostscript
-エラー3: Cask 'mactex-no-gui' conflicts with 'basictex'.
basictexとmactex-no-guiが競合するというので、次のようにbasictexを一回アンインストールしました。するとこのエラーは消えます。
brew uninstall basictex
-エラー4: No space left on device - fcopyfile
"Instaling Cask mactex-no-gui"を実行中にストレージの容量がいっぱいになって止まりました。いらないファイルを消してきれいにして続けました。
その他参考にしたサイト