TeX + VSCode + git on Mac 設定 メモ

前提

  • pdfファイルが欲しい
  • VSCode上で完結させる
    • CLIはなるべく使いたくない
  • latexmkで以下を一括で起爆する
    • uplatex
    • upbibtex
    • biber
    • upmendex
    • dvipdfmx
    • 1回のコマンド内で済む
  • gitでバージョン管理したい
    • 致命的なミスを回避したいので
  • macOSでスマン

下準備

gitインスコ

$ brew install git
$ echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc

homebrew入れてない人は適宜に導入してくれたほうが良い シェルのパスも通しておこうな(VSCodeから叩きたいので)

VSCodeインスコ

brew install --cask visual-studio-code

TeXShop on Macインスコ

ここから.pkgを落とす 適当に全部インスコする こっちはなんとなくだがhomebrewはおすすめしない TeXの管理にhomebrewを使うのは直感的ではなさそう

設定

GUIアプリケーション

TeXShop

実質的に不要(使わないので)

TeX Live Utility

適宜にライブラリをアプデしておこう ちなみに年度バージョン切り替えはこれじゃないと面倒

git

実質的に不要(GitHub使わないなら)

VSCode

latex関係

  • 拡張機能の欄を開いてLaTeXで検索
  • 以下をインストール
    • LaTeX Workshop
    • LaTeX Utilities
  • LaTeX Workshopの「拡張機能の設定」を開く
    • 右上の「設定(json)を開く」を選択
  • settings.jsonに以下をコピペ
{
"files.associations": {
    "*.sty": "latex",
    "*.cls": "latex"
},
"latex-workshop.latex.tools": [{
    "name": "latexmk",
    "command": "latexmk",
    "args": [
    "-e","$latex=q/uplatex %O -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 -z 0/",
    "-norc",
    "-gg",
    "-pdfdvi",
    "%DOC%"
    ]
}],
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.chktex.enabled": true,
"latex-workshop.chktex.delay": 0,
"latex-workshop.latex.autoBuild.run": "never",
"latex-workshop.latex.watch.delay": 0
}
  • 設定内容イメージ
    • ビルドにlatexmkを指定する
      • uplatexとdvipdfmxの組み合わせを想定
      • 最終ビルドでは"$dvipdf=q/dvipdfmx %O -o %D %S -z 0/""$dvipdf=q/dvipdfmx %O -o %D %S -z 3/"にしておくとファイル容量がむちゃくちゃ減少
      • これを雛形からやろなんて思たらクソダルいしコピペした方がええでマジ
    • セーブ時の自動ビルドを無効化する
    • pdfビューワをtabで開く
    • chktex(エラー検出ソフト,デフォルトでTeXLiveに入ってる)をオンにする
    • スタイルファイル(スクリプト置き場).styとクラスファイル(雛形設定置き場).clslatexファイルとして扱う

git関係

  • 拡張機能の欄を開いて@popular gitで検索
  • 以下をインストール
    • Git History
    • GitLens
    • Git Graph
    • Project Manager
    • gitignore
    • Git Blame
  • とりあえずこれででいいと思います…

使い方

  • ルートフォルダを開き.texファイル,.styファイル,.clsファイルを用意する
  • .bibファイルも必要なら
  • 画像とかを管理するフォルダは別に作った方がよさそう
  • .texファイル,.styファイル,.clsファイルを開いて編集する
  • 様式を満たした上で右上の再生ボタンを押す
    • latexmkなので1回で完全にビルドされる
    • 「View LaTeX PDF File」するとpdfが開く
      • でも動作が重いので別のビューワを持ってきた方がいいよ
    • エラー吐いたらコンパイラのログを読もう
      • ggれば高確率でTeX Wikiのどこかにぶち当たる
  • ワークスペースを保存しておく
    • 次回以降にVSCodeを立ち上げると勝手にセッティングしてくれるので
  • gitが用意できているなら
    • 初回は拡張機能からgit init
      • 画像とかあると時間がかかる,気を付けてね
    • 更新したらステージング,気が済んだらコミット
      • ブランチ,マージ,スタッシュ…などはそれ専用の解説記事を見てくれた方がいいです
  • 日本語の名前を使ってるフォルダかファイルがあると新規ファイルの追加でエラー吐く(ステージングできなくなる)
    • どうやらVSCode拡張機能gitのステージングは絶対パスを使ってスクリプトを打ってるらしく,そのどこかに日本語が入っているとgitがエラーを吐く
    • ターミナル開いてgit add -Aするとできる場合がある
      • こっちは相対パスで動いてるくさい(../a/b/cみたいなヤツか?)
      • ルートフォルダ含むプロジェクト内で日本語を使わなければこれで解決しそう
  • Git Graph
    • 更新履歴をツリーで見せてくれる
  • Git History
    • 更新履歴を細かく見せてくれる
  • GitLens
    • コミット当時のファイルと現在編集中のファイルを比較してくれる
  • Git Blame
    • GitLensのコンパクト版

初回でルートフォルダを選択し作業スペースとして開いたらgit系拡張機能が勝手に$HOMEをルートフォルダにして大量にファイルを漁り始める件について

  • 選択したフォルダの中に.gitがないと勝手にそうなっちゃうらしい
    • 自動git initはされないっぽい
    • settings.json"git.autoRepositoryDetection": "subFolders"を入れればこの動作自体は止まるっぽい
  • ちゃんとgit init.gitを作ってからブラウザやタブを再読み込みすると治るっぽい
    • シェルはちゃんと移動しているので安心してくれ

このやり方の利点

gitが有能

  • 自分の進捗が時刻や変更箇所と共に記録されるので,単純に進度管理にも便利だと思います
  • 取り返しのつかないミスをした時のリカバリーにもなると思います
  • パターンを分けながら制作する時にも役に立つと思います

VSCodeが有能

  • 圧倒的補完機能
  • 圧倒的検索機能
  • 圧倒的拡張機能
  • 圧倒的GUI