2022年9月27日火曜日

AtomからVSCodeに移行し,LaTeX機能拡張をインストール

 Atomやっと使い慣れてきて,CでもPythonでもTeXでも便利に使っていたのですが,なんと開発終了という悲しい情報を知り,さて何に乗り換えようかと考えています。


ウインドウを散らかす性格のため,TeXのプレビューが同じウインドウに表示されるエディタがいいので,vimやemacsは選択肢から外れます。

そうすると,にMicrosoftのVisual Studio Codeが上がってきました。

Microsoft?という先入観でちょっと抵抗があったのですが,Atomと似ていて使いやすそう。


早速導入。

環境は,MacPortsでTexLive2022がインストールされている状況。

Visual Studio Codeのバージョンは1.71.2

取り急ぎLaTeX機能拡張が欲しかったので,LaTex Workshop v8.29.0をインストール。

⌘+,で環境設定。

右上のアイコンをクリックすると,設定ファイル(settings.json)をエディットできる。

私は最近uplatexを主に使っているので,ここでtoolとしてptex2pdfに-uオプションをわたして実行すればいいのだが,bibtexをまわすときとまわさないときでレシピを分ける必要がありそう。

ここで色々調べてみると,latexmkをつかうと,その辺を判断してbibtexをまわしたりまわさなかったりしてくれる模様。

日本語の処理を楽ちんにするため,uplatexでdviをつくってdvipdfmxでpdf化する方向で設定したい。

latexmkは,ホームディレクトリの下に.latexmkrcというファイルを用意しておけばその通り実行してくれる模様。


公式マニュアル($ man latexmk)を実行してざっと文章を斜め読みしながら.latexmkrcの書式について一通りしらべて,私の目的(VSCodeから実行する)なら,以下の項目だけを設定すればいい模様。

まず一番大切なのは,$pdf_mode

dviからpdfの流れにする場合は3にする。

次にtypesetコマンドの設定。

これは,$latex

それから$bibtex$dvipdf$makeindexを設定しておけば最低限動きそう。

それだけ設定した私の.latexmkrcはこんな感じ。

#!/usr/bin/env perl

$pdf_mode         = 3;

$latex            = 'uplatex -halt-on-error';

$bibtex           = 'upbibtex';

$dvipdf           = 'dvipdfmx %O -o %D %S';

$makeindex        = 'mendex %O -o %D %S';

これを動かすVSCodeのsettings.jsonはこんな感じ。

{
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
}
],
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"%DOC%"
]
}
],
"latex-workshop.view.pdf.viewer": "tab",
"workbench.colorTheme": "Solarized Dark",
}

すっかり忘れていたけど,iCloud Drive上のファイルは扱えません。

VSCode側かLaTeX Workshop側かわかりませんが,おそらくフルパスで処理しようとしてパスにスペースが入っているところでおかしなことになるのかと思われます。それさえなければこの環境はよさそう。