Abstract

  • TeX Workshopの設定変更
    • レシピを追加(upLaTeX用), キーバインド追加
    • recipeの優先順位を変え、自動タイプセットを無効化
  • llmk用, jlreq用のsnippetを追加

TeX WorkshopでupLaTeXを使う.

 私は\(\LaTeX \)の編集環境としてVS Code + TeX Workshopを使っていた。 この環境のセットアップではVSCode で最高の LaTeX 環境を作るを参考にした。1 当時は\(\LaTeX\)を触り始めたばかりだったのでupLaTeXやLuaTeXと言われても何のことかさっぱりわからなくなったが19か月経って(長い)やっと何なのかが分かり始めた。 Unicode版であるupLaTeXの方が上位互換ということでupLaTeXを使おうと思いプリアンブルで

\documentclass[uplatex]{jsarticle}

と書いたが、ビルドに失敗する! これはTeX Workshopが悪いんだろうなと思い、重い腰を上げてTeX Workshopの設定を更新した.

TeX Workshopを使いやすくする.

 とりあえずDuckDuckGoでTeX Workshop upLaTeXとかで調べて出てきたこの記事を参考にVS Codeの設定を変えていった。 変えたポイントは

  • LaTeXエディタとしての設定
  • tools, recipesを追加
    • llmk等は無し
  • 自動タイプセットを無効化
  • キーバインディングを追加
  • snippetの追加
    • figureとtable

元のsettings.jsonとmergeする感じで変更した。 自動タイプセットを無効化した経緯は後述。 これでTeX Workshopは使いやすくなったがupLaTeXを使えるようになったわけではない

upLaTeX用のレシピを追加する

 TeX Workshopはtoolにコマンドを設定し、そのtoolを組み合わせrecipeを設定、それを実行することでLaTeXのビルドを行う。 latexmkでupLaTeXを使うtoolの例はTeX Wikiにあったものを参考にした2。 あとは元の環境に合うように、不要なファイルの削除、出力ディレクトリの変更を行う。 完成したのは以下の通り(一部抜粋)

// ビルドのレシピ
"latex-workshop.latex.recipes": [
    // uplatex(自作)
    {
        "name": "latexmk-uplatex",
        "tools": [
            "latexmk_uplatex"
        ]
    },    
],
// ビルドのレシピに使われるパーツ
"latex-workshop.latex.tools": [
    // uplatex(source: https://texwiki.texjp.org/?Visual%20Studio%20Code%2FLaTeX)
    // silent, 出力先変更
    {
        "name": "latexmk_uplatex",
        "command": "latexmk",
        "args": [
            "-silent",
            "-outdir=%OUTDIR%",
            "-e",
            "$latex=q/uplatex %O -kanji=utf8 -no-guess-input-enc -synctex=1 -interaction=nonstopmode -file-line-error %S/",
            "-e",
            "$bibtex=q/upbibtex %O %B/",
            "-e",
            "$biber=q/biber %O --bblencoding=utf8 -u -U --output_safechars %B/",
            "-e",
            "$makeindex=q/upmendex %O -o %D %S/",
            "-e",
            "$dvipdf=q/dvipdfmx %O -o %D %S/",
            "-norc",
            "-gg",
            "-pdfdvi",
            "%DOC%"
        ]
    }
],

なぜ自動タイプセットを無効化したのか

 しかしこのままではCtrl + Alt + BではupLaTeXでのビルドはできない(recipeは一番上の物が使われるので)。 しかし、毎度Ctrl + Alt + Tでrecipeを選択するのは面倒。 なのでlatexmk-uplatexを一番上に置くことにした。 すると今度は過去に作成したTeXファイルを開いたときにエラーが出てうるさい。 そこでビルドは手動にした3

 今後はビルドするときはCtrl + Shift + Bを押せばよい。

おまけ(llmk, jlreq、他)

 今回の作業中にllmkやjlreqというものを知った。

llmk

 ファイルの最初、または別のtomlファイルで使用するLaTeXの環境及びソースを指定することで、環境に依存しないようにしたもの。 しかし、TeX Workshopとの相性が悪く、エラーメッセージが正しく表示されない4らしいので、llmkをデフォルトにすることはやめた。 ただ、今後使うときが来てもいいようにllmk用の設定を入れたTeXファイルを作成していきたい5

jlreq

 jlreqとは日本語組版の要件(JLREQ)に準拠した\LaTeX の日本語文書クラス(jsclassesみたいなもの)。 カスタマイズ性が高いらしい(最近様々なTeX文書を見てきてスタイルを変えたいなと思っていた)。 どのみちいろいろ調べないとダメそう。

TikZ, tcolorbox, physics

 最近興味があるパッケージ。 TikZはちょっとだけ触ってみた。 physicsは便利。


  1. およそ19か月前(2020年4月ごろ) ↩︎

  2. bibliography関連などかなり複雑なコードでQiitaとは質が違うんだろうなー(小並感)、などと思った。 ↩︎

  3. パソコンのスペック的にもきつかったところはある ↩︎

  4. 実際より大量に表示される ↩︎

  5. そのためにsnippetを作った。 ↩︎