Month: September 2023

Ubuntuのカスタマイズ #3 VSCode + LaTeX環境

こんにちは。9月中旬にも関わらず今月初投稿になってしまったRockinWoolです。ここ最近は富士山登山やピアノの発表会など、休職期間を活かして普段はできないことに全力を注いでました。病院から処方される睡眠導入剤?との相性がすこぶる良いようで、かなりの悩みごとがあっても寝れるようになったことが大きいですね。かつての上司によって傷んだ部分が少しずつ良くなって集中力も改善されたように感じます。さて、今回はその勢いでVSCode+LaTeXをUbuntuに導入した備忘録をまとめてみました。私のようにPCを頻繁に分解して初期化する輩にとってLaTeXは毎回どうやって入れたのか思い出すが難しいソフトです。最近はVSCodeに良い拡張があるとのことでしたので、これをうまく活用してやって行こうと思います。 TeXLiveのインストール LaTeXはそもそもコンパイル環境がなければ使えません。ということで、まずはTeXLiveをインストールします。下記コマンドでダウンロードと解凍までやりましょう。 無事にインストーラが解凍できたら下記コマンドでインストールができます。インストール完了後にターミナルにてPATHの追加を求められるので、exportで追加しておきましょう。.bashrcに追記することも忘れずに。今回はPATHは私の環境での値を書いていますので、皆さんの場合は画面を見ながら指示にしたがってほしいです。 ちなみにこの後sudo権限でインストールしたコマンドを使うタイミングがあるのでvisudoでsecurity_pathにも`/usr/local/texlive/2023/bin/x86_64-linux`を追加しておく必要があります。 日本語対応ライブラリのインストール 無事にPATHが追加できたら下記コマンドで必要なライブラリを追加インストールします。これでTeX環境が日本語に対応することになります。 ここでの注意点はsudo権限を使ってのインストールであることです。security_pathにパスを追加していないとここでヘタることになります。 LaTeX-Workshopの導入 ここからはVSCodeでの作業になります。VSCodeの左側にある拡張機能ボタンからLaTeX Workshopを探してインストールします。その後、VSCodeの左下にある設定歯車から設定を選択して、latex-workshop.latex.recipesと検索します。settings.jsonで編集すると出てくるので、latex-workshop.latex.recipesの部分を下記で上書きします。settings.jsonには他の拡張の情報も乗っているので、あくまで該当部分の上書きに留めてください。ちなみにこの情報源はTeXwiki様です。年々アップデートされているようですので、失敗したら最新版を追うことをおすすめします。 “latex-workshop.latex.recipes”: } ], “latex-workshop.latex.tools”: } ] すべてが完了したら.texファイルをctrl+sでセーブするごとにビルドが走ってpdfが生成されるようになります。ヤッター。 エラー対処法 さて、LaTeX初心者、ひいてはTeXLive初心者である私はもう少しインストールに苦労しました。というより、.texの自動ビルドがうまく行かずに止まることが何度かありました。覚えている範囲で対処法をメモしておきます。 自動ビルドが走らない まずこの現象に遭遇したら、エラーの切り分けを試みてください。主に下記3つの可能性があります。 このとき、まずは上から対応することを心がけましょう。これは持論ですが、VSCodeのような自動化ツールは、その大本となるツールがバグっていれば当然正しい挙動をしてくれません。つまりは根本の方を優先して調査したほうが早く解答にたどり着くわけです。これは自戒を込めて強調しておきます。さて、まずはTeXLiveの動作確認をしましょう。LaTeX, サンプルみたいに検索して出てきた適当なサンプルコードをptex2pdfでビルドできるか確かめてください。このとき、ptex2pdfが見つからなければ何らかのインストールエラーまたはPATHの設定ミスがあり得ます。逆にptex2pdfが動作するにも関わらず途中で止まる場合は.texの書き方が悪い可能性があります。エラーメッセージを調べると良いでしょう。私はサンプルコードを手動でビルドすることができたのですが、このときにサンプルコードの日本語指定が私の環境と異なっていたため、インタラクションを必要としてました。なのでVSCodeの自動化が途中で止まってしまったわけです(settings.json内に-interaction=nonstopmodeを記述しているため、この場合はエラーで止まる)。無事日本語の設定を直せばビルドに成功するようになりました。 PDFがVSCodeで見れない VSCodeでPDFを見ようとすると’ServiceWorker: The document is in…