Mac でVS code によるTex 生活

ここではローカルにLaTeX を導入して,
Visual Studi Code (VS code) の拡張機能である[LaTeX Workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop) を利用したTex 環境を構築します.
bibtex による引用などもできます.
LaTeX のインストールはHomebrew を通じて行うことにします.
気軽にLaTeX を使いたい人は[Cloud LaTeX](https://cloudlatex.io/ja)や[Overleaf](https://ja.overleaf.com) といったweb サービスがおすすめです.

https://cloudlatex.io/ja

https://ja.overleaf.com

なお本記事は以下の内容を参考にして記述しています.

https://m12watanabe1a.hatenablog.com/entry/2019/09/30/020036

# セットアップ環境
- macOS Monterey v12.4 (M1)
- Homebrew v3.6.2


# 内容
[1. 準備 (Homebrew とVS code のインストール)](#準備homebrew-とvs-code-のインストール)
[2. MacTex のインストール](#mactex-のインストール)
[3. VS Code でLaTeX Workshop をインストール](#latex-workshop-をインストール)
[4. コンパイルしてみる](#コンパイルしてみる)



# 準備　(Homebrew とVS code のインストール)
#### Homebrew のインストール
```bash
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
としてインストールしておきましょう.

https://brew.sh/index_ja

#### VS code のインストール
早速Homebrew を通じて
```bash
$ brew install visual-studio-code
```
でVS code をインストールしましょう.

https://azure.microsoft.com/ja-jp/products/visual-studio-code/





# MacTex のインストール
時間がかかるので余裕のあるときに行いましょう.
[MacTex](https://texwiki.texjp.org/?MacTeX) 本家に従って, インストールする. GUI はお好みで.
```bash
$ brew install --cask mactex
```
インストール時に
```bash
You must restart your terminal window for the installation of MacTex CLI tools to take effect.

Alternatively, Bash and Zsh users can run the command:


  eval "$(/usr/libexec/path_helper)"
```
といったことが出てきたので, 指示に従ってターミナルを再起動.
その後, 中身の更新とデフォルトをa4 サイズに設定しておく.
```bash
$ sudo tlmgr update --self --all
$ sudo tlmgr paper a4
```
以上でMacTex のインストール自体は終了です.
実際に使えるようにするために, latexmkrc というファイルを作っておくと便利です.
詳細は省きますが, tex -> pdf までのコンパイルの工程を予めセットしておくことで,
一回のコマンドでpdf まで生成できるというものです.
ホームディレクトリにlatexmkrc　があれば良いと思うので今回はホームディレクトリに作ります.
```bash
$ cd
$ code .latexmkrc
```
VS code が立ち上がると思うので,
```latex:.latexmkrc
#!/usr/bin/env perl
 
$latex = 'platex -synctex=1 -halt-on-error -interaction=nonstopmode -file-line-error %O %S';
$bibtex = 'pbibtex %O %S';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';
$makeindex = 'mendex %O -o %D %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
 
$max_repeat = 5;
$pdf_mode = 3;
 
# preview
$pvc_view_file_via_temporary = 0;
if ($^O eq 'linux') {
    $dvi_previewer = "xdg-open %S";
    $pdf_previewer = "xdg-open %S";
} elsif ($^O eq 'darwin') {
    $dvi_previewer = "open %S";
    $pdf_previewer = "open %S";
} else {
    $dvi_previewer = "start %S";
    $pdf_previewer = "start %S";
}
```
をコピペして, 保存してください　[.latexmkrc の内容はここから引用](http://www2.yukawa.kyoto-u.ac.jp/~koudai.sugimoto/dokuwiki/doku.php?id=latex:latexmk%E3%81%AE%E8%A8%AD%E5%AE%9A).


# LaTeX Workshop をインストール
## インストール
VS code に拡張機能であるLaTeX Workshop をインストールします.
画面上部のツールバーから
code -> 基本設定-> Extensions とクリックしていくと
(ショートカットキーではcmd + shift + x)
画面左部に拡張機能と検索欄が表示されます。
検索欄にLaTex Workshop とでも入力し,
検索結果に表示されたLaTeX Workshop のinstall をクリックすると,
拡張機能として利用できるようになります. 
![スクリーンショット 2022-09-22 11.51.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777840/40ec205e-7ffe-8eb1-05fd-e730b090e9f8.png)

## json ファイルの設定
拡張機能を使えるようにするために, 設定ファイル (json ファイル)　に書き込んでいきます.
VS code の上部のツーツバーから
code-> 基本設定 -> 設定 をクリックします.
(ショートカットキーでは, cmd + ,) 

![スクリーンショット 2022-09-22 12.42.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777840/b2b45b72-f84c-e7e7-af66-a37dcbe13792.png)
右上の点が３つのアイコンをクリックし, 「JSON を開く」をクリックすると,
JSON ファイルがVS code 上に立ちあがります.
```json
{
}
```
のカッコの中に
以下の内容を書き込んで保存してください.
```json:.json
    "latex-workshop.latex.recipes": [
        {  
            "name": "latexmk",  
            "tools": [  
              "latexmk"  
            ]  
        },
    ],
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
        },
    ],
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof", "*.lot", "*.out", "*.toc", "*.acn", "*.acr", "*.alg", "*.glg", "*.glo", "*.gls", "*.ist", "*.fls", "*.log", "*.fdb_latexmk", "*.synctex.gz",
        "_minted*", "*.nav", "*.snm", "*.vrb",
        "*.run.xml","*.dvi","*.bcf"
    ],
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.latex.autoClean.run": "onFailed",
```

以上にて, Vs code でLaTeX を動かせるようになります.
json の内容については[こちらから引用させてもらいました](https://m12watanabe1a.hatenablog.com/entry/2019/09/30/020036).


# コンパイルしてみる
ここではテスト用に
```bash
$ code test.tex
```
とでもして, tex ファイルを作ってみます.
```tex:test.tex
\documentclass[platex, dvipdfmx]{jsarticle}
\usepackage[hypertexnames=false]{hyperref}
\hypersetup{
  colorlinks,
  linkcolor={blue},
  citecolor={magenta},
  urlcolor={orange},
}

\title{VS code で.tex をコンパイル}
\date{\today}
\author {name}

\begin{document}
\maketitle
日本語でも英語でも大丈夫なはず.
Have a good day.
bibtex の引用もできる\cite{kc5122}.
\bibliography{hoge}
\bibliographystyle{unsrt}
\end{document}
```

引用のテスト用にhoge.bib を作っておきます.
```bash
$ code hoge.bib
```
例として私の論文のbibtex の内容を載せてます.
```bib:hoge.bib
@article{kc5122,
author = "Miura, Daisuke and Kumada, Takayuki and Sekine, Yurina and Motokawa, Ryuhei and Nakagawa, Hiroshi and Oba, Yojiro and Ohhara, Takashi and Takata, Shin-ichi and Hiroi, Kosuke and Morikawa, Toshiaki and Kawamura, Yukihiko and Ohishi, Kazuki and Suzuki, Jun-ichi and Miyachi, Yoshiyuki and Iwata, Takahiro",
title = "{Development of spin-contrast-variation neutron powder diffractometry for extracting the structure factor of hydrogen atoms}",
journal = "Journal of Applied Crystallography",
year = "2021",
volume = "54",
number = "2",
pages = "454--460",
month = "Apr",
doi = {10.1107/S1600576721000303},
url = {https://doi.org/10.1107/S1600576721000303},
keywords = {neutron powder diffractometry, spin contrast variation, dynamic nuclear polarization},
}
```

改めてtest.tex をVS code で保存するか,
ビルドすれば, pdf が生成されるはずです.

![スクリーンショット 2022-09-22 14.44.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2777840/9326aabd-6007-d688-3299-b2479ac6f88b.png)

これでVS code でLaTeX を使えるようになります.
自分で必要なパッケージやスタイルを使っていきましょう.
おつかれさまでした.

# おわり
上記の流れでおそらくは日本語, 英語共に論文やレポート作成では困らないのではないかと思います.
bibtex の管理ソフトに私は[zotero](https://www.zotero.org)を使っています.
ブラウザで同期できたりするので重宝していますので,
いつか紹介できたらよいかと思います.