環境
2020年5月20日
Windows 10 home
TeXLive2020
##目標
VScodeでLatexで文章を作れるようにする。
以下記録
1. TeXLive2020を入れる
tm23forestさんの「TeXLive2020をインストールしてLaTeXを始める」に従いながらインストールしました。1回目失敗し、2回目はインストールの時に我が家から物理的に一番近いミラーサイトを選び実行するとうまくインストール出来ました。
以下ではtm23forestさんの記事にある内容と全く同じ設定でTeXLive2020がインストールされているものと理解してください。
2. Latexmkの設定をする
そのままでも十分使えるのですが、TeXファイルをpdfにするときにコマンドを2回打たなくてはならないので、コマンド1つでpdfが出力されるようにしたいと思います。
TeXLive2020をbasicでダウンロードするとLatexmkは入っていないのでインストールする必要があります。Latexmkが入ってるかわからない時はpowershellでlatexmk -version
と打って、
Latexmk, John Collins, 17 Apr. 2020. Version 4.69a
と表示されればインストールされています。
Latexmkのインストール
TeX Live managerを開き、パッケージリストの状態を「すべて」に変更し、検索欄にlatexmk
と入力します。
出てきたlatexmk
にチェックをいれ、「選択項目をインストール」でインストールできます。powershellでlatexmk -version
と打ってバージョン情報が表示されれば成功です。
latexmkrcの作成
latexmkでどのような処理系を以てTeXファイルをpdfに変換するのかを規定するのが.latexmkrcというファイルです。環境変数HOMEが指定されている場所にこの名前のファイルを作成します。winodows powershellで以下を実行すればどこにこのファイルを作ればよいのか確認できます。
echo $HOME
latexmkrcの編集
TeX Wikiに中に何を書くのかの一般例があります。→Latexmk
以下がその内容ですが、何が何なのかわからないので1行ずつ見ていきたいと思います。
$latex = 'platex -synctex=1 %O %S';
$bibtex = 'pbibtex %O %B';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';
$max_repeat = 10;
$pdf_previewer = '"C:\Program Files\SumatraPDF\SumatraPDF.exe" -reuse-instance %O %S';
一行目
どのlatexの処理系を使うかを決めるものです。TeXLiveを入れた段階でpLatexみたいなので、ここはplatex
でよさそうです。
-synctex
はここに詳細があります。この記事もわかりやすい気がします。
つまり、TeXとPDFを交互に参照して編集するためには必要なようです。
その後の%O
等は、本家サイトに
%O はオプション,%D は出力ファイル,%B は拡張子無しのソースファイルに置き換えられます
とありますが、いまいち何のことかわかりませんでした。知っている方おられたら教えてください。
二行目
bibtex
はこの記事(BiBTeXとは)がわかりやすかったです。参考文献を自動でいい感じにしてくれるようです。
三行目
dvipdf
はtexの処理系によって生成されるdviファイルからpdfファイルを生成するために何を使うのかの設定です。dvipdfmx
が一般的なようです。
四行目
makeindex
は索引に関する設定で、mendex
は索引を自動で形成してくれるソフトのようです。詳細はこちら。
五行目
repeat_max
はコンパイルの最大の回数を規定します。クロスリファレンス等でpdfの生成がうまくいかず、無限にコンパイルするのを防ぐためのようです。詳細は「ここ」の36pにありました。
六行目
pdfのプレビューをどれで見るかを規定します。edgeかacrobatにしようかと思っていたのですが、edgeは開かないし、acrobatはPDFをロックするからやめた方がいいとここに書いてあったので、おとなしくsmatraPDFをインストールして使うことにしました。ところがどっこいコンパイルしてもプレビューは起動しません。
わからないので諦めました(現段階ではなくても困らないので)。
これに加え、あった方がよさそうなものを追加していきます。
最終的なlatexmkrcは以下のような感じ。
$latex = 'platex -halt-on-error -synctex=1 %O %S';
$latex_silent = 'platex -synctex=1 -halt-on-error -interaction=batchmode';
$bibtex = 'pbibtex %O %B';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';
$max_repeat = 10;
$pdf_mode = 3;
この記事を参考に、自分の欲しいものだけを取りました。いまいちちゃんと動いてるのかは謎です。
3.VScodeの設定をする
TeX Workshopのインストール
左側のextentionsからTeX Workshopを検索し、インストールします。使用には再読み込みが必要なので再読み込みし、設定に移ります。
TeX Workshopの設定
「表示→」「コマンドパレット」」→「基本設定:設定(JSON)を開く」でsettings.json
をひらきます。
そして以下の内容を書き込みます。
{
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args":[
"%DOCFILE%"
]
},
],
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": ["latexmk"]
},
],
"latex-workshop.latex.autoClean.run": "onFailed"
}
LaTeX workshopではTeXファイルからPDFを作る(buildする)のにrecipeとtoolというのを設定します。
Build LaTeX project
のRecipe: latexmk
をクリックしてTeXファイルをbuildする際、LaTeX workshopはlatex-workshop.latex.recipes
の中で定められているツールを使ってprojectをbuildします。そして呼び出されたlatex-workshop.latex.tools
内のツールがビルドをするようです。今回はlatexmkを使うので以上のように書いています。argsの%DOCFILE%
はVScodeで開いているTeXファイル名を受け渡すようです(@t_asa さんありがとうございますm(_ _)m)
####使ってみる
適当にTeXファイルを作成し、Build LaTeX project
のRecipe: latexmk
でビルド、View LaTeX PDF
> View in VSCode tab
で表示させます。
良い感じです(しらんけど)
終わり
以上で今回やったことはすべてです。TeX自体使ったことがないのでこの設定で不具合が出れば加筆しようかと思いますが、現状ではなんかいけてそうなのでこのままいきます。
ふと思ったんですけど、TeX、エラーが調べにくくないですか(出てくる情報が少ない気がする)。自分の知識があまりにもないってのはあるんですけど。
更新
-
settings.json
の中で"%DOCFILE%"
とすべきところでdouble quotationが抜けていました。(2020/5/29)