この草稿(Working Draft)では、各種フォーマットへの出力という観点を中心に、 XNML文書に必要な版面構成モデルとして、"XNML Page Model"を提案する。
XNMLとは、eXtensive Novel Markup Languageの略称であり、 小説に似た、テキストが中心的な表現媒体について、 その論理構造を記述するための言語である。
XNMLは本質的に論理構造を記述するものであり、 XNML文書には、特に必要な場合を除き、極力物理構造に関する記述を含むべきでない。
しかし、多くの場合、実際の版面においては、論理構造と物理構造は強い対応関係を持っている。たとえば、見出し文字は大きく太い文字で書かれるし、註が小さい文字で書かれることも多い。
特に、XNML文書は多様な広さ・制御方式を持った各種メディアに 表示されることが前提になっている。 それぞれのメディアにおいて、違和感なく同等の表現が行えることを保証するために、 版面形成における論理構造との対応関係について、明確な仕様が求められる。
そこで本文では、XNML文書の想定する版面について考慮した後に、 XNML文書に求められる版面構成モデルを検討を行う。
文章は以下の構成を持つ。
文章 ::= 部+ | 章+ | 節+ 部 ::= 章+ | 節+ 章 ::= 節+ 節 ::= 段落+ 段落 ::= 文+
このほか、リスト構造等が考慮される場合もあるが、 ここでは段落の特殊な形状であると考える。
文がどのように構成されるかは、言語に依存する。ほとんどは、以下のものに類似した構造を持つ。
文 ::= (文頭文字)? (句 句末文字)* 句 文末文字 句 ::= (本文文字)+
2.1 で挙げた論理構造とは別に、いずれかのメディア上に表現される文章は、 物理構造を持つ。もっとも基本的な物理構造の単位は、文字である。 文字が一定の法則に基づいて並べられ、頁が構成される。 1つの頁は1つの版面上に表示される。
ここでは、XNMLで想定する各出力媒体について、その頁の構成について考える。
現段階のXNMLにおいて、想定されている出力媒体は以下の通りである。
それぞれについて、縦組、横組が考えられる。 しかしpTeXでの実装法をに見られるように、両者に本質的な差異はない。
紙への出力は、一般に「印刷」と言われる。
媒体としての紙は、紙のサイズに応じた版面を持つ。 一般的なうち最小のサイズは文庫判である。 文庫判の場合、日本語で可読性が十分な大きさのフォントを用いると、縦組みで40 文字 x 20 行 程度の版面を確保できる。
紙の版面は静的である。版面は必ず一度で出力される。
紙において、頁は以下のように構成される。
章 ::= 頁+ 頁 ::= 行+
行の構成は、言語に依存する。
アルファベット系の文字を使用する言語の場合、以下のようになる。
行 ::= 単語+
ただし、版面の美しさのために、単語が途中で区切られる場合がある。 単語を途中で区切る場合、ハイフネーション規則に従い、 単語中の所定の場所で区切られる。
日本語の場合、以下のようになる。
行 ::= 文字+
いずれの言語の場合も、文が途中で区切られ、頁をまたがる場合がある。 節、段落の単位は、頁の構成をあまり左右しない。
画像との重ね合わせ等により、アプリケーションウィンドウ全面にテキストを表示する形式である。
版面は、アプリケーションウィンドウのサイズにより決定される。ウィンドウサイズ 640 x 480 、フォントサイズ18ピクセル、横書きの場合で30文字 x 18 行程度の版面が確保できる。
アプリケーションウィンドウは動的である。版面全体に表示されるもののうち、一部分のみを(時間経過、入力等のイベントに応じて)順次出力することができる。
アプリケーションウィンドウ全面において、頁は以下のように構成される。
頁 ::= 段落+ 表示単位 ::= 頁 | 段落+ | 文+
文が頁をまたがることはない。 多くの場合、頁の表示は表示単位毎に行われる。 この場合、表示単位毎に表示→応答待ちのサイクルが繰り返される。
アプリケーションウィンドウ内に、テキスト表示用の専用ウィンドウを設け、そこにテキストを表示する形式である。
一般的に、30 文字 x 3〜4 行程度の版面を持つ。
サブウィンドウは動的である。 ただし、同一の頁として版面に表示されるものが、(クリック待ちなどで)分割して表示されることは稀である。
サブウィンドウへの出力において、頁は以下のように構成される。
頁 ::= 表示単位+ 表示単位 ::= 段落+ | 文+
多くの場合、表示単位を構成するのは単一の段落である。 文が頁をまたがることはない。
出力する媒体によって、版面を構成する最小単位は異なる。 たとえば、紙の場合は文字が最小の単位であり、 ウィンドウの場合は文が最小単位となる。
こうした、媒体による最小単位の違いを越えて、包括的なモデルを形成するために、 XNML Page Modelでは以下に示す各概念を導入する。
(*1) これは本来、「語」として扱うべきものであるが、日本語での事情を考え「句要素」とした。
@@この節では、2.2で挙げたようなメディアについて、XNML関連処理系がその表現能力を知るのに必要な値を検討する。
@@この節で規定されうる概念としては、次のようなものが挙げられる:
行あたり文字数、最大行数、動的表示能力
@@プロポーショナルフォントを想定する場合、更に複雑な概念が必要と思われる
@@非光学的メディア(音声読み上げなど)に対応するなら、それに応じた概念も必要になる