Jupyterで出力したTexファイルをPDFに変換（Mac）

TexファイルをPDFに変換する方法のメモ。

Jupyterで書いたMarkdownの書類（Tex形式の数式含む）をPDFに変換したかったのですが、紆余曲折あったので備忘録として。

Jupyterから直でPDF出力する方法がなかなかうまくいかず、今回はTex形式で出力した後、pandocとbasictexでtexからPDFへ変換する方法にしました。環境はMac OS Sierra。

## MacTexのアンインストール

basictexをインストールしようとしたら、入ってたMacTexが邪魔をしたのでアンインストール。

参照元：https://qiita.com/sky_y/items/3c5c46ebd319490907e8

10分くらいかかりました、、、

```
$ rm -rf /usr/local/texlive
$ rm -rf ~/Library/texmf
$ rm -rf ~/Library/texlive
$ rm -rf /Applications/TeX
$ sudo rm -rf /Library/TeX/
$ brew cask uninstall mactex
```

MacTexでも使えたかもしれませんが、軽量化のため実施。

## pandocとbasictexのインストール

参照元：https://note.nkmk.me/mac-pandoc-markdown-pdf-japanese/

```
$ brew install pandoc
$ brew cask install basictex
$ nano ~/.bash_profile
```

以下のパスを追加

```
export PATH=/Library/TeX/texbin:$PATH
```

ターミナルに戻って、

```
$ source ~/.bash_profile
$ sudo tlmgr update --self --all
$ sudo tlmgr install collection-langjapanese collection-luatex collection-latexextra
```

ここまでは順調。
pandocコマンドが使えるかチェック。

```
$ pandoc -v
pyenv: pandoc: command not found
```

使えないorz

どうも、pyenvとコンフリクトしてるっぽい？

Anacondaにもpandocが準備されているようなので、そちらでインストールし直してみる。

参照元：https://anaconda.org/conda-forge/pandoc

```
$ brew uninstall pandoc
$ conda install -c conda-forge pandoc
```

もう一度、テスト。

```
$ pandoc -v
pandoc 2.6
Compiled with pandoc-types 1.17.5.4, texmath 0.11.2, skylighting 0.7.5
Default user data directory: /Users/username/.pandoc
Copyright (C) 2006-2019 John MacFarlane
Web:  http://pandoc.org
This is free software; see the source for copying conditions.
There is no warranty, not even for merchantability or fitness
for a particular purpose.
```

うまくいきました。

## pandocコマンドで変換

早速、pandocコマンドを使ってみます。

```
$ pandoc input.md -o output.pdf -V documentclass=ltjarticle --latex-engine=lualatex
--latex-engine has been removed.  Use --pdf-engine instead.
Try pandoc --help for more information.
```

どうも、オプションが変更になったようです。

もう一度トライ。

```
$ pandoc input.md -o output.pdf -V documentclass=ltjarticle --pdf-engine=lualatex
Error producing PDF.
! Package fontspec Error: The font "latinmodern-math" cannot be found.

For immediate help type H <return>.
 ...                                              
                                                  
l.101 \begin{document}
```

フォントが見つからないエラー。

対処法としては、フォントをインストールすれば良いとのこと。

参照元：https://www.yamamanx.com/mac-pandoc-pdf/

```
$ sudo tlmgr install lm-math
```

そしてリトライ。

```
$ pandoc input.md -o output.pdf -V documentclass=ltjarticle --pdf-engine=lualatex
```

これでうまくいきました。

## おまけ1

ちなみに、JupyterのMarkdownで`=`の位置を揃えるために、以下のように書いた部分、

```
$$
\begin{equation*}
\begin{split}
A &= b_1 + b_2 \\
&= c_1 + c_2
\end{split}
\end{equation*}
$$
```
```math
\begin{equation*}
\begin{split}
A &= b_1 + b_2 \\
&= c_1 + c_2
\end{split}
\end{equation*}
```

`$$`と`\begin{equation*}`を同時に使っているとpandocで変換するときに、以下のようなエラーが出ました。

```
$ pandoc input.md -o output.pdf -V documentclass=ltjarticle --pdf-engine=lualatex
Error producing PDF.
! LaTeX Error: Bad math environment delimiter.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.215 \begin{equation*}
```

$$の部分をtexファイルから削除すると変換できます。

## おまけ2

pandocで変換するときは、オプションで`-V geometry:margin=1in`をつけるとレイアウトが簡単に変更できます。

```
$ pandoc input.tex -o output.pdf -V documentclass=ltjarticle --pdf-engine=lualatex -V geometry:margin=1in
```

参照元：https://qiita.com/takada-at/items/c807c163bd861bbec7cf