Windows 7上に構築したRe:VIEW環境をVisual Studio Codeから利用する

# 背景
技術系同人誌 Advent Calendar 2017 7日目に「[TeXとRubyだけでWindowsにRe:VIEW環境を構築した話](https://qiita.com/implicit_none/items/398c6e0bbedc8b160621)」という題目で，Windows 7にRe:VIEW環境を構築する方法を書きました．W32TeXとRubyのインストーラをダウンロードしてそれぞれを個別にインストールし，コマンドプロンプトからgemでRe:VIEWをインストールする方法でした．

本記事では，Visual Studio CodeからRe:VIEWを利用する方法を説明します．WindowsでRe:VIEW環境を構築する話は色々と見つかりますが，一方で執筆環境を整える話は全く見当たりません[^1]ので，書く価値はあると考えています．
なお，本記事では[先述の方法](https://qiita.com/implicit_none/items/398c6e0bbedc8b160621)でRe:VIEWをインストールしていることを前提としています．
[^1]: Re:VIEW環境が構築できたらあとはよしなに，ということでしょうか．

# Re:VIEW執筆環境の構築
## Visual Studio Code
Visual Studio Code（以降ではVSCodeと略します）はMicrosoft社が公開しているオープンソースのエディタです．拡張機能を利用することで様々な言語に対応し，コンパイルやデバッグを行うことも可能です．

インストールは簡単です．Microsoft社の[公式ページ](https://www.microsoft.com/ja-jp/dev/products/code-vs.aspx)からインストーラをダウンロードし，それを実行するだけです．ダウンロードに時間がかかるかもしれません．

### Re:VIEW拡張機能のインストール
VSCodeを起動すると，画面横にサイドバーが表示されます．サイドバーの拡張機能のアイコンをクリックすると，拡張機能の検索ボックスが表示されます．検索ボックスにreviewと入力して検索すると，いくつか候補が出てきます[^2]．このうち，atsushienoさんが作成しているRe:VIEW language support for Visual Studio Codeをインストールします．インストールが完了すれば環境構築は終了です．
![adcal_12_1.png](https://qiita-image-store.s3.amazonaws.com/0/224040/e183700d-ba20-2feb-f86b-088d49993189.png)
[^2]: reviewという単語は（特に技術系では）一般的であるため覚えやすいのですが，検索には向いていないように感じます．

# 執筆とPDF出力
## Re:VIEWドキュメントフォルダの読込
本Advent Calendar 2017 7日目の記事では，コマンドプロンプトで

```shell
review-init reviewSample
```

を実行してreviewSampleというドキュメントを作成しました．ドキュメントの本体はreviewSample.reなので，これをVSCodeにドラッグ＆ドロップして編集すればよいのですが，複数のファイルに分けて編集したい時など，いちいちドラッグドロップしなければならないのは煩わしいのです．Re:VIEWでは複数ファイルをまとめるためにcatalog.ymlを編集しますし，文書のタイトルや著者などの変更はconfig.ymlを編集します．加えて，Windows 7でW32TeXを使う場合は，config.ymlのdvioptionsを編集しなければなりません．

Re:VIEWではドキュメントが一つのフォルダにまとめられているので，これをVSCodeで開きます．サイドバーからエクスプローラを選択すると，フォルダーを開くというボタンが表示されます．これをクリックして，reviewSampleフォルダを開きます．
![adcal_12_2.png](https://qiita-image-store.s3.amazonaws.com/0/224040/3cf0935f-30f0-c677-9be9-d447092b5ff5.png)

そうするとフォルダの中身が全て読み込まれます．ここまでできたら，ファイル→名前を付けてワークスペースを保存を選択して保存しておきましょう．
![adcal_12_3.png](https://qiita-image-store.s3.amazonaws.com/0/224040/e6c59050-e4c8-8913-dc6d-aa828cf3b2ba.png)

何らかのプログラミングに関係する同人誌を執筆する場合，VSCodeに当該プログラミング言語のコンパイル・デバッグ環境を整えておけば，Re:VIEWドキュメントのフォルダにサンプルコードを置くことで，サンプルコードの編集と原稿の執筆をシームレスに切り替えられるようになるかもしれません．

## 執筆とプレビュー
読み込まれたフォルダの中からreviewSample.reをシングルクリックすると編集ウィンドウが開きます．試みに，テストという名前の章タイトルを追加してみました．
![adcal_12_4.png](https://qiita-image-store.s3.amazonaws.com/0/224040/e870d336-72b9-008d-c6fa-a2fc2d704663.png)

この状態で，編集ウィンドウ右上にあるShow previewをクリックすると，編集画面が2分割され，仕上がり結果が表示されます．
![adcal_12_5.png](https://qiita-image-store.s3.amazonaws.com/0/224040/7fa56a28-4191-aa5f-e536-9c8522e0af2b.png)

あくまでプレビューなので，Re:VIEWの処理系を通してPDFとして出力した場合とは見た目が異なりますが，入力した命令が正しいかどうかや所望の文書構造になっているかの確認は十分に可能です．

## PDFの出力
ある程度文章が書けたら，PDFファイルに出力してできばえを確認します．Re:VIEWで文書pdfを作成するには，`review-pdfmaker`コマンドを使います．コマンドを実行するためにいちいちコマンドプロンプトを起動する必要はありません．VSCodeの統合ターミナルを利用してコマンドを実行できます．

表示→統合ターミナルをクリックすると，ウィンドウ下部にターミナルが現れます．開いているディレクトリがカレントディレクトリになるのでそのままコマンドを実行できます．

```shell
review-pdfmaker config.yml
```

を実行してください．
![adcal_12_6.png](https://qiita-image-store.s3.amazonaws.com/0/224040/16379852-3749-7fa5-c6af-6644116e9641.png)

コンパイルが実行され，エラーがなければbook.pdfというPDFファイルが出力されます[^4]．
[^4]: 出力ファイル名を指定しない時の標準のファイル名です．
![adcal_12_7.png](https://qiita-image-store.s3.amazonaws.com/0/224040/9ed576e9-fac9-cf51-33c8-e364866906ff.png)


ここでreview-pdfmakerが認識されない場合は，

```shell
C:\Ruby24-x64\bin\setrbvars.cmd
```

を実行すると，Ruby用の環境変数が設定され，実行できるようになります[^5]．
[^5]: ディレクトリ名Ruby24-x64はインストールしたRubyのバージョンによって変化する可能性があるので，適宜読み替えてください．

Windowsでは，コマンドの代わりにファイル名を入力して実行するとそのファイルを開くことができるので，コンパイルが成功したら，

```shell
book.pdf
```

を実行してみてください．PDFファイルに関連づけられたアプリケーションが起動し，book.pdfが読み込まれます．著者の環境では，book.pdfが読み込まれた状態でAdobe Acrobatが起動します．
![adcal_12_8.png](https://qiita-image-store.s3.amazonaws.com/0/224040/a8dead9a-e9b4-5e21-152e-0dd788c05bc9.png)


## 補足
PDFファイルをVSCodeで開いておき，`review-pdfmaker`を実行する度に再読込してくれるとよいのですが，今のところはできないようです[^3]．
[^3]: LaTeX用の拡張機能であるLaTeX Workshopでは，ファイルを保存すると裏でコンパイルをしてくれたり，Visual Studio Code内で作成したPDFファイルを確認したりできます．

Re:VIEW language support for Visual Studio Codeはまだ完璧ではありません．私が使った範囲では，異なるファイルの章や節を参照しようとしても認識できませんでした．LaTeXの数式を埋め込む命令@\<m>{}も未対応のためかTODO:と表示されます．

# まとめ
Windows 7上に構築したRe:VIEW環境をVisual Studio Codeから利用して，執筆からPDF出力するまでの流れを説明しました．

 1. Visual Studio CodeにRe:VIEW拡張機能をインストールし，
 2. ドキュメントフォルダを開いてワークスペースを作り，
 3. 統合ターミナルから`review-pdfmaker`を実行します．

できあがったPDFファイルは，そのままファイル名をターミナルに入力することで，関連づけられたアプリケーションで開くことができます．

Windowsのアプリケーションはコマンドが絡むとどうしてもコマンドプロンプトと行き来しなければならなくなるのですが，Visual Studio Codeはそれがなく，Visual Studio Codeだけで作業を完結できるのがいいところです．

本記事の手順を詳細に解説し，さらに解像度の異なる画像への切り替えとそれに伴うターミナルの使い方，Visual Studio Codeでの注意点をまとめて，親方Projectさんの新刊に寄稿しています[^7], [^8]．

[^7]: 親方Project編，ワンストップ！技術同人誌を書こう，コミックマーケット93，1st day-東3-カ41b，親方Project，2017．
[^8]: 親方Project編，ワンストップ！技術同人誌を書こう，コミックマーケット93，3rd day-東4-リ05b，Clear-mint，2017．

アウトプット環境を整えてよいプログラミングライフを！