EWBのツールとフロー
この記事はEWBアドベントカレンダー2019の3日目の記事です。
2019年12月5日追記: ツールの用途についてコメント頂きました!
EWBのツール群にはkakasiやxemacsなどが含まれる これらのツールは、EWB本体に必要なツールではなく、エディタでマークアップするのが苦手なアスキー社員でもEWBを使えるよう、GUIツールを追加した際に含まれるようになったものだったと記憶しています。 XEmacsはマウスで範囲選択できるようにするため、KAKASIは索引作成時に候補を表示させるために使われていたんだったかな。
2日目の記事にコメントくださっていて、3日目の記事のところで私が予想していたものが大体合致していたようです。こういうレスポンスが欲しくて始めたので嬉しいですね。
EWBの構成概略
さて、2日目の記事ではEWBの歴史を軽くなぞりました。 歴史的なソフトウェアのつくりについて考えるとき、 ハードウェア事情といった時代背景を欠くことはできません。
EWBが構築されるにあたってのコンセプトは
- 作業工程の維持
- 作業分担の維持
- 効率化
- コストを下げる
- 既存の環境を利用
- 品質
といったことだとEWBハンドブック一部二章で書かれています。 結果、UNIX(Like)環境で、主要ツール以外は既存のアプリケーション を利用するなどしたシステムが誕生しました。また、 ビルドを行うEWBサーバと、ドキュメントの編集を行うクライアントに 分かれた構成も技術書出版会社の面目躍如といったつくりです。多分。
インストール要件
EWB3.3の動作環境と必要アプリケーションは以下のようになっています。
ツール種別 | ツール名 |
---|---|
マシン | PC-UNIX系のOSがインストールされたコンピュータ |
Printer | UNIXから利用できるPostScriptプリンタ |
ターミナル | X Window対応の端末 (無くとも可) |
TeX | pTeX p3.0.1 (EUCバージョン) |
LaTeX | pLaTeX <2001/09/04> (EUCバージョン) |
DVI->PS変換 | dvipsk 5.86 p1. 5f |
和文VF作成 | makejvf 1.1a |
索引整形 | mendex 2.5 |
PSインタプリタ | ghostscript (日本語対応版で5.0以降) |
PSビューア | ghostview または gv |
漢字コード変換 | nkf |
文字置換フィルタ | sed (日本語対応版) |
テキストエディタ | jvim (日本語対応 vi) |
Java実行環境 | jdk1.1.8以上 |
X Windowシステム | XFree86等 (X11R6またはそれ以降) |
X Window漢字端末 | kterm |
Tcl/Tkインタプリタ | tcl8.0/tk8.0 (日本語対応版) |
perlインタプリタ | perl5 |
テキストエディタ | xemacs |
かな漢字逆変換 | kakasi |
漢字変換インターフェイス | kinput2 |
(FreeBSD 4.9-RELEASE, RedHat Linux 8.0, Vine Linux 2.6r1 で動作確認済み)
いやー。ははは。これを維持するのは相当……。 外部に投げられるところを投げるとそれが更新 されない場合のリスクがあるということですね。皆さんはOSSの維持に貢献していますか?
EWB3.3本体はJavaですから、他が補助的に必要になる訳ですね。 なお、3日目の時点では某書についてきたバイナリEWBを開いて 確かめるなどはしていません。
LaTeX系のツール群として、、dvipsk、makejvf、mendex。 PostScriptレベルでのの処理用にghostscriptとghostview。 EUC-JPしか処理できなかったのために文字コードを変換するnkf。 置換処理用のsed。CLIでの文章編集のためのjvim。 Perlは通常のスクリプト用として、Tcl/TkがGUI操作用のインターフェース画面を 作っていたんでしょうか。 入力補助用のkakasiとkinput2があり。 そうなるとxemacsはクライアント側でのエディタでしょう。
EWBで使うファイル
どうでもいいですが、 EWBハンドブックの1部4章1節のタイトル「一般知識」ですよ。強い。
dat 体裁入力ファイル
大まかなレイアウトに関する情報を入力するファイルです。 内容については後日の記事でやりますが、ここにビルドに必要な補助情報と 全体のレイアウトを記述します。 そう、EWBを使っている人はバックエンドのを意識することなく 書籍が作れるのです! 設定項目からどんな命令に置換されるのか透けて見えますが。
本文部分のものと、索引体裁があったようです。
doc ドキュメントファイル
ドキュメント本文が入るファイル群ですね。.doc
がMS-Wordの専有に近い拡張子となるのは
Windows95以降くらいらしいので、
それより古い起源を持つソフトウェアが使い続けていても仕方無いですね。
最初tar.gzから解凍したとき3時間くらい悩んだよ……。
contents.ewb ファイル
docファイルをセクション順にトリガを用いて記述してあります。 このファイルを元にファイル内容を取得して全体を構成する訳ですね。
trigger.def
EWBのマークアップとのCSの橋渡しですね。 書籍毎に処理を弄れるように外に出ていたのでしょうか。
PDFStyle
PDF時の特殊処理を記述したファイルですね。dvipsの方がメジャーだった時代。
yakumono.sed
以上に加えて、画像や、表を別ファイルに記述したものなどを合わせると EWBでドキュメントを作成するための準備ができます。 漏れがあったら後日こっそり足します。
EWB-Shelf
ツール群全体のことをEWBと称してきましたが、組版処理を担うプログラムは EWB-Shelfと呼ばれています。 「トリガ解析をして文法ミスをチェック」する作業も含まれると ありますので、に処理を渡す前にエラーのほとんどを 潰せるようにしたのでしょうか。組版トリガはスルーしてた可能性もありますが。 この辺りは後半の記事にご期待ください。
私がヤベーと思うのは、コイツ体裁ファイル処理して.clsファイルを ジェネレイトするんですね。現代的な(あるいはプリミティブな思想の) ではなかなかやらないと思います。
guisted
体裁入力ファイルをGUIで作るためのツール、とのことです。 TeXWorksの初期設定的なやつや、 kmutoさんが開発中のRe:VIEWのブラウザで動作するレイアウトエディタなどが近いでしょうか。 特徴として。EPS画像を扱えるのでより装飾の強いレイアウトが可能です。 それぞれのトリガの動作詳細もGUIで調整できます。確かに強い。
past
図表の組み込みフローのところに記載された強そうな文字列。 「物理属性エディタ」なるツールによって原稿中の図表の入力、設定を行い、 「物理属性ファイルに保存」をするらしいです。 EWBの組版トリガはほぼそのままなので、 仮組からの修正が利きやすいのでしょう。 テーブルなどが別ファイル記述な理由もここでの修正を視野に入れたものなのでしょうね。
物理属性エディタの名前はpastです。
usephy
というオプションをEWB-Shelfの処理上に記載し、
pastを展開します。原稿中の図表位置につけたトリガの位置を取得し、
表れた設定画面で値を埋めていくと良い感じになるとのことです。
細かいツールはまだまだあるんですが、まあEWBハンドブックを見ましょう。
フロー
大まかなフローを更に簡略化すると
組版チーム
- 体裁ファイル作成
原稿チーム
- 原稿作成
- 図表作成
- EWBフォーマットに原稿を落としこむ
どっちかのチーム
- EWBフォーマットの図表リスト
組版チーム
- 流しこんで組版
- チェック
- 図表位置など修正
現代、特に同人誌などになると著者と編集と組版がごったになって様々な箇所で 地獄を見ていることを考えると、この分担フローを改めて考えてみるのもよいかも しれませんね。よし、綺麗に終わった*1!
Next
4日目は@hid_alma1026さんです!
*1:折を見て綺麗に構成を組み直そう。そうしよう