技術系同人誌を作成している人なら特にお世話になっているであろう「Re:VIEW」の最新版3.0.0がリリースされました。今回はこのRe:VIEWをUbuntuにインストールした上で、その基本的な使い方を紹介します。
Re:VIEWとは
Re:VIEW(りびゅー)は簡単に使える、紙書籍・電子書籍作成支援ツールです。出力フォーマットとしてEPUBやPDFだけでなく、InDesign XMLにも対応しているため、電子版の同人誌から印刷される商業出版に至るまで幅広く使われています[1]。
組版に必要なマークアップは独自の言語を採用しています。このためRe:VIEWを本格的に使うにはマークアップに対する知識が必要にはなるものの、その記法はなるべく書籍の著者にとっても書きやすくなるよう作られているようです。おそらくそこまで困ることはないでしょう。ソフトウェアの作成言語はRubyであり、ツールやマークアップ言語の仕様はGitHub上で開発されています。
さらにRe:VIEW knowledgeには、Re:VIEWを使うにあたっての事細かなノウハウが記載されていますので、困ったらまずはここを見ましょう。
さて、そのRe:VIEWは11月30日にメジャーバージョンアップグレードである3.0.0がリリースされました。機能追加・不具合修正はもちろんのこと、CSS組版の広まりや技術書典を始めとする技術系同人誌における利用を見越した大幅な見直しも行われています。特にPDFを生成するLaTeXビルダーについては、Re:VIEWユーザーの広まりを想定して「より安全なPDFを生成できる」よう、大きな変更が加えられました。今から新しく書籍を作るのであれば、Re:VIEW 3モードを有効化して作ると良いでしょう。
本記事でもRe:VIEW 3環境で新規に作成することを前提に説明します[2]。ちなみにRe:VIEW 2と3では設定ファイルの内容や生成されるドキュメントのレイアウトは変わるものの、Re:VIEWの書き方そのものに違いはありません。よって複雑な原稿でなければ、そのまま流用できるはずです。
UbuntuでRe:VIEWの最新版をインストールする
さっそくUbuntuにRe:VIEWをインストールしましょう。最低限必要なのはRuby本体です。
Rubyのバージョンは2.1以降であれば良いようです。Ubuntu 16.04 LTS以降であればどのバージョンでも公式リポジトリのRubyが使えることになります。またgemの依存関係も小さくなるように配慮されているため、大抵の環境なら特に問題なく動くでしょう。
Re:VIEWそのものはRubyGemsからインストールします。
gemコマンドの標準のインストール先は「/var/lib/gems/2.5.0
」なので、管理者権限が必要です。ユーザーのホームディレクトリ以下にインストールしたい場合は「--user-install
」オプションを付けてください。パッケージ名を「review:3.0.0
」にするとバージョンを指定できます。また「--prerelease
」を付けると正式リリース前のプレビュー版もインストールできます。
Re:VIEWで書籍を作成するにあたって、最初に雛形を生成します。今回は「sample」という書籍にしてみましょう。
当面重要になるのは「sample.re
」「catalog.yml
」「config.yml
」の3つです。「sample.re
」にRe:VIEWフォーマットで書籍の本文を執筆し、「catalog.yml
」に各reファイルのファイル名を列挙していきます。「config.yml
」では、書籍全体の設定を行います。
雛形はそのままでもビルド可能なので、実際にEPUBファイルを作成してみましょう。review-epubmakerに設定ファイルを渡して実行すれば、EPUBが生成されます。
「sample.re
」はタイトル要素「=
」だけのファイルなので、上記のように警告が出てしまいます。ちなみにrakeコマンドがあるなら、ターゲットとしてepubを指定することで同じようにビルド可能です。将来的にEPUBとPDFの両方を生成するのであれば、rakeを使うとより直感的でしょう。
EPUBの動作確認をするためにはEPUBリーダーが必要です。公式リポジトリにあるものだと編集も可能なSigilやKDEのOkularなどが有名です。もちろん第534回で紹介されているAtrilも選択肢になります。
今は本文に何も書いていないので、表紙と目次と作者が書かれたのみのシンプルなEPUBファイルとなっています。
PDFを生成する
Re:VIEWがPDFを生成するには別途TeXのインストールが必要になります。Ubuntuであれば、TeX Liveのパッケージ一式をインストールすることになるでしょう。
あとはEPUBと同様にreview-pdfmakerコマンドもしくはrakeコマンドを用いてPDFを生成します。
生成されたPDFについては、Evinceをはじめとする普通のPDFリーダーで閲覧できます。
Re:VIEW 3以降でPDFを生成した場合、そのまま印刷所に入稿できるようトンボ付きのPDFとなります。
基本的な使い方
EPUB/PDFの生成方法がわかれば、あとはRe:VIEWの書式に従って執筆するだけです。Re:VIEWの書式は比較的人間が読みやすい形式なので、どんなエディタを使ってもそれほど困らないでしょう。プロジェクト生成時に「doc/format.ja.md
」としてフォーマットガイドがコピーされているので、それを参考に執筆を進めてください。とりあえず「見出し」と「箇条書き」「ソースコードなどのリスト」の書き方さえ覚えておいて、あとは一通り書き終えてからじっくりと編集しましょう。
書籍として取り込むreファイルは「カタログファイル」に列挙します。カタログファイル(catalog.yml
)はYAML形式のファイルであり、reファイルごとにそれが本編なのか後付なのかなどを指定できます。テンプレート生成直後は「(書籍名).re」のみ指定されているため、reファイルを追加したりファイル名を変更した場合は合わせてカタログファイルも更新してください。
書籍全体のメタデータは、「config.yml
」ファイルで設定します。書籍名・著者一覧・刊行日と言った一般的な書籍用メタデータはもちろんのこと、表紙を付けるのか目次はどうするのかやTeXコマンド時の実行時のオプションに至るまで、さまざま設定を行えます。設定項目の詳細は「config.yml
」の中にコメントとして書かれているので、一度目を通しておきましょう。
トンボなしのPDFを生成する
前述したように、Re:VIEWでは初期設定だとトンボありのPDFを生成します。トンボは印刷所に入稿する際に必要になるものの、生成したPDFをそのまま配布するのであれば邪魔なだけです。トンボの有無は「config.yml
」のtexdocumentclassで変更できます。
上記の最終行にある「media=print
」を「media=ebook
」に変更した上で、「rake pdf
」を実行すれば、トンボなしPDFが生成されるはずです。
もし印刷用と電子配布版の両方を作れるようにしておきたいのであれば、inheritパラメーターを用いて設定ファイルを継承し、一部の設定だけ書き換える方法があります。まずconfig.yml
を継承し、texdocumentclass
のみ設定が異なるconfig-print.yml
を、次のような内容で作成しましょう。
この状態で「rake pdf
」を実行すると、config.yml
を元に電子配布版が作成されます。さらに印刷版を作りたい場合は、次のようにconfig-print.yml
を使うように呼び出します。
この方法を用いれば、逐一設定ファイルを書き換えることなく、異なる設定の複数の書式を生成可能になります。
PDFにフォントを埋め込みたい
TeX LiveのupLaTeXからPDFを作成した場合、初期状態だとフォントは埋め込まれません。もし電子書籍として配布するにあたってフォントを埋め込みたい場合は、kanji-config-updmapコマンドもしくはpxchfonパッケージの設定が必要です。今回は書籍ごとに埋め込むフォントを変更可能な、pxchfonパッケージを使ってみましょう。pxchfonパッケージはtexlive-lang-japaneseに同梱されています。
まずRe:VIEW用のカスタムスタイルファイルにて、pxchfonパッケージの使用を宣言します。
「ipaex」はプリセットと呼ばれるパラメーターで、ここではIPAexフォントを埋め込むように設定しています。pxchfonのパラメーターについては、「texdoc pxchfon
」で表示されるPDFを確認してください。
設定できたら、あとはPDFを作り直すだけです。Evinceのプロパティから「フォント」タブを開くか、pdffontsコマンドを実行することで、フォントが埋め込まれているかどうか確認できます。
上記の例の場合、「emb」が「yes」になっているフォントがPDFに埋め込まれているフォントです。
当然のことながら、フォントをPDFに埋め込んで良いかどうかは、個々のフォントのライセンスに依存します。
正しいEPUBが出力されたかどうか検証する
EPUBCheckはEPUB仕様に従ったEPUBファイルかどうかを確認するJava製のツールです。EPUBCheckを用いて生成したファイルを検証しておけば、大抵のEPUBリーダーで期待通りに表示される可能性が高まることでしょう。
EPUBCheckはUbuntuのリポジトリにもありますし、最新のバージョンが必要であれば開発サイトからビルド済みのバイナリをダウンロードもできます。ただしリポジトリにある4.0.2のほうは大量の警告が出る問題があるようなので、可能であれば4.1.0以降を使いましょう。
特に問題がないことがわかりましたね。
技術書典6に向けて本を作ってみよう!
Re:VIEWは紙書籍・電子書籍作成を作成するツール・フォーマットでありながら、原稿データはMarkdownやreStructured Textと同じようにプレーンテキストとして編集できます。つまりGitによるリビジョン管理やチームでの共同執筆がかんたんに実現できます。さらにGitで管理することで、既存の一般的なソフトウェアと同じように、Pull/Merge Requestを用いた修正・レビューや継続的インテグレーションを利用した品質管理も導入できるのです。
技術系同人誌のお祭りである技術書典は、来年4月に第6回の開催を予定しているようです。これを期にRe:VIEWを試して、次の技術書典に向けて何か本を執筆してみてはいかがでしょうか?