結論
まず、以下の記事を読んで環境構築してください。
その後、以下のようにsettings.json
を修正してください。
なお.latexmk
の変更は必要ないはずです。
// latexmk を利用した platex によるビルドコマンド // 古い LaTeX のテンプレートを使いまわしている (ドキュメントクラスが jreport や jsreport ) 場合のため { "name": "Latexmk (pLaTeX)", "command": "latexmk", "args": [ "-f", "-gg", // "-pv", // 削除 "-pdfdvi", // 追加 "-latex=\"platex\"", // 修正 "-latexoption=\"-kanji=utf8 -no-guess-input-env\"", // 修正 "-synctex=1", "-interaction=nonstopmode", "-halt-on-error", // 追加 "-file-line-error", "%DOC%", "-outdir=out" // 追加 ] }
// latex-workshop.latex.autoBuild.run: .tex ファイルの保存時に自動的にビルドを行うかどうか // LaTeX ファイルは .tex ファイルを変更後にビルドしないと、PDF ファイル上に変更結果が反映されないため、 // .tex ファイルの保存と同時に自動的にビルドを実行する設定があるが、文書が大きくなるに連れてビルドにも // 時間がかかってしまい、ビルドプログラムの負荷がエディタに影響するため、無効化しておく。 "latex-workshop.latex.autoBuild.run": "never", // 自動コンパイルしたいならこの行を削除する
// ---------- LaTeX Workshop ---------- // 使用パッケージのコマンドや環境の補完を有効にする "latex-workshop.intellisense.package.enabled": true, // 生成ファイルを "out" ディレクトリに吐き出す "latex-workshop.latex.outDir": "out", "latex-workshop.latex.clean.method": "glob", // 追加
また、一番良く使うビルドレシピを最上段に持ってきてください。例えばpLaTeXを一番良く使う場合は、以下のようにpLaTeXのレシピを一番上に移動してください。
※ 一番上にあるレシピがデフォルトレシピとして扱われるため
// latex-workshop.latex.recipes: Recipe の定義 "latex-workshop.latex.recipes": [ // LaTeX(pLaTeX) で書かれた文書のビルドレシピ { "name": "pLaTeX", "tools": [ "Latexmk (pLaTeX)" ] }, // LuaLaTeX で書かれた文書のビルドレシピ { "name": "LuaLaTeX", "tools": [ "Latexmk (LuaLaTeX)" ] }, // XeLaTeX で書かれた文書のビルドレシピ { "name": "XeLaTeX", "tools": [ "Latexmk (XeLaTeX)" ] }, // LaTeX(upLaTeX) で書かれた文書のビルドレシピ { "name": "upLaTeX", "tools": [ "Latexmk (upLaTeX)" ] }, ],
以下は詳細な説明なので読む必要はありません。
以前の記事↓を書き直した。 everykalax.hateblo.jp
環境
- Windows 11 Pro (version: 失念)
- Visual Stusio Code (version: 1.78.0)
- LaTeX Workshop (v9.10.0)
- TeXLive 2023
手順
まず次の記事を読んで基本的なLaTeX環境を構築する。
https://qiita.com/passive-radio/items/623c9a35e86b6666b89e
しかし上記記事の設定のままでは、platex文書をコンパイルする際に7つの問題が発生するため、それを修正する。
※LuaLaTeXなどを使う場合でも以下の3-5の問題が発生するので修正が必要。
以下に説明を書くが、上の「結論」の項を見てもらえばそれで済むので、読み飛ばしてもらって構わない。
1. latexmkに渡す引数の指定を間違えている
Latexmk(pLaTeX)
のargs
に
"-latex='platex'", "-latexoption='-kanji=utf8 -no-guess-input-env'"
のように指定してしまうと、platex
ではなく'platex'
(シングルクォーテーションが含まれてしまっている!)というコマンドを実行することになる。
そのため、
"-latex=\"platex\"", "-latexoption=\"-kanji=utf8 -no-guess-input-env\""
に修正する。
参考: https://okumuralab.org/tex/mod/forum/discuss.php?d=2947#p17327
2. pdfの作成方法が違う
.latexmkmc
ファイルでは$pdf_mode = 4;
と指定されている。これはLuaLaTeXを使ってdviファイルからpdfを生成する方法である。
しかし今やりたいのはdvi -> dvipdfmx -> pdfである。$pdf_mode = 3;
と指定すればこの方法で作成してくれるが、そうすると逆にLuaLaTeXを使う際に困ってしまう。
そのため、Latexmk(pLaTeX)
のargs
に-pdfdvi
を追加する。こうすることで$pdf_mode
を書き換えることなく、dvipdfを使ってpdfを生成してくれるようになる。
3. outディレクトリにpdf等が出力されない
Latexmk(pLaTeX)
のargs
に-outdir=out
を追加する。
4. コンパイル後に不要なファイル(auxなど)が自動削除されない
settings.json
に"latex-workshop.latex.clean.method": "glob"
を追加する。
5. コンパイル毎にpdfビューアが起動してしまう
Latexmk(pLaTeX)
のargs
にある-pv
を削除する。このオプションはコンパイル後にビューアの起動を行うものである。
※ちなみに-pvc
を指定するとTeXファイルを監視して変化があれば勝手にコンパイルしてくれる。しかしVSCode上では次に示すlatex-workshop.latex.autoBuild.run
を変えればよいので、おそらく-pvcオプションを使うことはないと思う。
6. ファイル保存時に自動コンパイルしてほしい
先のページでは重くなるから無効化すると書かれているが、もし自動コンパイルしたい場合はsettings.json
の"latex-workshop.latex.autoBuild.run": "never"
を削除すればよい。
7. 出力が多すぎてエラー箇所がわかりづらい
Latexmk(pLaTeX)
のargs
に-halt-on-error
を追加することで、エラー発生時即座にコンパイルを停止することができる。それでも出力は多いが、少しは見やすくなると思う。
トラブルシューティング
- 右下に
Can not find latexindent in PATH.
と出る- → TeXLiveでlatexindentをインストールする