メモ：vscode＋pandocで日本語PDF出力

構築メモ。環境はWindows 10です。

# インストール

1. pandocのインストール
    1. 「[Pandoc - Installing pandoc](https://pandoc.org/installing.html)」から「Download the latest installer for Windows (64-bit)」のリンクでインストーラーをダウンロード
    1. インストーラーを起動し、ウィザードに沿ってインストール実行。
    1. コマンドラインかPowerShellを開き、 `pandoc --version` でバージョン表示が出る（インストールができている）ことを確認する。
1. VScodeのプラグインのインストール
    1. VScodeを起動
    1. プラグイン画面で `vscode-pandoc` を検索
    1. 見つかったプラグインをインストール（複数見つかったので `Chris Chinchilla` のものを入れた）

# docker使用オプションの無効化とHTMLへの変換

[最近](https://marketplace.visualstudio.com/items?itemName=ChrisChinchilla.vscode-pandoc#releases)Dockerサポートが加わったらしくて、デフォルトでこれが有効化されてて、以下のエラーになった。

```
exec error: Error: Command failed: docker run --rm -v (略)
```

前提条件部に書かれてる `useDocker` オプションを無効化すればよさそうな気がする。

> You need to install Pandoc - a universal document converter.
> Alternatively you may set the `useDocker` option to true and the extension runs Pandoc in a container using the latest official pandoc/latex image. 

1. VScodeを起動
1. プラグイン画面で `vscode-pandoc` を右クリックし「拡張機能の設定」を開く
1. 最下部にある「Pandoc: Use Docker」オプションのチェックを外す<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55718/4ed491b5-1262-227b-036d-eb6a2d9b7073.png)

これで特別なレンダリングエンジンが要らなそうなMarkdownからHTMLへの変換をしてみる。

1. VScodeを起動
1. 任意のMarkdownファイルを開く
1. `Ctrl`+`P`でコマンドパレットを開き、`Pandoc Render`を選択
1. レンダリング形式に `html` を指定

# Word（.docx）への変換

上のHTMLへの変換が成功していれば、残る前提条件はWordがインストールされていること。

1. VScodeを起動
1. 任意のMarkdownファイルを開く
1. `Ctrl`+`P`でコマンドパレットを開き、`Pandoc Render`を選択
1. レンダリング形式に `docs` を指定

# PDFへの変換

PDFに変換するには `pdflatex` かその代わりになる変換エンジンが要るらしくて、以下のエラーになった。

```
exec error: Error: Command failed: "pandoc" "Markdownファイルのパス.md" -o "PDFファイルのパス.pdf" pdflatex not found. Please select a different --pdf-engine or install pdflatex
```

まずTeXのインストール。関連情報は[ここ](https://texwiki.texjp.org/?TeX%20Live%2FWindows#w369638d)とか[ここ](https://obsica.com/texlive-basic-install/)とか[ここ](https://qiita.com/zr_tex8r/items/18a78c93221ddb20d639)。

1. [Windows - TeX Live - TeX Users Group](https://www.tug.org/texlive/windows.html)から「[install-tl-windows.exe](https://mirror.ctan.org/systems/texlive/tlnet/install-tl-windows.exe)」をダウンロード。
1. 実行し、ウィザードに沿ってインストール。

インストール進行状況が表示されるけど「0250/4538」とか「time/total: 05:51/1:18:42」とか出てて、どんだけって気持ちになる。でもまあ、見守る。見守らないで、なにか他のことしてきてもいい。私の環境では「4538/4538」と最後まで来たとき、時間の方は「02:07:12/02:07:12」だった。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55718/8af31726-6795-80e0-ceee-b7b677a7c9d3.png)

vscode-pandocにPDF生成時のエンジンの設定を入れていくけど、日本語PDFを生成するにはもうひと手間必要らしくて、 `pdflatexe` より `lualatex` を使うのが手軽そう。関連情報は[ここ](https://qiita.com/yanami/items/3e20b0daf7743ffb8b14)とか[ここ](https://ja.osdn.net/projects/luatex-ja/wiki/LuaTeX-ja%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9)。

1. VScodeを起動。
1. プラグイン画面で `vscode-pandoc` を右クリックし「拡張機能の設定」を開く。
1. 「Pandoc: Pdf Opt String」に `--pdf-engine=lualatex -V documentclass=ltjsarticle -V luatexjapresetoption=ms` を指定する。<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55718/37331a87-b8de-77f1-a8d9-9220e99e5e58.png)

これでMarkdownからPDFへの変換をしてみる。

1. VScodeを起動（再起動）。
1. 任意のMarkdownファイルを開く。
1. `Ctrl`+`P`でコマンドパレットを開き、`Pandoc Render`を選択。
1. レンダリング形式に `html` を指定。

# 参考情報

以下を参考にした。

* [VScode+pandoc+Lualatexで日本語pdfをMarkdownから出力する - Qiita](https://qiita.com/yanami/items/3e20b0daf7743ffb8b14)
* [メモ: Pandoc+LaTeXで気軽に日本語PDFを出力する - Qiita](https://qiita.com/sky_y/items/15bf7737f4b37da50372)
* [TeX Live/Windows - TeX Wiki](https://texwiki.texjp.org/?TeX%20Live%2FWindows#w369638d)
* [TeX Live 2023のインストール · Obsica](https://obsica.com/texlive-basic-install/)
* [重点解説！ TeX Live 2023はココが違う！ - Qiita](https://qiita.com/zr_tex8r/items/18a78c93221ddb20d639)

この先はPandocの使いこなしになるけど、参考にしたいところをメモしておく。

* [44種類のフォーマットに対応したPandocでMarkdownをHTML形式に変換する | DevelopersIO](https://dev.classmethod.jp/articles/pandoc-markdown2html/#toc-14)
* [Pandoc(+TeX)のインストール方法: xshige's beta notes](https://beta-notes.way-nifty.com/blog/2021/05/post-088d61.html)