ラベル VSCode の投稿を表示しています。 すべての投稿を表示
ラベル VSCode の投稿を表示しています。 すべての投稿を表示

2022年10月4日火曜日

macOSでVisual Studio CodeとLaTeXを使うならDropbox

 タイトルが全てです。

Visual Studio Code側では,最初,settings.jsonにレシピとツールをクソ真面目に書いて,ptex2pdf -uだけを複数回実行するのか,ubibtexを間にいれるのかを区別してコンパイルしていたのですが,結局latexmkに頼れば一発だったので,前回のポストのようにしました。

iCludDrive上のファイルは扱えなかったのに,Dropbox上のファイルは問題なく扱える。

正確には,iCloud上のTeX文章もVisual Studio Codeのターミナルを使えばコンパイルできるのですが,⌘sで保存した時にコンパイルという便利さが失われるのでiCloud上のファイルを使うのはやめました。


もともとDropBoxやめようと思ったのは,iPad上のTexifier.appがDropboxを扱えなくなったからなのですが,そもそもiPadはクラウドタイプセットメインになりつつあるので,iPadでTeX文章書くことを諦めるます。

もう少し調べたら何かあるのかもしれませんが。。。。


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