(2017/7/15 追記:Visual Studio Codeでの環境構築を追記しました。)
来月秋葉原で開催される「技術書典」というイベントで、Androidの会Unity部にて「UNIBOOK5」を出展します。
私も共著の形で一部執筆させていただきました。主催している「達人出版会」では、「Re:VIEW」という仕組みを使って書籍化するのが基本のようで、今回の執筆にはRe:VIEWを使いました。
実は以前共著した時にもRe:VIEWを使ったのですが、使い方をすっかり忘れていたので、次回使うときの備忘録も兼ねて一通りまとめてみました。
(2020/1/28追記)
最近試された方の記事です。準備や使い方の手順は特に変わっていないようです。
あと、今はRe:VIEW Starterという仕組みもあるようですね (知らなかった、、)
1. そもそもRe:VIEWとは何か?
Re:VIEWは、Rubyベースであり、日本人のRuby技術者、「青木峰郎」さんによって開発されました。下記の公式ページの引用です。Re:VIEW は、EWB や RD あるいは Wiki に似た簡易フォーマットで記述したテキストファイルを、目的に応じて各種の形式に変換するツールセットです。
引用:Re:VIEWクイックスタートガイド, https://github.com/kmuto/review/blob/master/doc/quickstart.ja.md , 武藤健志、高橋征義、角征典
下記をブログを見ると2008年に初めて公開したとあるので、ここが最初のようです。
2. 環境構築
2-1. Re:VIEWをインストール
Linux/Unix環境で下記を実行するだけです。
$ sudo gem install review
私のMac環境(ElCapitan)では、このコマンドだけでいけました。Linux環境の方は、事前にRubyのインストールが必要です。cygwinを使えばWindowsでも動くはずです。
動作未確認ですが、この記事にはインストーラが紹介されているので、Windowsでも動くのかもしれません。
2-2. 執筆用エディタ「Atom」をインストール
ここからダウンロードしてインストールします。インストール後、Preferenceを選択し、install packageにて、language-reviewを入力し、Re:VIEW用のパッケージをインストールします。

インストールすると、Re:VIEW記法の文法を識別して色分けしてくれます。
また、書きながらPreviewを表示させることもできます。以下のように、Packages / Re:VIEW /Toggle Preview を選択するだけです。

すると、このように、テキストで書きながら直接見た目を確認できます。

(epubやpdfにした時と、若干見た目が変わりますが、Re:VIEW記法の文法チェックには便利です)
=====
(2017/7/15 追記:Visual Studio Codeでの環境構築を追記しました。)
@dy_karous さんより、エディタとしてAtom以外にVisual Studio Codeでのプラグインが公開されていることを教えていただきました。
インストール方法はVSCodeを開いて、下記の①②③のようにします。

Unibook8の執筆向けに試してみましたが、問題なく使うことができました。(Macだとスペック不足か、時々動作が遅くなる時がありました)
詳細は下記作者さまのブログをご参考ください。
vscode-language-reviewを公開します - ものがたり
=====
3. 執筆用のプロジェクト生成
プロジェクトを作りたいディレクトリに移動し、
$ review-init <プロジェクト名>
を実行します。
例えば、
$ cd /User/testuser/Document $ mkdir Testbook $ cd Testbook $ review-init testbookname
これで、/User/testuser/Document/Testbook/testbookname という中にプロジェクト一式が生成されます。この中に、style.cssというファイルがありますが、これを
$ mv style.css stylesheet.css
を実行し、stylesheet.cssに変更します。epub生成時、stylesheet.cssがあるものとして処理を進めるので、style.cssのままだとエラーになるためです。
あとは、拡張子".re"のファイルを作って、この中に本の内容を書いていきます。".re"のファイルは、一つが章に相当します。章の並びを決めるのは、catalog.ymlです。
catalog.ymlはこのような書式です。
PREDEF: CHAPS: - chap1.re - chap2.re - chap3.re APPENDIX: POSTDEF:
例えば、この場合、chap1.re、chap2,re、chap3.reの順番に並べることで、1,2,3章となります。
4. Re:VIEW記法
4-1. 主な記法
実際にRe:VIEW記法で書いてepubにしました。個別の記法は下記をご確認ください。(epubファイルのダウンロードリンクを貼るのは少し面倒なので、epub化したもののスクショを置きました)
= Re:VIEWを使った執筆方法
== Re:VIEWのインストール方法
Re:VIEWはRubyで作られているので、gemを使ってインストールします。
//emlist{
$ sudo gem install review
//}
== Re:VIEW記法の使い方
"@<>{}"を使って、いろいろな表現をつけます。
(注) 以下、epubファイルでRe:VIEW記法を表記するため、"<"をわざと全角にしています。実際は半角を使用します。

=== 太字
//emlist{
@<b>{太字にしたい文字}
//}
@<b>{この部分が}太字になります。
=== 斜体
//emlist{
@<i>{斜体にしたい文字}
//}
@<i>{この部分が}斜体になります。
=== ハイパーリンク
//emlist{
@<href>{URL,ハイパーリンクにしたい文字}
//}
第一引数だけを使うと、このようにリンクを貼ります。
@<href>{http://magicbullet.hatenablog.jp}
第二引数まで使うと、文字に対してリンクを貼ることができます。
@<href>{http://magicbullet.hatenablog.jp,CrossRoad}
=== 画像の埋め込み
//emlist{
"//image[imagesフォルダの中の画像ファイル名][キャプション]"
//}
//image[image1][ブログのトップページ]
第一引数に、プロジェクトのimagesファイルの中に入れた画像のファイル名を書きます。拡張子は書きません。
第二引数には、キャプションを書きます。
ちなみに、image1.jpgとimage1.pngを置いたところ、pngが優先されました。
また、先頭に"//"をつける必要があります。
=== 表の生成

ちょっと複雑ですが、このように書きます。
//emlist{
"//table[別の場所で引用するときのキーワード][表の名前]{"
項目の名前 項目の名前2
--------------------------------------
項目11 項目12
項目21 項目22
"//}"
//}
"-"を12個以上追加すると、"-"の上にある文字はヘッダになります。また、要素間はTabキーで区切ります。
//table[envvat2][試しに書いてみた表]{
項目の名前 項目の名前2
----------------------------------
項目11 項目12
項目21 項目22
//}
(注)原因不明ですが、私の環境ではタブで区切ったところが、保存することで強制的に半角スペースに変換されてしまい、表がうまく生成されませんでした。(AtomエディタとVisual Stduio Codeで発生)
最終的に、「メモアプリ」など、別のアプリでタブ入力した後その部分をコピーし、Atomエディタで開いているテキストの該当箇所に貼り付けたら、タブのまま保存してくれました。
=== ソースコードの強調表示
//emlist{
"//emlist{この中にソースコードを描きます}"
//}
//emlist{
void Start(){
}
void Update(){
}
}
//}
== epubの生成
プロジェクトの中で、以下のコマンドを実行します。
//emlist{
$ review-epubmaker catalog.yml
//}
configuration file has no review_version property.
というwarningが出ますが、epubファイルが生成されます。

4-2. Tips
(1) epubとpdfファイルについて
epubファイルであれば、Macの場合、標準で入っているiBooksというアプリで開くことができます。ちなみに、review-pdfmakerというコマンドでpdfファイルも生成できます。
ただ、pdfの生成には色々とパッケージが必要で、試したのですがうまくいきませんでした。
(他の方のブログを見ても、うまくいかない場合も多そうな印象です)
一応epubでも雰囲気は確認できるのと、pdf化だけに時間を取れなかったので、今回は見送りました。機会があれば試してみようと思います。
(2) 画像貼り付け時の大きさ変更
4-1と同様に、Re:VIEW記法とepubの結果を置きました。
= 画像の埋め込み(サイズ変更)
"[scale=<数値:0~1>]"を追加すると、画像の大きさを変更できます。
@<b>{"//image[ファイル名][ブログのトップページ]"} の場合
//image[image1][ブログのトップページ]
@<b>{"//image[ファイル名][ブログのトップページ][scale=0.5]"} の場合
//image[image2][ブログのトップページ][scale=0.5]
ただ、違うかもしれませんが、このscaleは元の解像度と関係なく大きさを変えているようにも見えます。
執筆時は、epubやpdfにしながらいい感じの大きさを調整するのが良さそうです。

5. 終わりに
Re:VIEWの特徴は、epub以外にも色々なフォーマットに変換できることです。私は出版業界で何が使われているかは全然知らないのですが、Re:VIEWは汎用性が高そうなので広く使われていそうですね。なので知っておくと、UNIBOOK以外に執筆することがあっても役に立ちそうです。