【Windows】Visual Studio Codeを利用したLaTeXでの文書作成の環境構築に関する忘備録

投稿日:  更新日:2022/09/02

LaTeX Visual Studio Code Windows

B!
Daniel AgreloによるPixabay(https://pixabay.com/)からの画像

こんにちは, Shinoryoです.

今回は, Visual Studio Code (VS Code)を利用したLaTeXのでの文書作成の環境構築を行ったので, それについて書き留めておこうと思います.

とはいえ, VS Codeを利用したLaTeXのでの文書作成の環境構築に関しての記事はありふれていますので(さすがVS Code), それを実行するにあたって困りそうなことを中心に補足していければと思います.

参考になるかもしれないサイト

今回の環境構築にあたっては, 以下のサイトを参考にしました. 基本的な環境構築は, 例えば以下に従えば問題なくできるかと思います.

ここに書かれていない, TeX LiveやVS Codeのインストール等も, 別途調べるなどすればそこまで難しくなくできるかと思います.

日本語ディレクトリが原因のバグ?

とりあえず, 以下のような簡単なTeXファイルをWindowsで実行してみました.

\documentclass[uplatex,a4paper,truedimen,papersize,11pt]{jsarticle}
\begin{document}
Hello \LaTeX !
\end{document}
view raw test.tex hosted with ❤ by GitHub

すると, 以下のようなエラーが出てしまいました. 明らかに, texファイルの方に原因はありませんよね.

Latexmk: This is Latexmk, John Collins, 26 Dec. 2019, version: 4.67.
Rule 'latex': The following rules & subrules became out-of-date:
'latex'
------------
Run number 1 of rule 'latex'
------------
------------
Running 'uplatex -synctex=1 -interaction=nonstopmode -file-line-error -halt-on-error -recorder -output-directory="(コンピューター上のファイルの場所が書かれていたので省略)\test.tex"'
------------
Latexmk: applying rule 'latex'...
This is e-upTeX, Version 3.14159265-p3.8.3-u1.26-191112-2.6 (utf8.uptex) (TeX Live 2020/W32TeX) (preloaded format=uplatex)
restricted \write18 enabled.
entering extended mode
! Undefined control sequence.
<*> (コンピューター上のファイルの場所が書かれていたので省略)/test.tex
No pages of output.
Latexmk: fls file doesn't appear to have been made.
Collected error summary (may duplicate other messages):
latex: Command for 'latex' gave return code 1
Refer to '(コンピューター上のファイルの場所が書かれていたので省略)/test.log' for details
----------------------
This message may duplicate earlier message.
Latexmk: Failure in processing file '(コンピューター上のファイルの場所が書かれていたので省略)/test':
(Pdf)LaTeX didn't generate the expected log file '(コンピューター上のファイルの場所が書かれていたので省略)/test.log'
----------------------
Latexmk: Errors, so I did not complete making targets
Latexmk: Use the -f option to force complete processing,
unless error was exceeding maximum runs, or warnings treated as errors.
C:\texlive\2020\bin\win32\runscript.tlu:915: command failed with exit code 12:
perl.exe c:\texlive\2020\texmf-dist\scripts\latexmk\latexmk.pl -synctex=1 -interaction=nonstopmode -file-line-error -halt-on-error -pdfdvi -outdir=(コンピューター上のファイルの場所が書かれていたので省略)/test
view raw test.log hosted with ❤ by GitHub

このエラーの原因は, どうやらtexファイルの存在するディレクトリ名に日本語が含まれてしまっていることのようです. 実際, 日本語名が含まれていないディレクトリにtexファイルを移動させて再度コンパイルすると, このエラーは生じません.

このエラーを解消するカギは, どうやら設定「latex-workshop.latex.tools」にあるようです. 設定の開き方は以下のように普段通りで……

  1. VS Codeの設定画面を開く
  2. テキストボックスに「latex-workshop.latex.tools」と入力し, 出てくる項目の「settings.json で編集」をクリック

その「settings.json」の中で, 「%DOC%」となっている部分があるかと思います. これをどうやら「%DOCFILE%.tex」に直す必要があるようです*1. これだと, 日本語名のディレクトリを正しく認識してくれます.

VS Code内でのビューを左側に表示するようにしたい

Ctrl + Alt + Vを押すことで, PDFビューを確認することができます. これに関する基本的な挙動は, 設定「latex-workshop.view.pdf.viewer」で設定することができます.

  • browser:既定のブラウザーでPDFビューを表示します.
  • tab:VS Code内のタブでPDFビューを表示します.
  • external:外部ソフトウェア(Sumatra PDFなど)でPDFビューを表示します. *2

tabを用いた場合, 既定の設定ではPDFビューは右側に表示されます.

中には, この既定の表示場所を変更したいという人もいるでしょう. 私もその一人です.

その設定場所は, 「latex-workshop.view.pdf.tab.editorGroup」になります. 上下左右4方向に分割して表示する方法と, texファイルと同じ場所に表示する方法を選ぶことができます.

例えば, PDFビューを左側に表示することができます.

スニペットの設定

Atomの場合と同様*3, スニペットを設定してTeX文書作成を円滑にすることができます.

  1. 「ファイル」→「ユーザー設定」→「ユーザースニペットの構成」選択
  2. 「latex」を選択
  3. latex.jsonファイルが表示される

デフォルトだと, latex.jsonにはコメント以外は記載されていないはずです. ここにいろいろと書き込めば, 入力補完してくれるというわけです.

すでに別の環境構築を行っていて, そこでは.csonで管理されているという例などもあることでしょう(Atomがその一例です). そのような場合には, Web上の変換ツール(例えば, https://www.convertsimple.com/convert-cson-to-json/)を使うと, スニペット作成時間を大幅に短縮することができるでしょう.

起動時に前回開いたウィンドウが開かないようにしたい

既定の状態だと, 起動時に前回開いたウィンドウがそのまま開くようになっているはずです. これを便利に思う人も多くいるかと思いますが, 私にとってこれはちょっと不自然な感じがしたため, この設定を変更することにしました.

その設定場所は, 「window.restoreWindows」になります*4. noneを選択すれば, 起動時に前回開いたウィンドウが開かないようになります.

Syntax Highlightの変更

既定の状態だと, Syntax Highlightが非常にチカチカして大変でしたので, それを変更しました. 今回は, 以下のWebページの設定をそのままお借りすることにしたので, それを紹介するにとどめておきます.

終わりに

今回の記事は以上になります. 今後も気になる点があったら, 本ページに追記していこうと思います.

脚注

*1:これは, 以下のWebページでも紹介されていました. 以下の方の環境だとLinuxだそうで, これはWindows環境とはもちろん異なりますが, 同様の方法で解決できました.

*2:「external」の場合の設定方法は, 例えば以下のWebページの「Sumatra PDFでpdfファイルを開く場合」のセクションを参照してください. ちなみに, VS Codeの場合は, Sumatra PDFを使用するだけでは日本語問題を回避することはできないようです.

*3:私は過去に, 「Atom」というエディタを活用したLaTeXでの文書作成の環境構築に関して記事を書いています.

しかし, 2022年6月8日, Atomが開発停止になる予定だということが発表され, VS Codeへの移行を考えたという次第でした.

*4:例えば, 以下のWebページにそのような記述がありましたので, 参考までに掲載しておきます.

  • 「VSCode/起動/起動時に前回開いたウィンドウを開かせない - yanor.net/wiki」