ほねつき備忘録

ほねつき備忘録

僕のブログです。僕のためのブログです。

俺的LaTeX環境構築(Ubuntu on WSL編)

Ubuntu on WSLでLaTeX環境を構築する方法になります.

この方法のメリット・デメリット

基本的にWinネイティブと比較しています.以下も御覧ください.

bonychops.hatenablog.jp

メリット

  • ビルドが早い
  • 必要なパッケージを選べるため,ダウンロード・インストールサイズが小さい
  • 環境が(Linuxに慣れている人にとって)いじりやすい
  • WSLさえ入れちゃえば後は早い
  • 個人的に好きな方法

デメリット

  • 環境構築が面倒くさいかもしれない
    • 特にWSLあたり
  • WSLを使う(のが人によってはデメリットかもしれない)
  • VSCodeでいちいちWSLに接続する必要がある

WSL環境の構築

公式のDocsを読んでインストールしましょう. とりあえず次を管理者権限のPowershellで実行すればどうにかなります.多分.

wsl --install

LaTeXの各パッケージインストール

WSLを起動して,以下を実行してパッケージ群をインストールしましょう(jlistingsも一緒に入ります).

gist.github.com

bony-reportパッケージのインストール

自分が使うパッケージ群をまとめたものです1ソースコードはこちら. (ここもう少し楽にできるように改善しなきゃ...)

cd $( mktemp -d )
git clone --depth 1 https://github.com/bonychops/tex-packages.git
cd tex-pakcages
sudo sh manual-install.sh

VSCodeの設定

この章の内容は次のQiitaからの引用です.ありがとうございます.

qiita.com

  1. 下記サイトより,VSCodeをインストール code.visualstudio.com
  2. WSLに接続します.ウィンドウ左下のアイコンをクリックし,New WSL Window より接続できます(接続が完了すると見た目がWSL: Ubuntu-20-04になる).
  3. LaTeX Workshop拡張をインストールする
  4. ファイル→フォルダを開く より,~ (/home/xxx)を開き,.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"
    
  5. Ctrl + Shift + P から>settings json より Preferences: Open Settings (JSON)を選択,内容を以下とする(引用).

     {
         // ---------- Language ----------
    
         "[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"
         ],
    
         // ビルドのレシピ
         "latex-workshop.latex.recipes": [
             {
                 "name": "latexmk",
                 "tools": [
                     "latexmk"
                 ]
             },
         ],
    
         // ビルドのレシピに使われるパーツ
         "latex-workshop.latex.tools": [
             {
                 "name": "latexmk",
                 "command": "latexmk",
                 "args": [
                     "-outdir=%OUTDIR%",
                     "%DOC%"
                 ],
             },
         ],
     }
    
  6. example.texなどを作って,texファイルをCtrl + Alt + Bでビルドできることを確認して完了.以下にサンプルソースをおいておきます.
\documentclass[a4j]{jarticle}
\usepackage{bony-report}
\title{Hello, \LaTeX !}
\begin{document}

\maketitle

\end{document}

  1. jlistingsの導入が必須です