♾️

WSL + TeXLive + VSCodeのTeX環境構築

2024/02/08に公開

\LaTeX 最初にして最大の難関といえば,環境構築だろう

WSLを利用したTeX環境の記事は他にも星の数ほどあるが,WSLにリモート接続しない限りなくシンプルな手法はあまり見てない気がするので,共有用にメモのように残しておく.
(自分も友人から聞いたやつだけど)

WSLを使うメリット

  • 多分コンパイル速い
  • TeXLiveのアップデートが可能

また,今回の方法では通常通りWindowsの好きなディレクトリで実行できる.
WSL上にファイルを置く必要はまったくない.

また,なんとなく時代はunicodeな気がするので,platexではなくuplatexを使っていく.

余談だが,Win版はTeXLiveのアップデートができない…
以下のWebサイトのWindowsの扱いを一度は見てほしい

Windows
There is no comparable upgrade procedure for Windows. Doing a new installation is necessary.

https://www.tug.org/texlive/upgrade.html

WSL側のセットアップ

WSLのインストール

powershell/cmd
wsl --install

ここでWSL用のパスワードを決める.
Linuxでは,パスワード入力時にキー入力しても,何も表示されてないが,入力はできているので安心してほしい.(*などでの伏せ字表示サービスはない)
また,Backspaceをおせばちゃんと1字ずつ消されていく.

このパスワードはパッケージのインストール時などにsudoするときに必要なので,忘れないようにしておく.

TeXLiveのインストール

以下のお好きな方法で,TeXLiveをインストールする.

  • apt でインストール
  • 手動でインストール

aptで入れる場合

WSL
sudo apt update
sudo apt install texlive-full

とするだけで良い.

マニュアルインストールの場合

以下のコマンドを実行する.
perlのインストーラをダウンロードして実行する感じ.

引用元:texlive2020(basic)のインストール on WSL - 晴耕雨読

WSL
sudo apt update
sudo apt install build-essential
sudo mkdir /usr/local/texlive
sudo chown -R $(whoami):$(whoami) /usr/local/
wget http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/tlnet/install-tl.zip
unzip install-tl.zip
cd install-tl-*
perl install-tl

ここからはいろいろ聞かれるので,お好みで対応する.
個人的にはj [ ] custom selection of collectionsを選択し,必要そうなものを適当にセレクトすることが多い.
例えば,VSCodeを使うので,TeXworks editorなどはいらない子となる.

そして,oを選択しオプションから,シンボリックリンクを一応作っておくのでlを選択,Enterを3回くらいおす.(デフォルトパスで良い.)

ここまで設定したら,メインメニューでiを入力し,インストールをスタートさせる.

どちらの方法にせよ,かなり時間がかかるので放置する.

失敗することもあるが,めげずに再チャレンジすると,いつかは勝つことができる.

tex --version 等の入力で,インストール完了を確認できる.

latexmk のコンフィグファイルを生成する

latexmkという便利ツールの設定ファイル,.latexmkrcを作っておく.

本来uplatexやらdvip...みたいなコマンドをせっせと何回か打つことでコンパイルするが,
やってられないので,一発でできるようにしてくれるツールlatexmkを使う.

このツールの設定ファイルはLinuxのホームディレクトリ~/ におく.

WSL
cd
nano .latexmkrc

開いたエディタに以下のような設定を書き込む.
以下の例はuplatexを使用する.

.latexmkrc
#!/usr/bin/env perl
$pdf_mode         = 3;
$latex            = 'uplatex -synctex=1 -kanji=utf8 -no-guess-input-enc -halt-on-error -interaction=nonstopmode -file-line-error --shell-escape';
$latex_silent     = 'uplatex -kanji=utf8 -no-guess-input-enc -halt-on-error -interaction=batchmode --shell-escape';
$bibtex           = 'upbibtex';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';
$dvipdf           = 'dvipdfmx %O -o %D %S';
$makeindex        = 'upmendex %O -o %D %S';

# カレントディレクトリ変更
$do_cd = 1;

# 中間ファイルに隠しておく
$emulate_aux = 1;
$aux_dir = ".tex_temp";

Ctrl + S で保存,Ctrl + X で閉じて,WSLのターミナルに戻る.

VSCode側のセットアップ

LaTeX Workshopのインストール

LaTeX Workshop なる拡張機能がこの上なく便利なので,とにかくいれる.
サイドバーの拡張機能タブからインストール.

setting.jsonから設定

Ctrl + Shift + p を押し,コマンドパレットを出し,settingなどと入力,「基本設定: ユーザ設定を開く(JSON)」からsetting.jsonを開き,よしなに下記の様なものを追記

setting.json
{
    // 使用パッケージのコマンドや環境の補完を有効にする
    "latex-workshop.intellisense.package.enabled": true,
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.latex.build.clearLog.everyRecipeStep.enabled": false,
    
    // 生成ファイルを "out" ディレクトリに吐き出すなら
    "latex-workshop.latex.outDir": "out",

     // ビルドのレシピ
    "latex-workshop.latex.recipes": [
        {
            "name": "latexmk",
            "tools": [
                "latexmk"
            ]
        },
    ],
    // ビルドのツール
    "latex-workshop.latex.tools": [      
        {
            "name" : "latexmk",
            "command" : "wsl.exe",
            "args" : [
                "latexmk",
                // "-time"で実行時間を表示してくれる。
                "-time",
                "-outdir=%OUTDIR%",
                "%DOCFILE%.tex" 
            ]
        },
    ]
}

テストファイルでテストする

てきとうにtest.tex等のファイルをつくり,以下のようなテストファイルをつくる.

test.tex
\documentclass[uplatex]{jsarticle}

\begin{document}
    最大の難関を乗り越え,\LaTeX ユーザとなった.
\end{document}

Ctrl + Sで保存すると,勝手にコンパイルが走るはず…
out ディレクトリを設定した場合はoutフォルダが作られ,pdfファイルが出力されるはず.

Discussion