0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VSCodeでLatex環境つくったらはまった

Last updated at Posted at 2023-11-11

2023/11/30追記

以下の方法よりも良いやり方を見つけました。latexmkは使わずに、こちらのgitsで紹介されている設定を使うというものです。
https://gist.github.com/Ikuyadeu/204d06fffd912f441b383eb02463e29b

私の環境だとpbibtexでコケたので、step2は削除して使ってます。(bibtexのコンパイルだけ、overleaf上で行っています)

一応以下は参考までに残しておきます。


Latexの編集にはOverleafが便利ですが、ボリュームのある原稿を書くときには、コンパイルが重かったりsynctexが動作しなかったりと微妙なかんじです。
そこで、ローカルのVSCodeでTexを編集したくなりました。

かなり苦労しましたが、一応最低限の設定ができたのでメモ。

できたこと、はまったこと

  • VSCodeで快適に編集
    • 外部のstyファイルに定義してあるコマンドが、コード補完に認識されない問題にはまった
  • ターミナルでコンパイル
    • Latex Workshopでコンパイルすると、なぜかエラーを吐く。頑張ったが解消しなかったので、Terminalでコンパイルすることにした。

要件

MacTex
VSCode

設定

基本的にはこの記事のとおりにやる
VSCode で最高の LaTeX 環境を作る #VSCode - Qiita

はまったこと

編集

外部のstyファイルに定義してあるカスタムコマンド(xyz.sty)が、コード補完に出てこなかった。

この問題は、xyz.styをxyz.texに拡張子を変更し、\usepackage{xyz}のかわりに\input{xyz}を使うことで解消した。

コンパイル

これがかなり苦戦した。Latex Workshopでコンパイルすると、こんなエラーがでてしまう

[05:18:18.843][Builder] Recipe step 1 The command is latexmk:["-f","-silent","-outdir=out","%WS1%/apssamp"].
[05:18:18.843][Builder] env: undefined
[05:18:18.843][Builder] root: %WS1%/apssamp.tex
[05:18:18.843][Builder] cwd: %WS1%
[05:18:18.844][Builder] LaTeX build process spawned with PID 5912.
[05:18:18.903][Builder] Recipe returns with error code 12/null on PID 5912.
[05:18:18.903][Builder] Does the executable exist? $PATH: <パスの一覧>, $Path: undefined, $SHELL: /bin/zsh
...

これはどうしても修正できなかったので、Terminalでコンパイルすることにした。Terminalでコンパイルすると、VSCodeで開いているPDFは自動で更新されないので、 Ctrl + Shif + Pから "Latex Workshop: Refresh all Latex PDF viewers"を実行する。(あらかじめ、PDFは開いておくこと)

このコマンドをHotkeyに登録しておくと捗る。

Terminalでコンパイルするときの注意点

  • latexmkrcを削除してからコンパイルする
    • Overleafからpullすると、きっとルートディレクトリに存在しているはず(日本語で書いている場合)
  • PDFとsynctex.gzをoutディレクトリにコピーする

このコマンドでコンパイルしている

$ latexmk; cp apssamp.pdf out; cp apssamp.synctex.gz out

Overleafと同期を取るためにはこのコマンドでコンパイル。latexmkrcは最初の1回だけlatexmkrc.bakという名前に変更しておく。

$ latexmk; cp apssamp.pdf out; cp apssamp.synctex.gz out; g pull; g merge origin/master -m "merge"; cp latexmkrc.bak latexmkrc;  g add .; g ci -m "update"; g push origin; rm latexmkrc;

やれやれ、一応できました。(コンパイルはひと手間かかるけど)
image.png

(ちなみに、画像周りを編集してコンパイルするとPDFが作成されない場合があるので、そのときは生成ファイルをいったん全部削除したうえで、もう一度latexmkを実行する)

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?