Kusuma Plava
(クスマ・プラヴァ) — Vertical-Writing Editor
木漏れ日と花筏。横で書き、縦で組む。
左の執筆ペインに流すように書けば、右の原稿用紙が縦に埋まっていく。
.chkpf・テキスト・青空ZIPなど)を開く前に、バックアップをお取りください。
「書く」と「組む」は、別の仕事だった。
小説や教材を、縦書きの本に仕立てる。ワープロは縦書きの本文を 書けますが、「版面に枠を置いて文を配る」発想の道具ではなく、 図版の回り込みは文中のオブジェクト位置と噛み合わず、 ずれやすいものでした。本格DTPは縦組・回り込み・フレーム連結を すべて持つ本命ですが、職業道具の重さと価格が伴います。 執筆エディタは書くことには快適でも、組版はまた別の工程でした。
とりわけ教科書や挿絵つきの本では、作業の発想順序が 「先に絵の位置を決め、文章をそこへ流し込む」 形になります。「方眼紙 × 実寸 × 縦書き文字送り × 回しこみ」の 4点セットを軽い操作感で持つツールは、ありませんでした。
Kusuma Plava は、横書き版の3点セットを先に実現した Silim Murlun をフォークし、 縦軸へ倒したエディタです。「絵を置いてから文を回す」を そのまま操作にした、本を作る人のための軽量縦組エディタ—— それがここの立ち位置です。
横で書く。縦で組む。
執筆モードは2ペイン構成です。左の連鎖テキストペインに 横書きでガンガン書いていくと、右の版面が縦書きの原稿用紙として ガンガン組まれていきます。入力面が横書きなのは、IME と 執筆速度の相性を考えた結論——「書く」と「組む」を 分けたことが、このエディタの芯です。
- 字下げと話区切りは日本語式 Enter で段落頭に全角1字の字下げ。*/◇ の話区切りはボタン一発で挿入。選択範囲の太字・斜体・下線と書式解除にも対応します
- 文字数は作家の共通言語で 総字数・選択範囲・400字詰換算を常時表示。目標字数と進捗バーを設定でき、応募規定の「400字詰N枚」にそのまま対応します
- 検索・置換 Ctrl+F で検索バー。次/前・1件/全置換に対応し、検索ジャンプは版面のスクロールと同期します
- 自動保存と下書き復元 1.5秒デバウンスで文書全体を IndexedDB へ保存。次回起動時に下書きから再開できます
- ペインと版面は双方向 キャレット位置へページが追従し、「頁」「文」ボタンで版面とテキストを行き来できます
- 青空文庫をそのまま読む .txt の直接読込に加え、青空ZIP書庫(txt+同梱画像)を丸ごと取り込めます。[#…]注記は描画側で解釈され、文頭の凡例ブロックは組版から除外します
-
テキスト出力は投稿用に
なろう・カクヨム提出用のプレーンテキストを出力。入力糖衣は
|《》正規形に整えて書き出します(UTF-8 BOM 付き) - 仕上げは組版モードで レイアウト編集(テキスト連鎖・画像・シェイプ・整列)は組版モードに格納。書くときは執筆モード、版面を詰めるときは組版モードです
原稿用紙は、日本語を知っている。
描画面は1字1マスの字セルとルビ欄でできた升目です。 「升目 縦N字×横N行」を指定すれば字サイズは自動で決まり、 版面 spec は用紙サイズから独立して持てます—— 実務の版面指定が「字サイズ×行字数×行数」で来ることへの対応です。 400字詰・文庫・単行本・四六判のプリセットも用意しています。
-
ルビ記法は青空文庫テキストフォーマット準拠
|親字《ヨミ》と親字《ヨミ》(直前の漢字連続)を受理。青空文庫の注記書式と同じものを、なろう・カクヨムも受け付けるため、既存原稿のコピペがそのまま動きます。入力糖衣親字(-ヨミ-)も内部で正規化されます - 禁則は実務ルール準拠 行頭禁則(句読点・中点・感嘆疑問・閉じ括弧・長音繰返し・小さい仮名ほか)と行末禁則(開き括弧)を、分割点の境界調整で処理します
- 半角は縦中横と回転の使い分け 短い連続は縦中横、長い連続は1字1マスの回転表示。計測と描画が同じトークナイザを共有するので、版面と見た目がずれません
- 傍点はルビ欄の「・」 青空文庫式の傍点注記は、縦組ではルビ欄に点として描かれます
絵を置いてから、文を回す。
「画」メニューや貼り付けで版面へ画像を置くと、 文章はそれを回りこんで組まれます。注記の位置へ 「次の段から画像+次の段から本文再開」のゾーンで配置し、 収まらなければ改ページ——教科書や挿絵つきの本の 版面設計を、そのままの発想順序でできます。
左が編集画面、右が印刷プレビュー。升目に沿って 回りこんだ版面が、そのまま実寸で出ます。
編集
印刷プレビュー
- 画像の編集は版面の上で 配置した画像は移動・縮尺・数値指定で調整でき、ドロップで最上段/最下段へ吸着。縦横比ロックの解除もできます。画像の位置と回りこみは注記形式で連鎖テキストへ記録され、書庫にも保存されます
- 青空文庫の画像注記にも対応 [#…入る]注記を持つ青空ZIPは、読み込むと空枠を生成して同梱画像を自動充填。「注記の次の段から画像+次の段から本文再開」のゾーンで版面に組み込まれます
教科書の版面は、段でできている。
中学の教科書や文芸誌、学習教材のような大きな版面では、 段組が事実上の必須です——縦書きの1段は、1行が長すぎて 読めないからです。1〜3段の段組と段間指定に対応し、 文章は右の段から左の段へ、ページをまたいでも 連鎖のまま流れていきます。
- 右綴じの見開き表示 spread 表示では綴じ側の余白(ノド)が左右ページで反転。綴じたあとの見え方を、編集しながら確認できます
- 柱(はしら)とノンブル 書名や章名を柱として版面の余白に載せ、ノンブルを下中央に配置。製本の体裁を印刷でそのまま出せます
印刷は、ブラウザに任せる。
独自の PDF エクスポート機能は持ちません。ブラウザの印刷機能に
任せる方針で、その代わりに実寸出力を真面目に作り込んでいます——
@page を用紙に合わせて設定し、ノンブルを下中央に
載せ、升目の印刷出し分けと用紙色の透過に対応します。
印刷先に PDF を選べば、版下 PDF もこの経路で完結します。
メニューの「印刷」はアプリ内のプレビューオーバーレイを開き、 そこからブラウザの印刷を呼び出します。
名前の由来
Kusuma はサンスクリット語で「花」、 plava は「筏・浮くもの」。 合わせて「花筏」——散った花が流れに乗って筏を成すように、 横書きで書いた文が文字送りに乗って縦の版面を成す。 この製品の姿を、そのまま名指しています。
出自は Silim Murlun のフォーク。 エンジンの Kimetron Isle と 文字送り中間層の INIMBAL を継承し、縦版の組版計算は inimbal 側で「1字=1単位」のカウント方式へ置き換えられています。
正直な現状
小説一冊分の執筆から印刷まで通るところまで来ていますが、 まだ発展途上です。注意点も正直に書きます。
-
開く前に、バックアップを
発展途上のソフトウェアです。作成・読込する文書ファイル(
.chkpf・.slm・テキスト・青空ZIP)は、開く前に必ずバックアップをお取りください - 品質向上は継続中 v0.9.0 時点で把握していた不具合(青空ZIP読込直後のフィット未適用・テキスト読込の空行・判型変更時の画像追従)は v0.10.0 で修正しています。印刷PDFへのフォント埋め込みは環境依存の確認中です
- 日本語のみ UI・ドキュメントとも日本語版のみです
-
ホスト版はありません
リポジトリを clone して
npm install→npm run devでローカル起動します。データは外部へ送信されません -
ローカルファースト
保存は独自書庫
.chkpf(zip: doc.json+画像バイナリ)。旧.slmも読み込めます。共同編集・クラウド保存はスコープ外です
ソースコード
MIT ライセンスで公開しています。TypeScript + React + Vite 製、
app → inimbal → kimetron(vendored workspace)の
モノレポ構成です。npm install → npm run dev
で起動します。