Help us understand the problem. What is going on with this article?

TeXとRubyだけでWindowsにRe:VIEW環境を構築した話

More than 1 year has passed since last update.

この記事は技術系同人誌 Advent Calendar 2017の(形式上)7日目の記事です.
追記しました(2017年12月17日).
宣伝はダメだと聞いたので告知の表現を変えました(2017年12月17日).

背景

詳しくは技術系同人誌 Advent Calendar 2017第11日目に書かれていますが,親方Projectさんが合同誌を企画されています.執筆にはRe:VIEWを用い,GitHubを介して共同執筆するスタイルでした.この合同誌に参加するためにはRe:VIEW環境を一から構築しなければならなかったのですが,ネットの記事の解説よりもかなり簡単にWindows 7上に環境を構築できたので,その経験をまとめて共有します.

Re:VIEWとは何か

Re:VIEWとは書籍執筆の支援ツールであり,ざっくりと,独自記法をRubyでTeX形式に変換する,LaTeXのフロントエンドであると理解しています.つまり,Re:VIEW環境の構築にはTeXとRubyの二つが必要になるということです.

Windows上へのRe:VIEW環境構築の情報

Re:VIEWの解説書1にはWindowsに関する記述はコラム一つ分しかなく,まともなTeX環境を構築していないから”素直に”仮想環境を利用していると書かれています.「"Re:VIEW" Windows」あるいは「"Re:VIEW" Windows 構築」で検索すると,いくつかに大別された情報が見つかります.新しい記事に多いのはWindows 10のBash on Windowsを使う方法です.例えば,

などが上位に出てきます.Cygwinを利用してTeXとRubyをインストールする方法もあり,これは古めの記事に多く見られる傾向です.(推定される理由を追記しました.2017年12月17日)

他にもVirtualBoxを使って仮想環境を構築する方法(Windows で Re:VIEW 環境を構築する)や,Cygwinの代わりにMSYS2を使う方法(Windows10でRe:VIEWでPDFを作成するまでの環境構築)などもあります.流行りのDockerを使う方法もありますが,WindowsにDockerをインストールするにはVirtualBoxが必要なので,負担はVirtualBoxを使って仮想環境を構築する方法と同じです.

Re:VIEW環境の構築

本当にこんなに面倒なの?

記事を読んだときの著者らの素直な感想です.WindowsにはW32TeXやTeX LiveといったTeX環境があります.検索すると,RubyにもWindows版があり,RubyInstallerを使えば簡単にインストールすることができることが分かりました.それなのに,面倒なことをしている記事ばかりということは,何か根本的な問題があるのかもしれないと考えざるを得ません.問題があるとすれば,Rubyは動けどRe:VIEWが動かないか,Re:VIEWからTeXが叩けないかのどちらかだろうと推察しました(結局これらは杞憂でした).

TeXのインストール

著者らは元々TeX(W32TeX)を利用していたので,TeX環境は既に構築されていました.構築されていない場合は,W32TeXのインストーラをダウンロードして,インストールを実行します.ウィザードに沿って進めて行くだけなので,失敗することはまずありません.GhostscriptやGSView,dvioutもインストールしておきます.
ReviewWin7_texinst_1_start.png

Rubyのインストール

次にRubyをインストールします.RubyInstallerをダウンロードし,インストールしました.これもウィザードに沿って進めていくだけでした.
ReviewWin7_rubyinst_1_license.png

Re:VIEWのインストール

Rubyをインストールし終えたら,スタートメニューのすべてのプログラムを展開し,Rubyのフォルダ(執筆時の最新バージョンをインストールするとRuby 2.4.2-x64)を開き、Start Command Prompt with Rubyを実行したのち,開いたコマンドプロンプトで

gem install review

を実行すると,何事もなくRe:VIEWがインストールされました.
ReviewWin7_rubyinst_5_startmenu.png

ReviewWin7_reviewinst.png

Re:VIEWの動作確認

Re:VIEWの原稿を作成するには,review-initを実行します.

review-init reviewSample

でreviewSampleという名前の原稿を作成し,ディレクトリreviewSampleに移動して

review-pdfmaker config.yml

を実行すると,Re:VIEWが動き出し,見慣れたTeXのコンパイル画面が出てきました.TeXとRe:VIEWの連携は何も問題なかったようです.
ReviewWin7_pdfmake_2_progress.png

dvipdfmxのオプションの設定

何事もなくコンパイルが進んで行きましたが,dviをpdfに変換する途中でエラーが出ました.
ReviewWin7_pdfmake_3_error.png

エラーの内容は,フォント(ヒラギノ)が見つからないということだったので,Re:VIEWやTeXの問題ではありません.MSゴシックやMS明朝を使うようにconfig.ymlを編集しました.

before
# dvioptions: "-d 5"
after
dvioptions: "-f msmingoth.map -d 5"

これでdviからpdfの変換ができ,無事にpdfファイルが作られました.
ReviewWin7_pdfmake_4_result.png

まとめ

Windows 7上にRe:VIEW環境を構築し,原稿pdfを出力するのには,CygwinもVirtualBoxもDockerも要りません.必要だった手順は以下の通りです.

  1. TeXをインストール
  2. Rubyをインストール
  3. RubyからRe:VIEWをインストール
  4. config.ymlのdvioptionsに-f msmingoth.mapを追加

手順4は環境によっては必要ない可能性もあります.もし手順4が必要な場合は,原稿毎にconfig.ymlを編集する必要があります.

なお,Windows 7を搭載したPC 2台でこの手順を確認し,どちらもRe:VIEW環境を構築できています.ですが,全てのPCで成功することを保証するものではありません.TeX Liveを利用した場合も,手順が変わる可能性があります.

本記事手順を詳細に解説し,さらにVisual Studio Codeで執筆,コンパイルするまでを解説した内容を,親方Projectさんの新刊に寄稿しています2, 3

補足

画像を貼ろうとすると[Payload Too Large]()とでてアップロードできなかったので,解決方法が分かれば後で図を追加します(可能なら)
画像をアップロードできるようになったので追加しました.(2017年12月17日)

追記(2017年12月17日)

Re:VIEW開発者のkmutoさんがTwitter上の会話4の中で,Re:VIEWからのシェルスクリプトの呼び出しを概ねなくしていると言及されているのを見つけました.つまり,過去にはRe:VIEWの利用にはシェルが必須であり,そのためWindowsではCygwinが必要であったと読み取れます.古めの記事でCygwinに言及していたのはこうした背景があったからだと考えられます.

正確にいつのバージョンからシェル無しでRe:VIEWが利用できるようになったのかは分かりません5が,シェルが必須,すなわちWindowsではCygwinが必須であった頃にCygwinを介してRe:VIEWを利用する方法がまとめられ,Re:VIEWがバージョンアップを重ねてシェルが必須ではなくなった頃にはWindowsユーザの多くがWindows 10に移行し,Bash on Windowsを介してRe:VIEWを利用するようになった,という流れと推察します.


  1. Techbooster編著,技術書を書こう!~はじめてのRe:VIEW~,2015. 

  2. 親方Project編,ワンストップ!技術同人誌を書こう,コミックマーケット93,1st day-東3-カ41b,親方Project,2017. 

  3. 親方Project編,ワンストップ!技術同人誌を書こう,コミックマーケット93,3rd day-東4-リ05b,Clear-mint,2017. 

  4. https://twitter.com/kmuto/status/836083164351082500 

  5. Githubでさかのぼれば分かるのでしょうが. 

implicit_none
Fortranと数値計算 https://twitter.com/implict_none
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした