書籍執筆支援システム Re:VIEWの設定ファイルについて

Re:VIEWとは

Re:VIEWとは

Re:VIEW サンプル書籍について

2018年5月、Windows10で書籍執筆支援システムRe:VIEWをインストールして、設定ファイルを変更することで自分用サンプル書籍のひな型を作成しました。Re:VIEW のバージョンは2.5.0です。

Re:VIEWの概要とインストール方法は、下記ブログを参照してください。

Windows10に Re:VIEW 執筆支援システムをインストールする方法

review-init コマンドでひな型を取得すると「Re:VIEWサンプル書籍」という原稿を取得できます。原稿(.re)をマークアップ書式で記述し、設定ファイル(catalog.yml、config.yml)を変更してサンプル書籍を仕上げていきます。

Re:VIEW 執筆支援システムの原稿ひな形

Re:VIEWの原稿を作成するためにひな型を取得します。

原稿名を sampleとします。

> review-init sample
> 

review-init コマンドで取得したひな型の原稿ディレクトリを下記に示します。

SAMPLE
|   catalog.yml
|   config.yml
|   Gemfile
|   Rakefile
|   sample.re
|   style.css
|
+---doc
|      ・・・.md
|
+---images
|       cover.jpg
|
+---layouts
+---lib
|   \---tasks
|           review.rake
|
\---sty
        jumoline.sty
        reviewmacro.sty
ファイル名 用途
catalog.yml カタログ 章立て(目次構成)の記述
config.yml ドキュメントの設定の記述
Gemfile Ruby言語のパッケージ管理用ファイル
Rakefile Ruby言語のビルド用タスク定義(rake)ファイル
sample.re Re:VIEW 原稿の本文ファイル
style.css HTMLファイルや ePubファイルのスタイルファイル
images/ 画像の配置フォルダ
layouts/ HTMLファイルや ePubファイルのレイアウト設定を記述
sty/ Tex用スタイルファイル配置フォルダ
  • config.ymlファイルで、ドキュメントの設定を記述します。
  • catalog.ymlファイルで、原稿の章立てなどを記述します。

原稿や設定ファイルは、UTF-8エンコーディングで記述します。

本の構成と設定ファイル

本の構成と設定ファイル

コンフィグ設定ファイル

config.yml 設定ファイルは、ドキュメントの設定を記述します。config.yml内にコメントで設定方法を書いてありますので、目的により変更します。

主な設定項目を以下に示します。

バージョン

キーワード 意味
epubversion: ePUBバージョン (2 or 3)
htmlversion: HTMLバージョン (4 or 5)

書名、著者

キーワード 意味
bookname: ブック名(ASCIIファイル名)
booktitle: 書籍タイトル名
aut: 著者名
date: 刊行日(YYYY-MM-DD形式)
history: 発行年月(YYYY-MM-DD形式)

本の構成

キーワード 意味
coverimage: 表紙画像ファイル名
titlepage: 大扉ページ(true:する、null:しない)
toc: 目次生成(true:する、null:しない)
toclevel: 目次抽出の見出しレベル
colophon: 奥付生成(true:する、null:しない)

config.ymlのサンプル

# review-epubmaker向けの設定ファイルの例。
# yamlファイルをRe:VIEWファイルのある場所に置き、
# 「review-epubmaker yamlファイル」を実行すると、<bookname>.epubファイルが
# 生成されます。
# このファイルはUTF-8エンコーディングで記述してください。

# この設定ファイルでサポートするRe:VIEWのバージョン番号。
# major versionが違うときにはエラーを出す。
review_version: 2.0

# ほかの設定ファイルの継承を指定できる。同じパラメータに異なる値がある場合は、
# 呼び出し元の値が優先される。
# A.yml、B.ymlのパラメータを継承する例。A.ymlとB.ymlに同じパラメータがある
# 場合、B.ymlの値が優先される。さらに今このファイルに同じパラメータがあるなら、
# その値がB.ymlよりも優先される。
# 同様にA.yml、B.yml内でさらにinherit:パラメータを使うこともできる。
# inherit: ["A.yml", "B.yml"]

# ブック名(ファイル名になるもの。ASCII範囲の文字を使用)
bookname: book
# 記述言語。省略した場合はja
language: ja

# 書名
# 読みを入れる例 booktitle: {name: "Re:VIEW EPUBサンプル", file-as: "リビューイーパブサンプル"}
booktitle: サンプル書籍

# 著者名。「, 」で区切って複数指定できる
# 読みを入れる例 aut: [{name: "青木峰郎", file-as: "アオキミネロウ"}, {name: "武藤健志", file-as: "ムトウケンシ"}, {name: "高橋征義", file-as: "タカハシマサヨシ"}, {name: "角征典", file-as: "カドマサノリ"}]
aut: ["ある計算機屋さん"]

# 以下はオプション
# 以下はオプション(autと同じように配列書式で複数指定可能)。
# 読みの指定はaut:の例を参照。
# a-が付いているものはcreator側、
# 付いていないものはcontributor側(二次協力者)に入る
# a-adp, adp: 異なるメディア向けに作り直した者
# a-ann, ann: 注釈記述者
# a-arr, arr: アレンジした者
# a-art, art: グラフィックデザインおよび芸術家
# a-asn, asn: 関連・かつての所有者・関係者
# a-aqt, aqt: 大きく引用された人物
# a-aft, aft: 後書き・奥付の責任者
# a-aui, aui: 序論・序文・前書きの責任者
# a-ant, ant: 目録責任者
# a-bkp, bkp: メディア制作責任者
# a-clb, clb: 限定参加または補足者
# a-cmm, cmm: 解釈・分析・考察者
# a-csl, csl: 監修者
# a-dsr, dsr: デザイナ
# a-edt, edt: 編集者
# a-ill, ill: イラストレータ
# a-lyr, lyr: 歌詞作成者
# a-mdc, mdc: メタデータセットの一次的責任者
# a-mus, mus: 音楽家
# a-nrt, nrt: 語り手
# a-oth, oth: その他
# a-pht, pht: 撮影責任者
# a-pbl, pbl: 出版社(発行所)
# a-prt, prt: 印刷所
# a-red, red: 項目の枠組起草者
# a-rev, rev: 評論者
# a-spn, spn: 援助者
# a-ths, ths: 監督者
# a-trc, trc: 筆記・タイプ作業者
# a-trl, trl: 翻訳者

# 刊行日(省略した場合は実行時の日付)
date: 2018-05-01
# 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する
# 複数指定する場合は次のように記述する
# [["初版第1刷の日付", "初版第2刷の日付"], ["第2版第1刷の日付"]]
# 日付の後ろを空白文字で区切り、任意の文字列を置くことも可能。
history: [["2018-05-01","2018-05-04"]]
# 権利表記(配列で複数指定可)
# rights: (C) 2016 Re:VIEW Developers
# description: 説明
# subject: 短い説明用タグ(配列で複数指定可)
# type: 書籍のカテゴリーなど(配列で複数指定可)
# format: メディアタイプおよび特徴(配列で複数指定可)
# source: 出版物生成の重要なリソース情報(配列で複数指定可)
# relation: 補助的リソース(配列で複数指定可)
# coverage: 内容の範囲や領域(配列で複数指定可)

# デバッグフラグ。nullでないときには一時ファイルをカレントディレクトリに作成し、削除もしない
debug: null

# 固有IDに使用するドメイン。指定しない場合には、時刻に基づくランダムUUIDが入る
# urnid: urn:uid:http://example.com/book-title/
#
# ISBN。省略した場合はurnidが入る
# isbn: null
#
# HTMLファイルの拡張子(省略した場合はhtml)
# htmlext: html
#
# CSSファイル(配列で複数指定可)
stylesheet: ["style.css"]

# ePUBのバージョン (2か3)
# epubversion: 2
#
# HTMLのバージョン (4か5。epubversionを3にしたときには5にする)
# htmlversion: 4

# 目次として抽出する見出しレベル
toclevel: 3

# 採番の設定。採番させたくない見出しには「==[nonum]」のようにnonum指定をする
#
# 本文でセクション番号を表示する見出しレベル
secnolevel: 2

# 以下のsecnolevelはまだ未実装。
# 前付でセクション番号を表示する見出しレベル(未実装)
# pre_secnolevel: 0
#
# 後付(付録)でセクション番号を表示する見出しレベル(未実装)
# post_secnolevel: 1
#
# 部番号を表示する見出しレベル(未実装)
# part_secnolevel: 1

# 本文中に目次ページを作成するか。省略した場合はnull (作成しない)
toc: true

# EPUB2標準の目次(NCX)以外に物理目次ファイルを作成するか。省略した場合はnull (作成しない)
# ePUB3においてはこの設定によらず必ず作成される
# mytoc: true

# 表紙にするHTMLファイル。ファイル名を指定すると表紙として入る
# cover: null
#
# 表紙に配置し、書籍の影絵にも利用する画像ファイル。省略した場合はnull (画像を使わない)。画像ディレクトリ内に置いてもディレクトリ名は不要(例: cover.jpg)
coverimage: cover.jpg
#
# 表紙の後に大扉ページを作成するか。省略した場合はtrue (作成する)
titlepage: true
#
# 自動生成される大扉ページを上書きするファイル。ファイル名を指定すると大扉として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
# titlefile: null
#
# 原書大扉ページにするHTMLファイル。ファイル名を指定すると原書大扉として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
# originaltitlefile: null
#
# 権利表記ページファイル。ファイル名を指定すると権利表記として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
# creditfile: null

# 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
colophon: true

# 裏表紙データファイル (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
# backcover: null

# プロフィールページファイル  (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)。ファイル名を指定すると著者紹介として入る
# profile: null
# プロフィールページの目次上の見出し
# profiletitle: 著者紹介

# 広告ファイル。ファイル名を指定すると広告として入る (PDFMaker向けにはLaTeXソース断片、EPUBMaker向けにはHTMLファイル)
# advfile: null

# 取り込む画像が格納されているディレクトリ。省略した場合は以下
# imagedir: images

# 取り込むフォントが格納されているディレクトリ。省略した場合は以下
# fontdir: fonts

# imagedir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
# image_ext: ["png", "gif", "jpg", "jpeg", "svg", "ttf", "woff", "otf"]

# fontdir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
# font_ext: ["ttf", "woff", "otf"]

# ソースコードハイライトを利用する (rouge,pygmentsには外部gemが必要)
# highlight:
#   html: "rouge"
#   latex: "listings"

# カタログファイル名を指定する
# catalogfile: catalog.yml

# 1ページの行数文字数と1kbごとのページ数を用紙サイズで指定する(A5 or B5)。
# page_metric: A5
#
# あるいは、配列で指定することもできる
# 各数字の意味は、順にリストの行数、リストの1行字数、テキストの行数、テキストの1行字数、1kバイト毎のページ数
# page_metric: [40,80,40,80,2]

# ページ送りの送り方向、page-progression-directionの値("ltr"|"rtl"|"default")
# direction: "ltr"

# EPUBのOPFへの固有の追加ルール
# <package>要素に追加する名前空間
# opf_prefix: {ebpaj: "http://www.ebpaj.jp/"}
# 追加する<meta>要素のプロパティとその値
# opf_meta: {"ebpaj:guide-version": "1.1.3"}

# 以下のパラメータを有効にするときには、
# epubmaker:
#    パラメータ: 値
#    パラメータ: 値
#   ...
# という構成にする必要がある(インデントさせる)

epubmaker:
  # HTMLファイルの拡張子
  htmlext: xhtml
  #
  # 目次を要素の階層表現にしない。省略した場合(null)は階層化する。
  # 特に部扉が入るなどの理由で、構成によっては階層化目次でepubcheckに
  # パスしない目次ができるが、そのようなときにはこれをtrueにする
  # flattoc: null
  #
  # 目次のインデントレベルをスペース文字で表現する(flattocがtrueのときのみ)
  # flattocindent: true
  #
  # NCX目次の見出しレベルごとの飾り(配列で設定)。EPUB3ではNCXは作られない
  # ncxindent:
  #- 
  #- - 
  # フックは、各段階で介入したいときのプログラムを指定する。自動で適切な引数が渡される
  # プログラムには実行権限が必要
  # ファイル変換処理の前に実行するプログラム。スタイルシートのコンパイルをしたいときなどに利用する。
  # 渡される引数1=作業用展開ディレクトリ
  # hook_beforeprocess: null
  #
  # 前付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
  # 渡される引数1=作業用展開ディレクトリ
  # hook_afterfrontmatter: null
  #
  # 本文の変換後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
  # 渡される引数1=作業用展開ディレクトリ
  # hook_afterbody: null
  #
  # 後付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
  # 渡される引数1=作業用展開ディレクトリ
  # hook_afterbackmatter: null
  #
  # 画像およびフォントをコピーした後に実行するプログラム。別の画像やフォントを追加したいときなどに利用する。
  # 渡される引数1=作業用展開ディレクトリ
  # hook_aftercopyimage: null
  #
  # ePUB zipアーカイブ直前に実行するプログラム。メタ情報などを加工したいときなどに利用する。
  # 渡される引数1=ePUB準備ディレクトリ
  # hook_prepack: null
  #
  # 変換したHTMLファイルおよびCSSを解析して厳密に使用している画像ファイルだけを取り込むか。デフォルトはnull(imagesディレクトリすべてを取り込む)
  # なお、フォント、カバー、広告についてはこの設定によらずディレクトリ内のものがすべて取り込まれる
  # verify_target_images: null
  #
  # verify_target_imagesがtrueの状態において、解析で発見されなくても強制的に取り込むファイルの相対パスの配列
  # force_include_images: []
  #
  # 画像ファイルの縦x横の最大ピクセル数許容値
  # image_maxpixels: 4000000
  #
  # Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02l...、後付にpost01,post02...という名前付けルールにするか
  # rename_for_legacy: null
  #
  # ePUBアーカイブの非圧縮実行
  # zip_stage1: "zip -0Xq"
  #
  # ePUBアーカイブの圧縮実行
  # zip_stage2: "zip -Xr9Dq"
  #
  # ePUBアーカイブに追加するパス(デフォルトはmimetype、META-INF、OEBPS)
  # zip_addpath: null
  #
  # EPUBで表紙をコンテンツに含めるか。デフォルトでは作成されない。yesにするとiBooks等でも最初に表紙が表示されるようになる
  # cover_linear: null
  #
  # @<href>タグでの外部リンクを禁止し、地の文にする(falseで禁止する)
  # externallink: true
  #
  # epubmaker:階層を使うものはここまで

# LaTeX用のスタイルファイル(styディレクトリ以下に置くこと)
texstyle: reviewmacro
#
# LaTeX用のdocumentclassを指定する
# texdocumentclass: ["jsbook", "uplatex,oneside"]
#
# LaTeX用のコマンドを指定する
# texcommand: "uplatex"
#
# LaTeXのコマンドに渡すオプションを指定する
# texoptions: null
#
# LaTeX用のdvi変換コマンドを指定する(dvipdfmx)
# dvicommand: "dvipdfmx"
#
# LaTeX用のdvi変換コマンドのオプションを指定する
# dvioptions: "-d 5"

# 以下のパラメータを有効にするときには、
# pdfmaker:
#    パラメータ: 値
#    パラメータ: 値
#   ...
# という構成にする必要がある(インデントさせる)
#
pdfmaker:
  #
  # TeXコンパイル前に実行するプログラム。変換後のTeXソースを調整したいときに使用する。
  # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
  # hook_beforetexcompile: null
  #
  # TeXコンパイル後に実行するプログラム。索引作業をして再度コンパイルしたいときなどに使用する。
  # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
  # hook_aftertexcompile: null
  #
  # PDF(book.pdf)作成後に実行するプログラム。PDFに加工を施したいときに使用する。
  # 渡される引数1=作業用展開ディレクトリ、引数2=呼び出しを実行したディレクトリ
  # hook_afterdvipdf: null
  #
  # 画像のscale=X.Xという指定を画像拡大縮小率からページ最大幅の相対倍率に変換する
  # image_scale2width: true
  #
  # PDFやIllustratorファイル(.ai)の画像のBoudingBoxの抽出に指定のボックスを採用する
  # cropbox(デフォルト), mediabox, artbox, trimbox, bleedboxから選択する。
  # Illustrator CC以降のIllustratorファイルに対してはmediaboxを指定する必要がある
  # bbox: mediabox
  #
  # 奥付を作成するか。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
  colophon: true
  # pdfmaker:階層を使うものはここまで

カタログ設定ファイル

catalog.yml カタログファイルは、章立てを記述します。

詳細は、Re:VIEW カタログファイル ガイドを参照してください。

カタログファイルは、Re:VIEW フォーマットで記述された各ファイルを1冊の本(たとえば PDF や EPUB)にまとめる際に、どのようにそれらのファイルを構造化するかを指定するファイルです。現在はカタログファイルと言えば catalog.yml のことを指します。

サンプル原稿のカタログファイルを以下に示します。

PREDEF:
   - 00_preface.re

CHAPS:
   - 01_chapter.re
   - 02_chapter.re

APPENDIX:
   - 08_appendix.re

POSTDEF:
   - 09_postface.re
キーワード 意味
PREDEF: 前付け
CHAPS: 本編
APPENDIX: 付録
POSTDEF: 後付け

原稿は Re:VIEWのマークアップ書式で記述した .reファイルに書きます。マークアップ書式の詳細は、Re:VIEW フォーマットガイドを参照してください。

本編は、CHAPS:キーワードに続いて章ごとの文章ファイルを並べます。本編を部構成にする場合は、CHAPS: を階層的に定義します。

CHAPS:
 - "部タイトルⅠ":
                    - 01_chapter.re
 - "部タイトルⅡ":
                    - 02_chapter.re
                    - 03_chapter.re

原稿ファイル

前付け(00_preface.re)の原稿サンプルを示します。

= はじめに

本書は、Re:VIEWについて記載したものです。


== 免責事項

本書に記載された内容は、情報の提供のみを目的としています。
したがって、本書を用いた開発、製作、運用は必ずご自身の責任と判断によって行ってください。
これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。

本編(01_chapter.re、02_chapter.re)の原稿サンプルを示します。

= はじめてのRe:VIEW

//lead{
この章では@<b>{Re:VIEW}について紹介します。
//}

== Re:VIEWとは

@<b>{Re:VIEW}は、電子書籍向けの簡易なマークアップ言語で記述したテキストファイルを
EPUBやPDFなどの形式に変換するツールセットです。
@<b>{Re:VIEW}は、2002年ごろに青木峰郎さんが開発しました。
その後、武藤健志さんが開発・保守を引き継いでいます。

インターネットで@<b>{Re:VIEW}に関する情報を検索しようとすると、
「レビュー」に関する記事がたくさんヒットしてしまいます。
そこで、検索のキーワードに開発者の「Kenshi MUTO」さんの名前を含めて
「re:view kmuto」で検索すると@<b>{Re:VIEW}関係の情報が検索できます。


== Re:VIEWの文書変換

@<b>{Re:VIEW}は、マークアップファイル(.re)で書いた原稿から下記文書を出力することができます。

 * PDF (LaTex)
 * EPUB
 * HTML
 * Web HTML
 * InDesign XML
= Re:VIEWのステップアップ

//lead{
この章では@<b>{Re:VIEW}のステップアップした使い方を紹介します。
//}

== Re:VIEWの設定

〇〇〇・・・

付録(08_appendix.re)の原稿サンプルを示します。

= Re:VIEW環境について

== バージョン情報

@<b>{Re:VIEW}のバージョン情報は、@<table>{Version_Info} を参照してください。


//table[Version_Info][バージョン情報]{
モジュール	バージョン
--------------------------------------
Windows	Windows10 Home 1709
Ruby	2.5.1p57
TexLive	3.14159265 Tex Live 2018
Re:VIEW	2.5.0
//}

後付け(09_postface.re)の原稿サンプルを示します。

= あとがき
Re:VIEWを使ってみたくなりましたね!

= 著者紹介

==== Yuki 
計算機科学を学んだソフトウェア技術者です。

EPUBとPDFの生成

EPUBとPDFの生成します。

> cd sample

> rake clean

> rake epub
review-epubmaker config.yml

> rake pdf
review-pdfmaker config.yml
compiling 00_preface.tex
compiling 01_chapter.tex
compiling 02_chapter.tex
compiling 08_appendix.tex
compiling 09_postface.tex
・・・
> 

サンプル書籍

生成したbook.epubを Microsoft Edgeで閲覧してみます。


生成したbook.pdfをAdobe Acrobat Reader DC で閲覧してみます。

PDFサンプル

PDFサンプル

 

まとめ

書籍執筆支援システム「Re:VIEW」の設定ファイルを変更することで自分用サンプル書籍のひな型を作成しました。

Re:VIEWは素晴らしいツールです。技術用ドキュメントを簡単に記述することができます。