FAQ - Re:VIEW そのものについて

FAQ(よくある質問と回答)のこのセクションは、直接に Re:VIEW の利用には関わらない内容を記しています。


Re:VIEW はなんと発音するのですか?

「りびゅー」といいます。

Re:VIEW とは何ですか?

Re:VIEW は、主に書籍制作向けのテキストマークアップ言語仕様、およびその変換システムです。指定の記法で記述した原稿ファイルを、HTML、LaTeX、InDesign 用 XML、プレインテキストなどに変換することができます。さらに、HTML を使った EPUB、LaTeX 環境を経由した PDF をそれぞれコマンド1つで作成可能です。

Re:VIEW の Web サイトはどこですか?

Re:VIEW は誰のためのソフトウェアですか?

主なターゲットは、書籍の編集者や著者・訳者です。

より狭義には、Re:VIEW を開発しているチームのメンバーたちがそれぞれ自身のドキュメント制作・管理・業務の効率を上げるためのソフトウェアです。

実際、誰が使っていますか?

技術書分野を中心に、商業刊行物の制作会社および出版社、あるいは同人誌の制作者など、幅広く使われています。

自己申告をもとに GitHub の wiki にて、利用実績 をまとめています。

Re:VIEW は誰が作っていますか?

Re:VIEW は、青木峰郎(@mineroaoki)によって設計・開発されました。その後、武藤健志(@kmuto)が開発を引き継ぎ、高橋征義(@takahashim)、角征典(@kdmsnr)が加わったチームで開発を続けています。

Re:VIEW はいつ作られましたか?

記録によると 2002 年に作成されました。

Re:VIEW のソースコードは公開されていますか?

GitHub のパブリックリポジトリ上で開発しており、ソースコードおよび開発プロセスはすべて公開されています。

https://github.com/kmuto/review

個々の改良は issue と PR が中心ですが、年に数回、開発チームや関心の深いユーザーが face-to-face で集まって大きな方針の策定や次期バージョンの機能目標の設定などを行います。

Re:VIEW のリリーススケジュールはどうなっていますか?

大まかには毎年「2月」「6月」「10月」の月末にリリースすることにしています(開発状況によって前後することがあります)。

具体的には、ニュースリリースに修正内容をまとめ、バージョン番号を更新し、新たな gem パッケージを RubyGems に公開してダウンロードできるようにします。

開発の先端は常に GitHub の master ブランチです。

Re:VIEW のバージョンルールはどうなっていますか?

「メジャーバージョン.マイナーバージョン.フィクスバージョン」となります。

  • メジャーバージョン:後方互換性を大きく損ねることも覚悟した大きな更新です。Re:VIEW ソフトウェアは書籍制作向けという性質上、新たなバージョンでも後方互換性はできるだけ保持しようとしていますが、それが改良の大きな足枷となる場合には互換性を破棄することもあります。

  • マイナーバージョン:基本的に後方互換性を保持した更新です。新機能の導入と、既存の不具合の修正を中心とします。

  • フィクスバージョン:リリース後に発見された重大な不具合のみを修正します。

2022年6月時点で、安定版は「5.5.0」です。

Re:VIEW のサポートルールはどうなっていますか?

Re:VIEW 自体は一切の保証はなく、また開発リソースを鑑みて古いバージョンを維持することに労力を割けません。

過去にリリースしたバージョンへの修正対応は行いません。発覚した問題についての対応は、その時点で最新のバージョンに修正を加えた「次のバージョン」においてのみ行われます。

バージョンごとの機能差異はどこかにまとまっていますか?

Re:VIEW は何の言語で書かれていますか?

Ruby 言語で書かれています。2021年12月時点では、Ruby 2.4 以上を想定しています。なお、2022年6月のリリースにおいて Ruby 2.7 未満のサポートを停止する予定でしたが、大きな変更をしなかったこともあり、まだ 2.7 未満への互換性を保持しています(ただし、Ruby 2.7 未満のバージョンにおける固有の不具合はもう対応しない可能性が高いです)。

Ruby 実装との完全な互換性はありませんが、JavaScript による実装も存在します。https://github.com/vvakame/review.js

Re:VIEW の開発に参加したいですがどうしたらよいですか?

まずは、https://github.com/kmuto/review への issue 登録や PR から始めてみるとよいでしょう。

issue での説明は日本語または英語で書いてください。

「Re:VIEW」という名前は検索しづらいです。変えるべきではないですか?

過去に一度「ReVIEW」から「Re:VIEW」としましたが、むしろ検索精度は悪化しました。

名前を変えることには「絶対に固有で国際的にネガティブなイメージもない妥当な名前を選ぶ」「プロジェクト名を変更する」「新しい名前を周知する」などいろいろなエネルギーが必要ですが、変更で得られる利益に見合わないと考えます。

Re:VIEW は TeX ですか? あるいは TeX に置き換わるものなのですか?

いいえ。

TeX(LaTeX)は Re:VIEW 形式ファイルからの変換先の1つです。ただし LaTeX 変換・LaTeX コンパイル・PDF 生成までを一括で実行する review-pdfmaker というコマンドは用意しています。

Re:VIEW は TeX (または InDesign など) を知らなくても使えますか?

これは「はい」でもあり、「いいえ」でもあります。

Re:VIEW の目的は、TeX や InDesign などのタイプセット環境の記法を気にせず一貫した Re:VIEW マークアップで記述した原稿から、タイプセット環境に適した変換物を生成することにあります。ですので、この段階の範囲では TeX や InDesign などのタイプセット側の知識がなくても利用できます。

これに対し、タイプセット環境でどのように表現するかは紙面デザインによってアプローチが異なり、万能の形状はありません。あるデザインに特化してしまった変換物では、ほかのデザインでまったく不都合になることがままあるため、Re:VIEW が出力する変換物は極力シンプルで、後で加工することを想定したものです。Re:VIEW が生成した変換物をどのようにタイプセット環境での表現と合致させ、加工するかは、タイプセット環境についての知識が必須です。

言い換えるならば、たとえば PDFMaker (TeX タイプセット) において、Re:VIEW 公式・あるいはサードパーティのテンプレートの範囲で実現している範囲であれば TeX の知識がなくても利用できますが、テンプレートの想定範囲を超えたカスタマイズ (書体や装飾を変更するなど) をする場合には TeX/LaTeX についての十分な知識が求められます。

Re:VIEW の「主要なビルダ」とは何ですか?

ビルダは Re:VIEW 形式の原稿ファイルを「HTML」や「LaTeX」などに変換する変換器のことです。現在いくつものビルダが Re:VIEW プログラムに収録されていますが、そのうち、以下のビルダを「主要なビルダ」としています。

  • HTML

  • LaTeX

  • TOP(テキスト)

  • IDGXML(InDesign XML)

Re:VIEW ソフトウェアに新たな命令を追加したり既存の挙動を変更したりする場合は、これらの主要なビルダすべてでエラーとならずに動作することが求められます。

また、主要なビルダはテストケースを豊富に用意しているため、コードロジックの変更による意図せぬ挙動の破壊は起きにくくなっています。

なぜ便利な「○○.gem」を使わないのですか?

Re:VIEW の開発スタンスとして、外部のツールやライブラリへの依存はできるだけ避けています。中核はあくまでも Ruby の基本ライブラリの範囲で実現します。

その代わり、コードハイライトのように「必須ではないが、より便利になる」オプショナルな機能については gem などの外部ライブラリの使用を許容しています。

Re:VIEW は日本語でしか使えませんか?

現時点で実績がさほどあるわけではありませんが、国際化対応しやすくなるような試みはしています。

たとえば //image を変換したときの「図X.X」の「図」の部分は、ロケールファイルとして切り出しており、config.yml の language パラメータ値に en を指定すれば「Figure 」に変わります。既存の設定ファイルは Re:VIEW プログラムの lib/review/i18n.yml にあり、カスタマイズを行うには、プロジェクトフォルダに locale.yml という名前のファイルで定義します。

ただし、TeX を使った PDF 生成については、提供しているスタイルファイルが日本語 LaTeX 環境を前提としています。他言語で使用するには、スタイルファイルなど広範囲での改変が必要になるでしょう。

なお、Re:VIEW に関するドキュメントについてはできる限り英語でも記述するようにしています。

なぜこの「Re:VIEW ナレッジベース」は Re:VIEW ではなく Markdown + Sphinx で書かれているのですか?

Re:VIEW は書籍向けのソフトウェアであり、Sphinx のような Web リファレンスを得意とするソフトウェアではないからです。rst で書いていないのは単にそこまで高機能な記述は本ナレッジベースの範囲では必要としていないからです。