63
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Catalina] MacTex 2019 + VS Code で LaTeX の環境を構築する

Last updated at Posted at 2018-10-06

※ 2019/12/03 追記

最初の投稿時は macOS Mojave + MacTex 2018 の組み合わせで構築しました.
macOS Catalina + MacTex 2019 でも問題ないことを確認したので,タイトルを変更しています.
また,VS Code のアップデートに合わせて一部内容を修正しました.

余談ですが,VS Code で Settings Sync を使う場合は最近の記事を参考にすると良いと思います.
Settings SyncでVS Codeの設定をPC間で同期する
以前のように Token を手動で取得する必要は無くなったみたいですね.

古い TexLive のアンインストール

古いバージョンを削除したい場合は,以下のコマンドを実行してください.

$ sudo rm -rf /usr/local/texlive/2017
$ rm -rf /Applications/TeX

もともと Cask で入れたのであれば,以下のコマンドで OK です.
途中でフリーズしたのかと思うくらい,結構な時間がかかります.

$ brew cask uninstall mactex
==> Uninstalling Cask mactex
==> Running uninstall process for mactex; your password may be necessary
==> Uninstalling packages:
org.tug.mactex.ghostscript9.21
Password:
org.tug.mactex.gui2017
org.tug.mactex.texlive2017
==> Removing files:
/usr/local/texlive/2017
/Applications/TeX
/Library/PreferencePanes/TeXDistPrefPane.prefPane
/etc/paths.d/TeX
/etc/manpaths.d/TeX
==> Purging files for version 20170524 of Cask mactex

MacTex 2019 のインストール

MacTeX は Cask からインストールできます.
かなり時間がかかるので気長に待ちましょう.
同じように Cask から入れたことがある方は brew cask reinstall mactex しろと言われるかもしれません.

$ brew cask install mactex

GUI-Applications (TeXShop など) が不要な場合,mactex-no-gui というものもあるようです.

$ brew cask install mactex-no-gui

インストールが終わったら,TeXLive のリポジトリを更新しましょう.
これも結構な時間がかかります.

$ source ~/.bash_profile

~/.bash_profile を読み込んでから

$ sudo tlmgr update --self --all

上記コマンドを入力してください.

もし tlmgr が実行できない場合は,ターミナルを再起動してみてください.

ヒラギノフォントの利用

Mac であればやはりヒラギノを使いたいですよね.
フォント周りの仕様は OS のアップグレードごとにどんどん変わっているため,情報が錯綜しているようです.
私は munepi さんという方が公開している bibunsho7-patch を使用しました.
dmg ファイルをダウンロードし,中の app ファイルを起動するだけでヒラギノフォントが利用できるようになります.

Visual Studio Code

公式サイトからダウンロードします.
Visual Studio Code - Code Editing. Redefined
次に,VS Code 用の LaTeX プラグインをインストールしてください.
LaTeX Workshop - Visual Studio Marketplace
[Code] -> [Preferences] -> [Extensions] から拡張機能の検索ができます.

設定ファイルの編集

VS Code は settings.json というファイルで設定を記述します.
[Code] -> [Preferences] -> [Setting] の後,右上の [Open Settings (JSON)] を選択します.
下図の赤丸部分です.以前とはアイコンの見た目が変わりましたね.
スクリーンショット 2019-12-03 22.59.48.png

表示された JSON ファイルに,ユーザ独自の設定を記述していきます.

今回は platex + pbibtex の利用例を発見したので,非常に参考にさせていただきました.
VSCode でLatexの日本語環境を作る · GitHub

しかし,このままだとエラー時にユーザ入力を求められます.
[LaTeX] -> [Build LaTeX project] -> [Terminate current compilation]
でコンパイルを中断できますが,面倒ですよね.

ユーザ入力なしでコンパイルを中断するためには,いくつかのオプションを追加する必要があります.
私が使用している設定を Gist にアップロードしておきました.

コンパイル

ここまでで,tex ファイルのコンパイルはできるようになるはずです.
VS Code 上で .tex のファイルを保存すると,自動的に PDF が生成されます.
「Command + Alt + v」で PDF の表示 & 再読み込みができます.

引用や参考文献がないとエラーになりますが,PDF は出力されているので問題ありません.

設定ファイルの同期

LaTeX 環境を複数のマシンで構築したい場合, settings.json を同期できると便利ですね.
以下の記事を参考に設定しました.
Visual Studio Codeの設定をバックアップして同期する Settings Sync

フォントの確認

ちなみに,生成された PDF にフォントが埋め込まれているかを確認するには pdffonts というコマンドが便利です.
brew install xpdf でインストールできます.

$ pdffonts hoge.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
KBARDZ+NimbusRomNo9L-Regu            Type 1C           WinAnsi          yes yes no       4  0
MHYTOZ+HiraMinProN-W3-Identity-H     CID Type 0C       Identity-H       yes yes no       6  0
HMAQHK+NimbusSanL-Regu               Type 1C           WinAnsi          yes yes no       7  0

emb が yes になっていれば埋め込まれています.
確かに,ヒラギノ明朝らしきものが表示されていますね.

感想

今まで TeXstudio を使っていましたが.環境によって PDF の表示がうまくいかず,うんざりしていました.
VS Code ではモダンなデザインで論文執筆ができるので良いですね!

※ VS Code で自動フォーマット機能が動作しない場合は以下の記事を参考にしてみてください.
[LaTeX] [Mojave] Mac で latexindent が上手く動作しないときの対処法 - Qiita

参考

63
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?