EWBとRe:VIEW
この記事はEWBアドベントカレンダー2019の記事です。
2019年12月11日23時30分追記:
紹介あざます。layouts内はサブフォルダではなくその直下にlayout.tex.erbとlayout.html.erbとなっています(その経緯でwebmakerとepubmakerでレイアウトが分けられなくてちょっと困っています…) https://t.co/n7hYzlDrDB
— kmuto (@kmuto) 2019年12月11日
該当箇所を修正しました。ついでに出力について、EWBは印刷前チェックの目的もありましたね。
Re:VIEW
Re:VIEWは青木峰郎氏によって開発され、現在@kmuto氏によって 保守・開発されている、Ruby製の書籍用マークアップとその処理系です。
Re:VIEW公式に言及されているように、EWBにその源流があり、それは書式の他の点にも見ることができます。
というわけで、今日はファイル構成とドキュメント以外の書式比較について言及します。 Re:VIEWのバージョンは4系、EWBのバージョンは3.3のものを基準とします。
ディレクトリ構成
一般的と思われる構成です。
EWB
lst
やtbl
の中身はEWBフォーマットのプレーンテキスト。.ewb
にもできます。
doc
もEWBドキュメントであることを示すだけでMSWordではないです。
基本的にeucjpエンコーディングです。
ドキュメントは同じ箇所にまとめて配置し、画像やリスト(ソースコード)などはまとめてそれぞれのディレクトリに配置しています。これらの配置位置を
マップするのがdat
などに書かれた情報になります。
バックエンドは一択、文書用のクラスなどコマンドにより都度生成されるので、処理時に別の場所に置いてあるewbbase3_3.styなどを呼ぶものの、基本的に ディレクトリ構造がシンプルですね。
Styles内のファイルは基本的に各体裁用エディタ(フォーム)の出力dat
から生成されます。
読み込むファイルと順序などの記載されたcontents.ewbはEWB-Shelfで生成するのが恐らく基本的な方法でしょう。
root/ ┣FIG/ ┃ ┗*.eps ┣LIST/ ┃ ┗*.lst ┣Styles/ ┃ ┗triger.def //マークアップ挙動記述 ┃ ┗PDFStyle //PDF出力用設定ファイル ┃ ┗*.sty ┃ ┗*.cls ┃ ┗yakumono.sed //実質的pre(post) process ┃ ┗ewb2latex.cls //基本LaTeX体裁 ┣TABLE/ ┃ ┗*.tbl ┝ForAll.index //索引登録ファイル ┝ForAll.phy //図表登録ファイル ┝MENTUKEinfo //面付出力用設定ファイル ┝PDFinfo ┝common.dat //他メタデータ ┝psidxested.dat //索引体裁 ┝pssted.dat //体裁 ┝contents.ewb //処理ファイル登録ファイル ┝*.doc ┝*.doc ┝ ...
Re:VIEW
root/ ┣layouts/ ┃ ┗<出力形式ごと>.erb //(rubyテンプレート) ┃ ┣lib/ ┃ ┗*.rb //rake用補助ファイルその他 ┣sty/ ┃ ┗*.sty //TeX用体裁補助ファイル ┣Rakefile/ ┃ ┗*.rb ┣images/ ┃ ┗*.* // 画像ファイル ┣doc/ ┃ ┗* // usage ┝style.css //html用体裁ファイル ┝catalog.yml //処理ファイル登録ファイル ┝config.yml //メタデータ、一部体裁記述ファイル ┝*.re ┝*.re ┝ ...
catalog.ymlがcontents.ewb相当になりますが、YAML形式なのと、 体裁のマッピングはlayouts内のテンプレートとconfig.ymlにあるので かなり見た目がすっきりします。比較は明日の気力次第。
config.ymlも
また、出力のスタイルに関しては、 現代的なの使い方らしく、各場面に合わせた出力に関してもクラスファイルが担い、 必要に応じてスタイルファイルを足したりする形なので、やろうと思わなければ体裁系のファイル群は爆発しません。 EWBがと周辺の過渡期のものであるという歴史を踏まえる必要がありますが。
また、ビルド用ツールの設定がデフォルトで用意されていることで、個別コマンドで出力を調えていくコストが下がっているのも現代的ツールの特徴といえるでしょう。
体裁入力ツール
EWBのややインタラクティブな体裁入力エディタ(pssted)は長年Re:VIEWには無いものでしたが、Re:VIEW4からは ブラウザで見られる体裁入力画面が使えます! すごい! えらい!*1
出力
これを比較と書くべきか分かりませんが、フォーマットの面で触れるであろう事項なので。 EWBはプリンタレディな出力予想とPostScript出力を得るのが目的であり、(少なくとも現在の)Re:VIEWはもう少し汎用的あるいは前段階の出力を意図しています、多分。このことは組版マークアップ入力書式において、意図していたかはおいておいて、両者の違いに表れてきます。
Next
内部フォーマットと体裁フォーマットの比較を、折れていなかったら。