12. スタイル言語 この12.においてスタイル言語を規定する。構文的には,スタイル言語は,ISO 8879が規定するデータ内容記法にほかならない。この記法の要素内容は,構文変数style-language-bodyとして構文解析される。 [159] style-language-body = [[ unit-declaration* | definition* | construction-rule* | mode-construction-rule-group* | application-flow-object-class-declaration* | application-characteristic-declaration* | application-char-characteristic+property-declaration* | initial-value-declaration* | reference-value-type-declaration* | page-model-definition* | column-set-model-definition* | added-char-properties-declaration* | character-property-declaration* | language-definition* | default-language-declaration? ]] この規格が規定するスタイル言語は,8.6に示す中核式言語(又はオプションで,8.に示す完全仕様式言語)を用い,10.2.4に示す中核問合わせ言語(又はオプションで,10.に示す完全仕様問合わせ言語)を用いる。 [160] style-language-expression = make-expression | style-expression | with-mode-expression 構文変数style-language-bodyの中では,式(expression)として式style-language-expressionを用いてよい。 備考 style-expressionは,継承された特質の値を指定するために用いる。 12.1 機能 スタイル言語においては,次の機能をオプションとする。 (1) 機能expressionの指定によって,完全仕様式言語を利用可能にする。この機能を指定しない場合には,中核式言語だけを用いなければならない。 (2) 機能multi-processの指定によって,手続きprocess-children及び12.4.4に示す関連手続きを制限なしで利用できる。 (3) 機能queryの指定によって,10.に示す完全仕様の問合わせ言語の利用及び関連機能の利用を可能にする。この機能を指定しない場合には,中核問合わせ言語だけを用いなければならない。これは,機能multi-processを含む。 (4) 機能regexpの指定によって,10.3.2 に示すノード正規式の使用を可能にする。 (5) 機能wordの指定によって,10.3.1 に示す語探索のための機能の使用を可能にする。 (6) 機能hytimeの指定によって,10.2.1 に示すHyTime所在番地付けのための機能の利用を可能にする。 (7) 機能combine-charの指定によって,要素型形式character-combination-declarationを利用可能にする。 (8) 機能keywordの指定によって,構文formal-argument-listにおいて,#!key形式でキーワード引数を利用可能にする。 (9) 機能side-by-sideの指定によって,流し込みオブジェクトクラスside-by-side及び流し込みオブジェクトクラスside-by-side-itemを利用可能にする。 (10) 機能sidelineの指定によって,流し込みオブジェクトクラスsidelineを利用可能にする。 (11) 機能aligned-columnの指定によって,流し込みオブジェクトクラスaligned-columnを利用可能にする。 (12) 機能bidiの指定によって,表記方向左向き(right-to-left)及び流し込みオブジェクトクラスembedded-textを利用可能にする。 (13) 機能verticalの指定によって,表記方向下向き(top-to-bottom)を利用可能にする。 (14) 機能mathの指定によって,12.6.26 に示す数式に関する流し込みオブジェクトクラスを利用可能にする。 (15) 機能tableの指定によって,12.6.27 に示す表に関する流し込みオブジェクトクラスを利用可能にする。 (16) 機能table-auto-widthの指定によって,表の列幅を自動計算を可能にする。これは,機能tableを含む。 (17) 機能simple-pageの指定によって,12.6.3に示す簡単なページレイアウトに関する機能の使用を可能にする。 (18) 機能pageの指定によって,流し込みオブジェクトクラスpage-sequence,流し込みオブジェクトクラスcolumn-set-sequence及び関連機能利用可能にする。 (19) 機能multi-columnの指定によって,複数段を含む段集合を利用可能にする。これは,機能pageを含む。 (20) 機能nested-column-setの指定によって,流し込みオブジェクトcolumn-set-sequenceを先祖にもつ流し込みオブジェクトクラスcolumn-set-sequenceを利用可能にする。これは,機能multi-column及び機能pageを含む。 (21) 機能general-indirectの指定によって,手続きgeneral-indirect-sosofoを利用可能にする。 (22) 機能inline-noteの指定によって,流し込みオブジェクトクラスinline-noteを利用可能にする。 (23) 機能glyph-annotationの指定によって,流し込みオブジェクトクラスglyph-annotationを利用可能にする。 (24) 機能emphasizing-markの指定によって,流し込みオブジェクトクラスemphasizing-markを利用可能にする。 (25) 機能included-containerの指定によって,流し込みオブジェクトクラスincluded-containerを利用可能にする。 (26) 機能actual-characteristicの指定によって,各継承特性cに関する手続きactual-cを利用可能にする。 (27) 機能onlineの指定によって,12.6.28に示す機能を利用可能にする。 (28) 機能font-infoの指定によって,12.5.7に示す機能を利用可能にする。 (29) 機能cross-referenceの指定によって,手続きprocess-element-width-idを利用可能にする。 (30) 機能charsetの指定によって,要素型形式char-repertoire,要素型形式combine-char,要素型形式features及び要素型形式sgml-grove-plan以外の宣言要素型形式を利用可能にする。 12.2 流し込みオブジェクト木 流し込みオブジェクト木は,フォーマット指定と入力文書とを併合したものを抽象的に表現する。流し込みオブジェクト木のノードは,流し込みオブジェクトと呼ぶ。各流し込みオブジェクトは,流し込みオブジェクトクラスと呼ぶ型をもち,流し込みオブジェクトは,そのクラスのインスタンスとなる。また,流し込みオブジェクトは,特質の集合をもつ。流し込みオブジェクトに適用可能な特質は,流し込みオブジェクトクラスに依存する。流し込みオブジェクトのクラス及び特質は,共に流し込みオブジェクトに関して必要となるフォーマティング動作の指定を構成する。 各流し込みオブジェクトは,ポート集合をもち,各ポートに対して流し込みオブジェクトの順序付きリストを付属できる。ポート集合は,空でもよい。ポートをもつすべての流し込みオブジェクトにおいて,一つのポートは主ポートとして区別してもよい。主ポートには,名前付けを行わない。その他のポートはすべて名前をもち,その名前が流し込みオブジェクトの文脈の中でそのポートを一意に識別する。ポートに付属した流し込みオブジェクトのリストを,ストリームと呼び,そのリストの要素を,ストリームの要素と呼ぶ。流し込みオブジェクト木の中においてどのストリームの要素ともならない,流し込みオブジェクトが一つだけ存在する。この流し込みオブジェクトを流し込みオブジェクト木の根と呼ぶ。流し込みオブジェクト木の中の他のすべての流し込みオブジェクトは,ただ一つのストリームの要素となる。このストリームを流し込みオブジェクトが属するストリームと呼ぶ。流し込みオブジェクトの属するストリームが付属している流し込みオブジェクトを,その流し込みオブジェクトの流し込み親と呼ぶ。流し込みオブジェクトがもつポート集合は,そのクラスによって制御され,あるクラスに関してはその特質によっても制御される。ポートをもたない流し込みオブジェクトを,原子流し込みオブジェクトと呼ぶ。インスタンスが常に原子流し込みオブジェクトになる流し込みオブジェクトクラスを,原子流し込みオブジェクトクラスとする。異なるストリームにおける流し込みオブジェクトの相対的位置決めは,流し込みオブジェクトを同期することによって制限できる。さらに,特質の値から流し込みオブジェクトを生成してよい。 12.3 領域 領域の概念は,流し込みオブジェクトに意味を与えるために用いる。根以外の流し込みオブジェクトをフォーマットした結果は,領域の列となる。これらの領域の性質は,この規格では完全には規定しない。領域は,四角形の箱であって,固定した幅及び高さをもつ。領域は,表示媒体上に可視化できるマーク集合の指定でもある。領域は,他の領域を含んでもよい。特に領域は,グリフを含んでもよい。領域を生成した流し込みオブジェクト及びその領域を用いる文脈に依存して,情報を領域に付属することもできる。領域は,行外領域及び行内領域の二つの種別をもつ。行外領域及び行内領域の概念を,図 4に示す。
12.3.1 行外領域 行外領域は,直接的には行の部分とはならない領域とする。行外領域は,もともと絶対的な方向性をもつ。 備考 非公式な言い方では,箱には"こちらが上"と示す矢印がある。 行外領域の位置決めは,領域コンテナによって指定する。領域コンテナは,左下角を原点とする独自の座標系をもち,水平に右に伸びる正のx軸及び垂直に上に伸びる正のy軸をもつ。 領域コンテナは,それ自体の座標系によって指定する流し込み方向をもつ。流し込み方向は,互いに反対の開始端及び終了端を与える。領域コンテナの大きさは,流し込み方向に直交する方向において常に固定される。このことは,開始端及び終了端の長さが常に固定され,互いに等しいことを意味する。
流し込み方向の領域コンテナの大きさは固定でき,流し込まれる領域に合わせて,必要に応じて成長すると指定してもよい。領域コンテナに流し込まれる行外領域は,流し込み方向に直交する方向における大きさを,その方向における領域コンテナの大きさと常に等しくして生成される。これを領域の行外サイズという。領域コンテナは,次のとおりに行外領域の列で流し込む。最初の行外領域は,領域コンテナの開始端と,その領域の開始端を一致させて位置付ける。次の行外領域は,その前の領域の終了端と,その行外領域の開始端を一致させて位置付ける。以下同様とする。これを図5に示す。 取込みコンテナ領域流し込みオブジェクトを親とする領域コンテナは,回転を指定し,それに流し込む行外領域のすべてに適用してよい。回転の角度は,90゜の倍数に限定する。この回転は各行外領域に適用するので,行外領域の開始端及び終了端をも変更する。 備考 異なる回転の領域を組合わせるには,取り込み領域コンテナの使用が必要となる。 行外領域の開始端から終了端にいたる方向を,行外領域の配置方向とする。行外領域は,その領域の配置方向に対して垂直な表記方向をもつ。
表記方向は,右向き(left-to-right),左向き(right-to-left)又は下向き(top-to-bottom)のいずれかとする。図7を参照のこと。
12.3.2 行内領域 行内領域は,行の部分とする。行内領域は,その箱の辺にある位置決め点をもち,送り方向という方向をもつ。その方向は,位置決め点のある箱の辺に垂直となる。位置決め点から送り方向にあり,その箱の反対の辺の位置を,行内領域の送り位置とする。 備考 非公式な言い方では,箱の上には位置決め点から伸びる矢印があり,"現在行と並行にせよ"との指示を行っているとも言える。 行内領域は位置決めされて,次に示す方法で行を形成する。段落に関連する表記モードは,その段落の行内進行方向を与える。行の構成処理と関連して,配置点がある。最初の行内領域は,その送り方向を段落の行内進行方向と同じ方向に向け,その領域の送り位置を現配置点とする。次の領域は,その位置決め点を現配置点に一致させて配置し,その送り方向を段落の行内進行方向と同じ方向に向け,送り位置を次の領域を置くための現配置点とする。これを図8に示す。
カーニングの利用は,図9に示すとおり,位置決めを修正する。
段落の表記モードが決定する方向をもち,行内領域の位置決め点を含むパスを,配置パスという。右向きの表記モードの場合を図10に,左向きの表記モードの場合を図11に示す。
段落が複数の表記モードを使う場合,追加の処理段階が必要となる。例えば図12では,英語テキストに関する右向きの行内進行方向に加えて,ヘブライ語テキストに関する左向きの行内進行方向を用いる。この場合,行分割はさらに複雑となる。
フォント資源の並びモード属性によって指定する並びモードも,グリフの位置決めに影響を与える。その影響を図13に示す。行内流し込みオブジェクトには,この処理を修飾できる特質がある。
行内領域は,行進行方向をもつ。行進行方向は,その段落の行内進行方向に直交する。行内領域のいくつかの特質は,行進行方向と関連して指定する。 12.3.3 行内及び行外の流し込みオブジェクト フォーマットの結果,行内領域の列を生成する流し込みオブジェクトを,モ行内であるモという。フォーマットの結果,行外領域の列を生成する流し込みオブジェクトを,モ行外であるモという。いくつかの流し込みオブジェクトクラスのインスタンスは行内にだけなり,幾つかの流し込みオブジェクトクラスのインスタンスは行外にだけなり,インスタンスが行内又は行外のどちらともなる流し込みオブジェクトクラスもある。最後の場合,流し込みオブジェクトが行内であるか行外であるかは,流し込みオブジェクトの特質によって制御する。特質によって制御しない場合,そのポートに附属する流し込みオブジェクトが行内であるか行外であるかによって制御する。流し込みオブジェクトのクラスは,その流し込みオブジェクトの各ポートに関して,そのポートに関連する流し込みオブジェクトが,行内だけ,行外だけ又は行内若しくは行外のどちらかだけになることを決定する。 備考 12.6.16に規定する取り込みコンテナ領域流し込みオブジェクトは,行外だけになり得る流し込みオブジェクトが,改行することなく行の中に間接的に現れることを可能にする。例えば,縦書きの日本語を改行せずに英語テキストの行の中に混在させてもよい。 12.3.4 添付領域 行外領域は,添付領域と呼ぶ多くの関連する行内領域をもつことができる。それらを図14に示す。図14は,行外領域の両側の添付領域させた側線及び図形の利用を示す。 備考 添付領域は,側線,行番号及び傍注のために用いる。
各添付領域は,添付点と呼ぶ行外領域の箱の上の点に対して,相対的に位置決めする。添付点は,行外領域の各添付領域に関して異なってもよい。添付点は,配置方向に平行な行外領域の辺にある。 各添付領域に関して,添付対象の行外領域の辺を示す指定を行う。各添付領域は並び点をもち,それを対応する添付点と同じ位置にし,配置方向を同じにして配置する。 各添付領域は,行外領域からの分離間隔を指定する。添付領域が,表記モードが決定する方向の開始点である辺にある場合,その分離間隔は,添付領域の並び点から添付点までのその方向の間隔であり,添付領域の並び点をその送り点とする。添付点が,表記モードが決定する方向の終了点である辺にある場合,その分離間隔は,添付点から添付領域の並び点までのその方向の間隔であり,添付領域の並び点をその位置決め点とする。 備考 分離間隔に対する負の値は,添付点が行外領域の内部にあることを示す。 12.4 流し込みオブジェクト木構成 12.4.1 構成規則 [161] construction-rule = query-construction-rule | id-construction-rule | element-construction-rule | root-construction-rule | default-element-construction-rule 要素型形式style-specification内(7.1を参照のこと)の構成規則は,入力グローブのノードをどのように処理するかを指定する。各構文construction-ruleは,入力グローブ内のノードのいくつかの集合,時には空の集合に合致する。グローブ及びこの規格でのグローブ使用に関しては,9.を参照のこと。 構文construction-ruleは,式construct-expressionを含む。それは型sosofoのオブジェクトを返す式とする。 型sosofoは,流し込みオブジェクト木に追加する流し込みオブジェクトの列の指定(Specification Of a Sequence Of Flow Objects)を意味する。12.4.3を参照のこと。構文construction-ruleの規則をノードに適用すると,式construct-expressionが評価される。その規則を適用するノードが,その式construct-expressionを評価するための現ノードとなる。 ノードに合致する構文construction-ruleの規則のうち,次に定義する最も適格な規則をそのノードに適用する。 備考 ノードの処理には副作用がなく,単に値を返すだけである。 ノードは現処理モードに応じて処理される。構文mode-construction-rule-groupによって指定する名前付きの処理モードに加えて,名前なしの初期モードが存在する。どの構文mode-construction-rule-groupの規則グループに属さないすべての構文contruction-ruleの規則は,処理モードが初期処理モードの場合にも,名前付きモードの場合にもノードに合致する。流し込みオブジェクト木は,入力グローブの根ノードを初期処理モードで処理することによって,入力グローブから構成される。その結果のsosofoによって指定される流し込みオブジェクトは,流し込みオブジェクト木の根の子として追加される。この型sosofoによって指定される流し込みオブジェクトは,すべてラベルなしとなり,そのすべてが流し込みオブジェクトクラスscroll又は流し込みオブジェクトクラスpage-sequence若しくは流し込みオブジェクトクラスsimple-page-sequenceのインスタンスとなる。 [162] mode-construction-rule-group = (mode mode-name construction-rule* ) [163] mode-name = identifier 構文mode-construction-rule-group内の構文construction-ruleの規則は,現処理モードが識別子mode-nameの場合にだけ,ノードに合致する。 構文construction-ruleの規則の相対的な適格性を,次のとおりに定義する。 (1) 構文mode-construction-rule-group内の構文construction-ruleの規則は,構文mode-construction-rule-group外の構文construction-ruleよりも適格性が高いとする。 (2) 先行規則によって同じ適格性をもつ構成規則の中では,ある構文style-specification部の構文construction-ruleの規則が,後続する部のすべて構文construction-ruleの規則よりも適格性が高い(7.1を参照のこと)。 (3) 先行規則によって同じ適格性をもつ構成規則の中では,次に示す各項はそれぞれその次の項よりも適格性が高い。 (a) 構文query-construction-rule (b) 構文id-construction-rule (c) 構文element-construction-rule (d) 構文default-element-construction-rule (e) 構文root-construction-rule (4) 構文query-construction-ruleは,それより低い優先度をもつ他の構文query-construction-ruleの規則よりも適格性が高い。 (5) 構文 qualified-gi を使用した指定は,構文 qualified-gi を使用しない規則より適格性が高い。構文qualified-giを使用する規則の間では,より多くのgiをもつ規則の方が適格性が高い。 適格性が等しい複数の構成規則がノードに合致する場合は,エラーとする。 構文style-language-bodyで明示的に指定する構成規則に加えて,暗黙の無指定時構成規則がある。無指定時構成規則は,入力グローブのどのノードにも合致するが,明示的に指定されたどの構文construction-ruleの規則よりも適格性が低い。無指定時構成規則が返す結果は,次に示すとおりに,適用するノードの型に依存する。 (1) クラスsgml-documentのノードに関しては,(process-children)を返す。 (2) クラスelementのノードに関しては,(process-children)を返す。 (3) クラスcharのノードに関しては,(make character)を返す。 (4) クラスattribute-assignmentのノードに関しては,(process-children)を返す。 (5) その他の任意のノードに関しては,(empty-sosofo)を返す。 [164] query-construction-rule = (query style-query-expression construct-expression priority-expression ) 構文query-construction-ruleは,式style-query-expressionが返すノードリスト内のどのノードにも合致する。構文query-construction-ruleを使用するには,機能queryを利用可能にしなければならない。 [165] style-query-expression = expression 式style-query-expressionは,型node-listのオブジェクトを返す。式style-query-expression内では,手続きcurrent-root及び手続きcurrent-nodeは,ともに現在処理中のグローブのグローブ根を返す。 [166] construct-expression = expression 式constuct-expressionは,型sosofoのオブジェクトを返す。機能queryを利用可能とした場合,式construct-expression内では手続きcurrent-nodeは現在処理中のノードを返す。 [167] priority-expression = expression 式priority-expressionは,構文query-construction-ruleの規則の優先度を指定する。その値は,評価の結果数値となる。式priority-expressionが省略された場合,その優先度は0とする。より大きい数値が,より高い優先度を示す。 [168] element-construction-rule = (element (gi | qualified-gi) construct-expression ) [169] gi = string | symbol [170] qualified-gi = (( gi+ )) 構文element-construction-ruleの規則は,クラスelementに属し,構文gi又は構文qualified-giに合致する任意のノードに合致する。ノードはその共通識別子が,型string又は型symbolに等しい場合に構文giに合致する。ノードは,構文qualified-gi内の最後の構文giがそのノードに合致し,そのノードの親が最後から2番目の構文giに合致し,同様に構文qualified-gi内の各構文giが対応するノードの先祖に合致する場合に,構文qualified-giと合致する。 [171] default-element-construction-rule = (default construct-expression ) 構文default-element-construction-ruleの規則は,そのクラスがelementのノードに合致する。 [172] root-construction-rule = (root construct-expression ) 構文root-construction-ruleは,そのクラスsgml-documentのノードに合致する。 [173] id-construction-rule = (id unique-id construct-expression ) [174] unique-id = symbol | string 構文id-construction-ruleは,クラスがクラスelementであって,unique-idの指定に等しい一意識別子をもつノードに合致する。 12.4.2 主要流し込みオブジェクト 流し込みオブジェクトは,現ノードから構成され,流し込みオブジェクト木上にある(つまり参照値又は特質値でない)場合に,入力グローブ内のノードと関連する。暗黙の無指定時構成規則を用いて作成された流し込みオブジェクトは,明示的な構成規則を用いて作成された流し込みオブジェクトと同様に,その規則を適用した入力グローブ内のノードと関連する。 あるノードに関連付けられた流し込みオブジェクトは,次の場合にそのノードに関連付けられた他の流し込みオブジェクトより密接に関連する。 (1) ある流し込みオブジェクトが,現処理モードが初期処理モードで作成されており,他の流し込みオブジェクトが初期処理モード以外で作成されている場合。 (2) あるオブジェクトが他のオブジェクトを,直接又は間接的に含んでいる場合。 あるノードに他の任意の流し込みオブジェクトより密接に関連している流し込みオブジェクトが存在する場合,その流し込みオブジェクトをそのノードの主要流し込みオブジェクトと呼ぶ。 12.4.3 Sosofo 型sosofoのオブジェクトは,流し込みオブジェクト木に追加する流し込みオブジェクト列の指定とする。 備考 式言語が流し込みオブジェクトを直接操作することは決してなく,データ型sosofoを用いてそれらの指定だけを操作する。 備考 実装は,入力グローブのノードに適用された構文construction-rule内の式construct-expressionが型sosofoのオブジェクトを返した時点で,そのオブジェクト内の情報を流し込みオブジェクト木の一部を構成するために用いる。 型sosofoのオブジェクトによって指定される各流し込みオブジェクトは,シンボルでラベル付けしてよい。指定する対象のすべてがラベルなしの型sosofoのオブジェクトを,ラベルなしsosofoと呼ぶ。 備考 流し込みオブジェクトは,式make-expressionで引数label:を指定してラベル付けする。 (sosofo? obj) 引数objが型sosofoの場合に#tを,その他の場合に#fを返す。 [175] make-expression = (make flow-object-class-name keyword-argument-list content-expression* ) [176] content-expression = expression 式make-expressionを評価した結果は,型sosofoのオブジェクト(結果sosofo)であって,その最初の要素は,引数flow-object-class-nameで指定した名前のクラスの流し込みオブジェクトとなる。この流し込みオブジェクトは,構成された流し込みオブジェクトと呼ぶ。それぞれの式content-expressionは,型sosofoのオブジェクトを返す。式content-expressionが返す型sosofoのオブジェクトは,連結されて内容を構成する型sosofoのオブジェクトを形成する。引数flow-object-class-nameが原子流し込みオブジェクトクラスの名前の場合,式content-expressionを指定してはならない。引数flow-object-class-nameが原子流し込みオブジェクトの名前でなく,式make-expressionに式content-expressionを含まない場合,(proccess-children)の効果をもつ構文content-expressionを用いる。 それぞれの式make-expressionは,内容対応をもつ。内容対応はラベルをポートに対応させる。内容sosofoに指定した各流し込みオブジェクトは,順次考慮する。流し込みオブジェクトがラベル付きでない場合,構成する流し込みオブジェクトが主ポートをもてば,その主ポートに付属されたストリームに追加する。主ポートをもたない場合エラーとする。流し込みオブジェクトがラベル付きであって,内容対応によって対応付けるラベルをもつ場合,その流し込みオブジェクトはラベルが対応付けたポートに付属するストリームに追加される。それら以外の場合,流し込みオブジェクトは結果の型sosofoのオブジェクトに追加される。つまり,これらの流し込みオブジェクトは結果の型sosofoのオブジェクト内の構成された流し込みオブジェクトに後続する。 構文keywordは,式content-expressionとしてではなく構文keyword-argument-listの一部として扱う。構文keyword-argument-list内で二回以上同じキーワードが出現した場合,エラーとはしないが,最初に出現したもの以外はすべて無視する。構文keyword-argument-list内では,次のキーワードが出現してよい。 (1) 特質の名前を示すキーワードは,12.4.6に記述するとおり,その流し込みオブジェクトにおけるその名前の特質の値を指定する。ただし,継承可能特質の場合には,その値を上書きされる。特質が継承可能特質でない場合,その流し込みオブジェクトに適用可能な特質でなければならない。 (2) 文字列cが継承可能特質の名のキーワードforce!c:。その特質の値を指定するとともに,12.4.6で記述した値の上書きを抑制する。 (3) 参照値型の名前を示すキーワード。構成する流し込みオブジェクトがその型の参照値を,指定した値でもつことを指定する。 (4) キーワードuse:。12.4.6で記述するとおり,構成する流し込みオブジェクトで用いるスタイルを指定する。その値はスタイルオブジェクト又はスタイルを適用しないこと示す#fとする。 (5) キーワードcontent-map:。そのmake-expressionにおける内容対応を指定する。その値は,二つのオブジェクトからなるリストのリストであって,最初のオブジェクトはラベルを指定するシンボルで,二番目のオブジェクトはポート名を示すシンボル又は主ポートを示す#fのいずれかとする。内容対応では,ラベルは二回以上出現してはならない。 キーワードcontent-map:が指定されない場合,その流し込みオブジェクトの主ポートでないポートのそれぞれについて,そのポート名に等しい二つのシンボルからなるリストを内容対応として用いる。 (6) キーワードlabel:。結果の型sosofoのオブジェクト内に構成した流し込みに対するラベルを指定する。その値はシンボルとする。 [177] flow-object-class = identifier 構文flow-object-class-nameには,流し込みオブジェクトクラスの名前となる任意の識別子を指定できる。 [178] application-flow-object-class-declaration = (declare-flow-object-class identifier string ) 識別子identifierが構文flow-object-class-nameで指定する名前であって,文字列stringで指定した公開識別子をもつと宣言する。 [179] with-mode-expression = (with-mode mode-specification expression ) [180] mode-specification = mode-name | #f 式with-mode-expressionは,式expressionを引数mode-specificationで指定した処理モードで評価する。引数mode-specificationの値#fは,無名の初期モードを示す。引数mode-specification内の識別子mode-nameは,構文mode-construction-rule-group内で指定済みでなければならない。 (empty-sosofo) 空の型sosofoのオブジェクトを返す。 (literal string ...) 引数string,... 内の各文字ごとに,クラスcharacterの流し込みオブジェクト一つを同じ順序で含む型sosofoのオブジェクトを返す。各文字流し込みオブジェクトは,クラスcharacterを構文flow-object-class-nameとし,キーワードchar:に文字を指定した式make-expressionを評価して構成された場合と同じに構成される。 (process-children) 現ノードの子を順に処理した結果の型sosofoのオブジェクトを追加した結果の型sosofoのオブジェクトを返す。現ノードがクラスsgml-documentの場合,特性document-elementをノードの子として扱う。 (process-children-trim) 現ノードの子から,先頭及び末尾にあり,特性input-white-spaceが真となる値を特質charにもつノード列を除いた後,順に処理した結果の型sosofoのオブジェクトを追加した結果の型sosofoのオブジェクトを返す。 (process-matching-children pattern ...) 現ノードの子で引数pattern,...のいずれかに合致するノードを順に処理した結果の型sosofoのオブジェクトを連結した結果の型sosofoのオブジェクトを返す。引数patternは,手続きmatch-element?の第二引数として可能なオブジェクトとし,手続きmatch-element?と同じに解釈する。 (process-first-descendant pattern ...) 現ノードの子孫であって,引数pattern,...のいずれかに合致する,木順序で最初のノードを処理した型sosofoのオブジェクトを返す。引数patternは,手続きmatch-element?の第2引数として可能なオブジェクトとし,手続きmatch-element?と同じに解釈する。 (process-element-with-id string) 現ノードと同じグローブにあり,その一意識別子が引数stringとなる要素が存在する場合,その要素を処理した結果の型sosofoオブジェクトを返し,存在しない場合,空の型sosofoのオブジェクトを返す。この手続きは,機能cross-referenceを必要とする。 (process-node-list ndlist) 手続きprocess-node-listは,引数ndlistを順に処理した結果のsosofoを連結してできるsosofoを返す。この手続きは,機能queryを必要とする。 (map-constructor procedure node-list) 引数node-listの各ノードについて,そのノードを現ノードとして引数手続きprocedureを評価する。この引数手続きprocedureは,引数をとらず,型sosofoのオブジェクトを返す。手続きmap-constructorは,手続きを評価した結果を連結してできる型sosofoのオブジェクトを返す。この手続きは,機能queryを必要とする。 (sosofo-append sosofo ...) 引数sosofo,...を連結した結果の型sosofoのオブジェクトを返す。 (sosofo-label sosofo symbol) 引数sosofoの要素であって,現在ラベル付きでない流し込みオブジェクトに引数symbolのラベルをつけた型sosofoのオブジェクトを返す。新規の型sosofoのオブジェクトが作成されるのであって,引数sosofoもその要素も変更しない。 (sosofo-discard-labeled sosofo symbol) 引数sosofoから,引数symbolでラベル付けされたすべてのオブジェクトを除いた型sosofoのオブジェクトを返す。新規の型sosofoのオブジェクトが作成されるのであって,引数sosofoを変更しない。 (next-match) (next-match style) 手続きnext-matchは,現ノードに合致する,次に適格な構成規則を適用した結果の型sosofoのオブジェクトを返す。引数styleが指定された場合,そのスタイルはその構成規則を評価する際の現上書きスタイルとなる。 12.4.4 並行処理機能 手続きprocess-children,手続きprocess-children-trim,手続きprocess-matching-children,手続きprocess-first-descendantの呼びだしは,次の場合下降再帰呼び出しとなる。 (1) 手続きprocess-node-list又は手続きprocess-element-with-idの呼び出しの評価中ではない場合。 (2) 参照値の値を評価中ではない場合。 機能muti-processが可能になっていない場合,同じノードを現ノードとし,同じ処理モードを現モードとした,二つの下降再帰呼びだしをエラーとする。 12.4.5 型style 型styleオブジェクトは,継承可能特質の値を指定する式の集合を含む。 [181] style-expression = (style keyword-argument-list ) 式style-expressionは,評価の結果として型styleのオブジェクトを返す。構文keyword-argument-listでは,次のキーワードを指定可能とする。 (1) 継承可能特質の名前をもつキーワード。12.4.6の記述とおりに,その特質の値を指定する。上書きされない限りその値は有効となる。 (2) シンボルcを継承可能特質名とした場合のキーワードforce!c:。その特質の値を指定するとともに,12.4.6で記述した値の上書きを抑制する。 (3) キーワードuse:。12.4.6の記載とおり,構成する流し込みオブジェクトで用いるスタイルを指定する。 備考 式 style-expression は,継承可能特質だけをもつ原子流し込みオブジェクトクラスの式 make-expressionと同様に解釈する。 (style? obj) 引数objが型styleであれば#tを,その他の場合に#fを返す。 (merge-style style ...) 引数style,...を結合してできるスタイルを返す。返されるスタイルオブジェクト内の特質に関する式は,その特質に関する式を含む最初の引数スタイルオブジェクト内の式となる。 12.4.6 特質指定 明示的にこの規格で規定されていない限り,すべての特質は継承可能とする。この規格では,各継承可能特質ごとに,その特質の初期値を指定する式が存在する。すべての非継承可能特質は,無指定時値をもつ。 式contruct-expressionの評価中は,現上書きスタイルが有効となる。ノードの処理が始まった時点では,現上書きスタイルは空とする。手続きnext-matchは,式construct-expressionの評価中に現上書きスタイルを変更できる。その式contruct-expressionは,さらに手続きnext-matchを呼ぶことで現上書きスタイルを変更してよく,それ以降も同様に上書きスタイル変更してよい。 ある流し込みオブジェクトに関して継承可能特質cを指定する式は,式make-expressionを次の規則のうち適用可能な最初の規則を用いて評価した時点で決定される。 (1) キーワードforce!c:が指定されている場合,対応する式を用いる。 (2) 現上書きスタイルが特質cに関する式を含む場合,その式を用いる。 (3) キーワードc:が指定されている場合,対応する式を用いる。 (4) 流し込みオブジェクトにおいてキーワードuse:が指定されており,対応するスタイルオブジェクトが特質cに対する式を含む場合,その式を用いる。 (5) 上述以外の場合,(inherited-c)を用いる。 スタイルオブジェクトに関する特質の集合及び対応する式は,式style-expressionを評価の際に同じ方法で決定する。各継承可能特質cに関して,スタイルオブジェクトがもつcに対する式は,次の規則の適用可能な最初の規則を用いて決定する。 (1) キーワードforce!c:が指定されている場合,対応する式を用いる。 (2) 現上書きスタイルが特質cに関する式を含む場合,その式を用いる。 (3) キーワードc:が指定されている場合,対応する式を用いる。 (4) 流し込みオブジェクトにおいてキーワードuse:が指定されており,対応するスタイルオブジェクトが特質cに対する式を含む場合,その式を用いる。 上述のどの規則も適用できない場合,そのスタイルオブジェクトは特質cに関する式をもたない。 ある流し込みオブジェクトに適用可能な各非継承可能特質cに関して,その流し込みオブジェクトのための式make-expressionが,キーワードc:を指定している場合,対応する式を評価して用いる。指定していない場合,その特質に対する無指定時値はその特質及び流し込みオブジェクトに関して規定されているとおりに決定する。 式make-expression又は式style-expressionにおける特質の値を指定する式は,即時には評価しない。式は生成する流し込みオブジェクト又はスタイルオブジェクトの特質に関連付けられる。lambda式と同様に式中の自由変数の値は記憶され,式を評価する時点で用いる。現ノードも同様に記憶され,式の評価のために回復される。 流し込みオブジェクト木が,流し込みオブジェクトの木内での位置を決定するために必要なだけ構成された時点で,その流し込みオブジェクトに適用可能な特質の値を指定する式を評価する。 特質の値を指定する式は,二つの流し込みオブジェクトと関連して評価される。それらの流し込みオブジェクトは,値流し込みオブジェクト及び指定流し込みオブジェクトと呼ぶ。流し込みオブジェクトに関する特質の値は,値流し込みオブジェクト及び指定流し込みオブジェクトをともにその流し込みオブジェクトに等しくして評価を行い決定する。 (inherited-c) 任意の継承可能特質cについて,手続きinherited-cが存在する。この手続きは特質の値を指定する式の評価の中でだけ使用する。指定流し込みオブジェクトの流し込み親に関して特質cを指定する式を評価した結果を返す。この式は値流し込みオブジェクトを変えずに,指定流し込みオブジェクトを現指定流し込みオブジェクトの流し込み親に等しくして評価される。現指定流し込みオブジェクトが,流し込みオブジェクトの特質値として存在しているために流し込み親をもたない場合,特質値評価のためにはその特質をもつ流し込みオブジェクトを流し込み親として扱う。現指定流し込みオブジェクトが,構文generate-specification又は構文decoration-specificationで用いられているために流し込み親をもたない場合,それらの構文が出現するページモデル又は段集合モデルを利用している,流し込みオブジェクトpage-sequence又は流し込みオブジェクトcolumn-set-sequenceを特質値評価のための流し込み親とみなす。それら以外の場合で現指定流し込みオブジェクトが流し込み親をもたない場合,手続きinherited-cは,特質cの初期値を評価した結果を返す。この指定の評価の際には,指定流し込みオブジェクトが存在せず,継承 可能特質cに関して手続きinherited-cを呼び出した場合はエラーとする。 手続きinherited-cは,次の条件を満たす場合には動作が異なる。 (1) 指定流し込みオブジェクトの流し込み親が,クラスtable又はクラスtable-partに属し, (2) 値流し込みオブジェクトが,流し込みオブジェクトtable又は流し込みオブジェクトtable-partの配下の流し込みオブジェクトtable-cellであるか,さらにその流し込みオブジェクトtable-cellの内部にあり, (3) 流し込みオブジェクトtable又は流し込みオブジェクトtable-partが,特質Cを指定された流し込みオブジェクトtable-columnを含み,流し込みオブジェクトtable-cellと同じ段番号をもつ場合。 この場合inherited-cは,流し込みオブジェクトtable-column内の特質cの指定を評価した結果を返す。この式は,値流し込みオブジェクトを変えず,指定流し込みオブジェクトを表流し込みオブジェクトとして評価する。 (actual-c) 各継承可能特質cに関して,手続きactual-cは値流し込みオブジェクトに関する特質cの値を返す。この手続きは,特質の値を指定する式の評価内でだけ使用する。流し込みオブジェクトfに対する特質cの値を決定する過程で,流し込みオブジェクトfを値流し込みオブジェクトとして手続きactual-cを呼び出すとエラーとなる。この手続きの使用は,機能actual-characteriticを必要とする。 (char-script-case string1 obj1 ... stringn - 1 objn - 1 objn) 継承可能特質の値を指定する式の評価内でだけ使用する。引数の個数は,奇数でなければならない。最後以外の引数は,最初の要素が公開識別子を表わす文字列で,第二のの要素が任意のオブジェクトの対の列として解釈する。値流し込みオブジェクトがクラスcharacterでないか,値が#f以外のスクリプト特質をもつクラスcharacterの場合,手続きchar-script-caseは最後の引数を返す。それ以外の場合,スクリプト特質の値を,各引数対の最初の要素と比較する。比較の結果合致すれば,引数対の第二のの要素を返す。引数ペアのどれとも合致しなかった場合,最後の引数を返す。 備考 例えば,日本語テキストをフォーマットする場合,スクリプトがKatakana,Han,Latinの部分でフォントを変えること一般的である。 [182] application-characteristic-declaration = (declare-characteristic identifier string expression ) これは構文identifierが追加の継承可能特質だと宣言する。同時に手続きinherited-identifier及び手続きactual-identifierを宣言する効果ももつ。引数stringは,その特質の意味を規定する公開識別子とする。実装が指定された公開識別子を認識しない場合,その特質の使用を無視しなければならない。式expressionは,特質の初期値の指定となる。 [183] application-char-characteristic+property-declaration = (declare-characteristic identifier string-expression ) 構文identifierが,クラスcharacterの流し込みオブジェクトに追加の非継承可能特質だと宣言し,同時に構文変数identifierが追加の文字特性だと宣言する。引数stringは,特質の意味を規定する公開識別子とする。その特質の無指定時値は,流し込みオブジェクトの特質char:の値の文字の特性identifierの値となる。その特性の無指定時値は,式expressionとなる。この式は通常どおり評価する。特質の値が評価されるような特殊な方法で評価せず,現ノードに関して評価もしない。 [184] initial-value-declaration = (declare-initial-value identifier expression) 継承可能特質identifierの初期値が式expressionだと宣言する。これは構文application-characteristic-declarationで宣言した特質に対して使用してはならない。 12.4.7 流し込みオブジェクトの同期 この12.4.7で記述する機能は,機能pageを必要とする。 時には異なるストリームに属す流し込みオブジェクトの相対位置を制約する必要がある。例えば,脚注は対応する参照と同じページに制約されるだろうし,傍注は,その参照と垂直位置とが同じに制約されるだろう。この種の制約は,同期集合を生成することによって指定する。同期集合は流し込みオブジェクトの集合であって,それらの相対的な位置決めを制約する。流し込みオブジェクトは,それが所属する同期集合を記述する情報を含む。流し込みオブジェクトは,任意の数の同期集合に所属してよい。各同期集合にたいして,同期する流し込みオブジェクトと呼ぶ流し込みオブジェクトが存在しなければならない。同期する流し込みオブジェクトは,同期集合内のすべての流し込み先祖でなければならない。さらに,同期する流し込みオブジェクトの各ストリームには,多くとも一つの流し込みオブジェクトを,直接又はその子孫として同期集合内に含んでよい。 (sync sosofo1 sosofo2 #!key type: min: max:) 手続きsyncは,その要素として引数sosofo1及び引数sosofo2の両者の最初の要素をもつ同期集合を生成する。 手続きsyncは,次の条件を満たすsosofoを返す。 (1) 引数sosofo1の最初の流し込みオブジェクトの複製に同期情報を加えた流し込みオブジェクト。 (2) 引数sosofo1の残りの流し込みオブジェクトすべて。 (3) 引数sosofo2の最初の流し込みオブジェクトの複製に同期情報を加えた流し込みオブジェクト。 (4) 引数sosofo2の残りの流し込みオブジェクトすべて。 引数type:は,同期した流し込みオブジェクトをフォーマットして生成される領域の制約の型を指定するシンボルとする。引数min:,引数max:は,その制約の型をさらに詳細に指定する整数とする。引数max:の値は,引数min:の値以上でなければならない。引数min:及び引数max:の無指定時値は0とする。引数type:として許容する値は次のとおり。 (1) 値pageは,次の二つの領域を分離するページの数を指定する。 (a) 最初の同期した流し込みオブジェクトから作成された最初の領域。 (b) 二番目の同期した流し込みオブジェクトから作成された最初の領域。 そのページの数は,引数min:以上,引数max:以下でなければならない。同期する流し込みオブジェクトは,ページ列流し込みオブジェクト又はページ列流し込みオブジェクトを先祖にもつ段集合列流し込みオブジェクトでなければならない。ある領域からもう一つの領域へのページ数は,ページ列オブジェクトの含むすべてのページ間で,第二の領域のあるページの指標から,第一の領域のあるページの指標を引いた結果の数と定義する。 備考 引数min:が-1であって,引数max:が2の場合に,第二の同期した流し込みオブジェクトから生成された最初の領域が,最初の同期した流し込みオブジェクトから生成された領域を基準に,直前,同じ,次のページ,さらにその次のページのいずれかにあると制約される。 (2) シンボルspreadは,最初の同期した流し込みオブジェクトから生成された最初の領域から,第二の同期した流し込みオブジェクトから生成された最初の領域への見開きの数であって,引数min:以上,引数max:以下でなければならない。同期する流し込みオブジェクトは,クラスpage-sequence又はクラスpage-sequenceに属する流し込みオブジェクトを先祖にもつ,クラスcolumn-set-sequenceのオブジェクトでなければならない。 (3) シンボルcolumnは,最初の同期した流し込みオブジェクトから生成された最初の領域と,二番目の流し込みオブジェクトから生成された最初の領域が,同じ段副集合内にあり,その二つの領域の間にある段の数が引数min:以上,引数max:以下でなければならないと指定する。同期する流し込みオブジェクトは,クラスcolumn-set-sequenceに属さなければならない。 引数type:の無指定時はシンボルpageとする。 (side-sync list) 引数listは,二つ以上の型sosofoのオブジェクトからなるリストとする。手続きside-syncは,リスト内の各要素の最初の要素を含む同期集合を生成する。この手続きは,各型sosofoのオブジェクトの最初の要素が,同期情報を加えた複製で置き換えられること以外は同じリスト内の要素を連結した結果を返す。同期集合の各要素が生成する最初の領域は同じ段集合に配置され,必要であれば揃えモードによる差を調整して,流し込み方向に対して配置パス上で同じ位置に制約される。 12.5 共通データ型及び共通手続き 12.5.1 レイアウト主導の生成テキスト この12.5.1は,流し込みオブジェクト木内のある点に生成されるテキストの値が,何らかのフォーマット処理が済むまではわからない場合に用いる生成テキストの機能を述べる。この機能は,機能pageを必要とする。 備考 例えば,ページ番号付け,ページごとの脚注番号付け及び辞書のヘッダーに用いる。 生成テキストのその部分はそれぞれ,間接流し込みオブジェクトで表現する。間接流し込みオブジェクトは,流し込みオブジェクトのリストに対する指定を含む。間接流し込みオブジェクトをフォーマットした結果は,間接流し込みオブジェクトが指定する流し込みオブジェクトをフォーマットした結果となる。間接流し込みオブジェクトは,12.5.1.1の手続きだけを用いて作成され,通常の流し込みオブジェクト生成の機構を用いて作成されるわけではない。間接流し込みオブジェクトの内容は,それが指定する流し込みオブジェクトのリストと定義する。継承の目的に関しては,間接流し込みオブジェクトの内容はその間接流し込みオブジェクトを流し込み親とする。 データ型generated-objectは,式言語オブジェクトの指定とする。生成オブジェクトの核は,生成オブジェクトが指定するオブジェクトと定義する。生成オブジェクトの核は直接には利用できず,12.5.1.1内の手続きを用いることでだけ利用できる。 (generated-object? obj) 手続きgenerated-object?は,引数objが型generated-objectの場合に#tを返し,その他の場合に#fを返す。 12.5.1.1 間接sosofoの構成 (general-indirect-sosofo procedure generated-object ...) 手続きgeneral-indirect-sosofoは,一つの間接流し込みオブジェクトを含む型sosofoのオブジェクトを返す。その間接流し込みオブジェクトの内容は,引数generated-objectの核のリストに引数procedureを適用した結果の名前無しの型sosofoのオブジェクトとなる。手続きgeneral-indirect-sosofoは,機能general-indirectを必要とする。 (asis-indirect-sosofo generated-object) 手続きasis-indirect-sosofoは,引数generated-objectの核を内容とした一つの間接流し込みオブジェクトを含む型sosofoのオブジェクトを返す。引数generated-objectの核は型sosofoのオブジェクトとする。 備考 典型的には,生成オブジェクトは12.5.1.1 内の手続きの一つで作成される。 手続きnumber-indirect-sosofoは,その内容が引数generated-objectとなる一つの間接流し込みオブジェクトを含む型sosofoのオブジェクトを返す。その核は型integerでなければならず,文字列に変換した後,さらに型sosofoのオブジェクトに変換する。キーワード引数は,整数から文字列への変換を次のように制御する。 (1) キーワード引数format:は,手続きformat-numberと同じ方法で数値の変換に用いる形式を指定する。無指定時値は1とする。 (2) キーワード引数add:は,変換前に引数generated-objectの核に加える整数とする。無指定時値は0とする。 (3) キーワード引数multiple:は型integerとする。この整数の倍数でない整数は,空文字列に変換する。キーワード引数add:に指定する整数は,それが倍数になっているか検査する前に引数generated-objectの核に加える。無指定時値は1とする。 12.5.1.2 レイアウト番号付け 続く手続きは,すべて型generated-objectのオブジェクトを返し,その核は数値であってフォーマットの結果に依存するかもしれない。引数first-area-of-node:及び引数last-area-of-node:を許容する場合,数値は参照領域に相対で指定する。引数first-area-of-node:及び引数last-area-of-node:は,そのの一方だけを指定できる。引数first-area-of-node:が指定されている場合,その値はノードであって,参照領域はそのノードの主流し込みオブジェクトから結果として生成される最初の領域となる。引数last-area-of-node:が指定された場合,その値はノードでなければならず,参照領域はそのノードの主流し込みオブジェクトから結果として生成される最後の領域となる。引数first-area-of-node:及び引数last-area-of-node:は,次の条件に適合しない限り一方だけを指定する。 (1) 手続きが評価された時点で現ノードが存在している場合。その場合,参照領域は現ノードの主流し込みオブジェクトから結果として生成される最初の領域となる。 (2) 手続きが構文generate-specification内で使用された場合。その場合,参照領域は生成された領域となる。 (3) 手続きが修飾領域の作成に用いられた場合。この場合,参照領域は修飾領域となる。 段は領域ではないが,12.5.1.2では領域として取扱う。領域は,ある段が属する段集合内にあって,その領域が段抜きしている最初の段である場合に,その段内にあるとする。 主流し込みオブジェクトをもたない流し込みオブジェクトに対して,12.5.1.2で定義する手続きを主流し込みオブジェクトを必要とする形式で使用することはエラーとする。 (page-number #!key first-area-of-node: last-area-of-node:) 参照領域と同じか前にあるページの数を核とする型generated-objectのオブジェクトを返す。 (category-page-number #!key first-area-of-node: last-area-of-node:) 参照領域と同じか前にあって,参照領域を含むページ又は参照領域のページと同じ分類となるページの数を核とする型generated-objectのオブジェクトを返す。 (page-number-in-node nd) 次の条件を満たすページ数を核とする型generated-objectのオブジェクトを返す。 (1) 型generated-objectのオブジェクトが用いられている間接sosofoによって生成された最初の領域を含む又はそれ以前にあるページ。 (2) 引数ndに対応する流し込みオブジェクトから生成された領域を含むページ。 備考 この手続きは表のヘッダ又は表のフッタ内で用いうる。 (total-node-page-numbers nd) 引数ndに関連する主流し込みオブジェクトから生成された領域を含むページの総数を核とする型generated-objectのオブジェクトを返す。 (column-number #!key first-area-of-node: last-area-of-node:) 参照領域と同じ段集合内であって,参照領域と同じ又は以前にある段の数を核とする型generated-objectのオブジェクトを返す。 (footnote-number symbol #!key first-area-of-node: last-area-of-node:) 参照領域と同じ又は以前にあって,引数symbolで指定した型をもつ参照領域に最も近い先祖の子孫となる脚注領域の数を核とする型generated-objectのオブジェクトを返す。ここで,型はシンボルpage,シンボルpage-region,シンボルcolumnのいずれかとする。この目的に関して脚注領域は,流し込みオブジェクトcolumn-set-sequenceの脚注域に向けられたストリームの流し込みオブジェクトから作成された領域列内の最初の領域とする。 (line-number symbol #!key first-area-of-node: last-area-of-node:) 行領域と同じ又は以前にあって,引数symbolで指定した型をもつ参照領域に最も近い先祖の子孫となる行領域の数を核とする型generated-objectのオブジェクトを返す。引数symbolは,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルparagraphでなければならない。特質numbered-lines?:が#fの流し込みオブジェクトparagraphから生成された行領域はその数に含めない。 12.5.1.3 参照値  流し込みオブジェクトは,それと関連して参照値と呼ぶ多くの名前付きオブジェクトをもつことがある。 [185] reference-value-type-declaration = (declare-reference-value-type identifier ) 構文reference-value-type-declrationは,識別子identifierが参照値型の名前と宣言する。識別子identifierは,特質名又は構文make-expressionで指定可能なその他のキーワード引数であってはならない。 (first-area-reference-value symbol #!key default: inherit:) (last-area-reference-value symbol #!key default: inherit:) (last-preceding-area-reference-value symbol #!key default:) (all-area-reference-values symbol #!key unique: inherit:) これらの各手続きは,構文generate-specification内又は修飾領域の構成の場合に使用してよい。これらの手続きを使用する文脈は,関連領域リストと呼ぶ,それらの手続きが操作する領域のリストを決定する。 修飾領域の構成に手続きを使用する場合,関連領域リストはその修飾領域だけを含む。手続きが,構文column-specification内の構文header-specification,構文footer-specification又は構文footnote-separator-specification内の,構文generate-specificationで使用される場合,関連領域リストは同じ段集合領域コンテナに配置された領域,本文区域text内の領域及び段に重なる領域を含む。手続きが構文header-specification,構文footer-specification又は構文page-regeion-specification内の構文generate-specificationで使用した場合,関連領域リストは生成領域と同じページ区画領域コンテナにある領域を含む。 流し込みオブジェクトは,次のいずれかの場合に条件を満たす。 (1) 流し込みオブジェクトが参照値symbolをもつ。 (2) 流し込みオブジェクトの先祖が参照値symbolをもち,その先祖に特質inherit:が指定されており,その値が#fでない場合。 条件を満たす流し込みオブジェクトに関して有効な参照値は,その流し込みオブジェクトが参照値symbolをもつ場合には参照値symbolとし,それ以外の場合その流し込みオブジェクトの先祖であって参照値symbolをもつ最も近い流し込みオブジェクトの参照値とする。 手続きfirst-area-reference-valueは,次のいずれかの条件を満たす領域を生成する最初の有効な流し込みオブジェクトを探索するために,行きがけ探索を行う。 (1) 領域が関連領域リスト内の領域である場合。 (2) 領域が関連領域リスト内の領域に含まれる場合。 そして,その流し込みオブジェクトの有効な参照値を核とする生成オブジェクトを返す。流し込みオブジェクトが一つ以上のストリームをもつ場合,各ストリームを個別に探索する。探索の結果複数のストリームで流し込みオブジェクトが見つかった場合,レイアウト順で領域がより先にくる流し込みオブジェクトを返す。探索の結果,条件にあう流し込みオブジェクトが見つからなかった場合,引数default:の値を返す。その値は生成オブジェクトでなければならない。 手続きlast-area-reference-valueは,手続きfirst-area-reference-valueと同様に振る舞うが,その探索順序が反対になっている。 手続きlast-preceding-area-reference-valuは,流し込みオブジェクトであって,そのすべての領域が関連領域リスト内のすべての領域に先行する最後のものを探索するために流し込みオブジェクト木を行きがけ探索する。そして,その流し込みオブジェクトの有効な参照値を核とする生成オブジェクトを返す。探索の結果,条件にあう流し込みオブジェクトが見つからなかった場合,引数default:の値を返す。その値は生成オブジェクトでなければならない。 備考 この手続きは,手続きfirst-area-reference-valueの引数default:として使用されるかもしれない。 手続きall-area-reference-valuesは,条件を満たすすべての流し込みオブジェクトであって,関連領域リスト内の領域であるか又は関連領域リスト内の領域に含まれる領域を生成するものを探索するために流し込みオブジェクト木を行きがけ探索する。そして,各条件を満たす流し込みオブジェクトの有効な参照値を見つかった順に含むリストを核とする生成オブジェクトを返す。引数unique:が#fでない場合,手続きequal?の意味において同じ値は除かれる。 12.5.2 長さ指定 型length-specのオブジェクトは,現時点ではわからないかもしれないその他の長さとの線形の組合わせとして長さを指定する。型length-specの値が必要な場合,長さ,つまり次元が1の数量を常に用いてよい。 (+ length-spec ...) (- length-spec ...) (* length-spec x) (* x length-spec) (/ length-spec x) (/ x length-spec) これらの手続きは,数量における対応する手続きと同様に振る舞う。しかし,これらは引数のどれかが単なる長さでなく,型length-specであった場合,型length-specを返す。 (display size) この手続きは,特質値を指定する式の評価中でだけ使用する。値流し込みオブジェクトは,行外流し込みオブジェクトでなければならない。この手続きは,値流し込みオブジェクトの行外サイズを指定する長さ指定を返す。 12.5.3 修飾領域 この12.5.3の機能は,機能pageを必要とする。 領域コンテナは,修飾領域と呼ぶ一つ以上の他の領域で修飾されることがある。修飾領域は,被修飾領域に対する親領域の扱いに影響しない。特に被修飾領域の幅や高さを変えることはない。 (decoration-area sosofo #!key placement-point-x: placement-point-y: placement-direction:) 型decoration-areaのオブジェクトを返す。引数sosofoは,行内として用いることのできる任意のクラスの流し込みオブジェクト一つを指定できる。引数sosofoをフォーマットした結果は,修飾領域として用いる。修飾領域は,他の引数によって指定する配置点及び配置方向をもつ。引数sosofoによって生成された行内領域は,配置の結果その位置決め点が修飾領域の配置点にあり,その送り方向が修飾領域の配置方向と等しくなる。 引数placement-point-x:は,被修飾領域の左下角と修飾領域の配置点の間の被修飾領域のx方向に基づく距離を指定する型length-specのオブジェクトとする。引数placement-point-y:は,被修飾領域の左下角と修飾領域の配置点の間の被修飾領域のy方向に基づく距離を指定する型length-specのオブジェクトとする。引数place-ment-direction:は,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とし,被修飾領域の方向に相対で修飾領域の配置方向を与える。この場合,修飾領域の行進行方向は被修飾領域の配置方向となる。 (decorated-area-width) (decorated-area-height) 手続きdecorated-area-width及び手続きdecorated-area-heightは,それぞれ修飾される領域の幅と高さを指定する型length-specのオブジェクトを返す。それらは,修飾領域の引数placement-point-x:及び引数placement-point-y:の指定に用いてよい。 12.5.4 空き 12.5.4.1 行外空き 型display-spaceのオブジェクトは,行外領域間の望ましい空きを記述するために用いる。 (display-space? obj) 引数objが型display-spaceの場合に#tを返し,その他の場合に#fを返す。 (display-space length-spec #!key min: max: conditional?: priority:) 型display-spaceのオブジェクトを返す。引数length-specは,空きの基本サイズを指定する。引数min:及び引数max:は長さ指定であって,空きの最小サイズと最大サイズを指定する。これらはともに基本サイズを無指定時値とする。引数priority:は,整数又はシンボルforceのいずれかとする。無指定時値は0とする。大きい整数が高い優先度を示す。二つの行外空きが隣接する場合,片方がもう一方より高い優先度をもつ場合,優先度の高い空きの最小,基本,最大のそれそれのサイズの値を使用し,低い優先度の空きは無視する。優先度が同じだが,片方がより大きい基本サイズをもつ場合,大きい基本サイズをもつ空きの最小,名目,最大サイズを使用し,他方の空きを無視する。それ以外の場合,つまり,優先度と基本サイズが等しい場合,基本サイズ,最大サイズの小さい方,最小サイズの大きい方をそれぞれ使用する。優先度のforceは,他の任意の値の優先度より大きいと解釈する。しかし,双方がforceであった場合,名目値,最小値,最大値はそれぞれ加えられる。引数conditional:は,型booleanのオブジェクトとする。真の場合,空きは領域の先頭では除かれる。無指定時値は#tとする。 備考 これは改ページや改段の位置にきた空きを消すことを可能にする。 12.5.4.2 行内空き 型inline-spaceのオブジェクトは,行内領域間の望ましい空きを記述するために使用する。 (inline-space? obj) 引数objが型inline-spaceの場合に#tを返し,その他の場合に#fを返す。 (inline-space length-spec #!key min: max:) 型inline-spaceのオブジェクトを返す。引数length-specは,空きの基本サイズを指定する。引数min:及び引数max:は,長さ指定であって空きの最小サイズ及び最大サイズを指定する。どちらも基本サイズを無指定時値とする。 12.5.5 グリフ識別子 グリフ識別子は,型glyph-idのオブジェクトで表わす。 (glyph-id? obj) 引数objが,型glyph-idの場合に#tを返し,それ他の場合に#fを返す。 (glyph-id string) 手続きglyph-idは,公開識別子stringのグリフ識別子を返す。 [186] glyph-identifier = afii-glyph-identifier [187] afii-glyph-identifier = #A digit-10+ 構文afii-glyph-identifierは単一のトークンで,したがって#Aと数字の間にスペースは許されない。構文afii-glyph-identifierは,次の式が返すグリフ識別子を表わす。 (glyph-id "ISO/IEC 10036/RA//Glyphs::n") ここでnは構文afii-glyph-identifierに出現するものと同じ数字列であって,先行する0を除いたものとする。数字の示す値は1以上232-1でなければならない。 12.5.6 グリフ代替表 型glyph-subst-tableのオブジェクトは,グリフ識別子列をグリフ識別子列に一対一対応を示す。 (glyph-subst-table? obj) 引数objが,型glyph-subst-tableの場合に#tを返し,その他の場合#fを返す。 (glyph-subst-table list) 型glyph-subst-tableのオブジェクトを返す。引数listは,グリフ識別子列の対のリストを含む。結果のグリフ代替表においては,各対の最初の要素の代替が第二の要素となることを示す。対の最初の要素として出現しなかった任意のグリフ識別子の代替は,それ自身となる。グリフ識別子が一つ以上の対の最初の要素として出現した場合,そのグリフ識別子を最初の要素とする対の最初に現われた対の二番目の要素をその代替とする。 (glyph-subst glyph-subst-table glyph-id) 引数glyph-subst-table内の引数glyph-idに対応する代替のグリフ識別子を返す。 12.5.7 フォント情報 この12.5.7の機能は,機能fonto-infoを必要とする。 (font-property string list #!key size: name: family-name: weight: posture: structure: proportionate-width: writing-mode:) フォントリソース内の特性値を返す。引数name:,引数family-name:,引数weight:,引数posture,引数structure:又は引数proportionate-width:は,流し込みオブジェクトcharacterのfont-を前につけた対応する特性と同様にフォントを選択する。引数size:はフォントの大きさを指定する長さであって,特性値のISO/IEC 9541-1データ型がREL-RATIONALの場合に必要となる。引数stringは,特性名を指定する公開識別子を表わす文字列とする。引数listはリストであって,その要素が次のいずれかであるとする。 (1) 文字列。 (2) 三つの文字列及びオブジェクトからなるリスト。 返す特性値は,次の方法で決定する。最初に,有効な特性リストをフォントリソース特性リストとする。次に,各引数listの要素が有効特性リストをその中に入れ子になった特性リストに設定する。 (1) 引数listの要素が文字列であれば,その名前の特性値をもつ特性リストを有効特性リストに設定する。 (2) それ以外の場合,有効特性リストから第一の文字列と等しい名前をもつ特性を探索する。その特性値は,特性リストでなければならない。有効特性リストは,そのリスト内の特性の値に設定される。その特性は,名前が第二の文字列に等しく,その値が特性リストであって第三の文字列に等しい名前の特性を含み,その特性の値が,リストの第四の要素に等しい。 最後に,有効特性リスト内の名前が引数stringと等しい特性の値が返される。 オプションの引数writing-mode:は,シンボルleft-to-right,シンボルright-to-left及びシンボルtop-to-bottomのいずれかを値とする。シンボルleft-to-rightの値は,引数listの前に次のリスト置くのと同等である。 ("ISO/IEC 9541-1//WRMODES" "ISO/IEC 9541-1//WRMODE" "ISO/IEC 9541-1//WRMODENAME" "ISO/IEC 9541-1//LEFT-TO-RIGHT") 他の可能な値についても同様とする。 返すオブジェクトの型は,ISO/IEC 9541-1で定義する特性値のデータ型によって決定する。 (1) データ型BOOLEANの特性については,型booleanのオブジェクトを返す。 (2) データ型STRUCTURED-NAMEについては,ISO 9070の正規表現型を含む文字列を返す。 (3) データ型MATCH-STRING又はデータ型MESSAGEについては,文字列を返す。 (4) データ型OCTET,データ型INTEGER,データ型CARDINAL又はデータ型CODEについては,数値を返す。 (5) データ型REL-RATIONALについては,フォントサイズを用いて変倍して得られる長さを返す。 (6) データ型ANGLEについては,対応する角度を度数(degree)で返す。 (7) データ型OCTET-STRINGについては,整数リストを返す。 (8) 値リスト又は整列値リストについては,それらの要素を変換した結果を含むリストを返す。 その他の値の型は,エラーを発生する。 12.5.8 番地 番地オブジェクトは,ハイパテキストリンクのリンク先として用いる。番地オブジェクトは,一つ以上のオブジェクトの番地を示す。 (address? obj) 引数objが型addressの場合に#fを返し,その他の場合に#fを返す。 (address-local? address) 引数addressが現文書内に固有のものであれば#tを,その他の場合に#fを返す。 (address-visited? address) 引数addressが訪問済みであれば#tを,その他の場合に#fを返す。 (hytime-linkend) 型addressのオブジェクトを返す。現ノードは,ISO/IEC 10744で定義する体系形式clinkに適合する要素でなければならない。この番地は現ノードのリンク端を識別する。 (idref-address string) 引数stringは一つ以上のスペースで分離したトークンに分割され,そのトークンの一つを一意識別子とする要素を表わすアドレスを返す。 (current-node-address) 現ノードを示すアドレスオブジェクトを返す。 (entity-address string) 引数stringは一つ以上のスペースで分離したトークンに分割され,それらのトークンを名前とする複数の実体を示す型addressのオブジェクトを返す。 (sgml-document-address string1 string2) 引数string1はSGML文書のシステム識別子とし,引数string2はSGML文書内の一意識別子とする。 (node-list-address node-list) 引数node-list内のノードを示すアドレスオブジェクトを返す。この手続きは機能queryを必要とする。 備考 他のアドレシング機構を可能にするために,外部手続きを用いることもあるだろう。 12.5.9 カラー カラーは,常にカラー空間に基づいて指定しなければならない。 (color-space string arg ...) 型color-spaceのオブジェクトを返す。引数stringは,カラー空間ファミリーを識別する公開識別子を指定する。残りの引数はカラー空間ファミリへのパラメタを指定する。残りの引数の型と数はカラー空間ファミリに依存する。 (color-space? obj) 引数objがカラー空間の場合に#tを返し,その他の場合に#fを返す。 (color color-space arg ...) 手続きcolorは,型colorのオブジェクトを返す。引数color-spaceは,指定するカラーに関連するカラー空間とする。残りの引数の型と数は引数color-spaceが属するカラー空間ファミリに依存する。引数color-space以外の引数が指定されない場合,引数color-space内の無指定時カラーを返す。 備考 通常は黒となる。 (color? obj) 引数objがカラーの場合に#tを返し,その他の場合に#fを返す。 この規格では,次のカラー空間ファミリを定義する。 (1) ISO/IEC 10179:1996//Color-Space Family::Device Gray (2) ISO/IEC 10179:1996//Color-Space Family::Device RGB (3) ISO/IEC 10179:1996//Color-Space Family::Device CMYK (4) ISO/IEC 10179:1996//Color-Space Family::Device KX (5) ISO/IEC 10179:1996//Color-Space Family::CIE LAB (6) ISO/IEC 10179:1996//Color-Space Family::CIE LUV (7) ISO/IEC 10179:1996//Color-Space Family::CIE Based ABC (8) ISO/IEC 10179:1996//Color-Space Family::CIE Based A これらの各カラー空間の意味は,ISO/IE 10180の対応するカラー空間と同じとする。これらのカラー空間ファミリの一つを最初の引数として指定した場合に,手続きcolor-spaceが必要とする追加の引数は,対応するISO/IEC 10180のカラー空間オブジェクトのパラメタによって決定される。ISO/IEC 10180カラー空間オブジェクトがパラメタをもたない場合,手続きcolor-spaceは追加の引数をとらない。ISO/IEC 10180カラー空間オブジェクトが型Dictionaryのパラメタを一つもつ場合,手続きcolor-spaceはその辞書で出現可能な各キーに対応してキーワード引数を受け付ける。各キーワードの名前は辞書キーの名前から派生し,名前の先頭以外にあって小文字が後続する各大文字の前にハイフンを挿入し,全体を小文字に対応させることで得られる。各キーワード引数の型は,対応する辞書値の型によって決定する。 (1) ISO/IEC 10180型が数値の場合,引数型は数値となる。 (2) ISO/IEC 10180型が手続きの場合,引数型は手続きとなる。 (3) ISO/IEC 10180型が数値ベクタへの参照の場合,引数型は同じ長さをもつ数値リストとなる。 (4) ISO/IEC 10180型が手続きベクタへの参照の場合,引数型は同じ長さをもつ手続きリストとなる。 第一引数がISO/IEC 10180で定義するカラー空間ファミリに属するカラー空間の場合,手続きcolorが必要とする追加の引数の数及び型は,オペレータSetColorがISO/IEC 10180のカラー空間に対応するカラーを指定するために必要とする引数の数と型によって決定される。これらの追加の引数は,すべてキーワード引数ではなく必要引数とする。これらの型はISO/IEC 10180型から手続きcolor-spaceの引数と同じ方法で決定される。各カラー空間の無指定時カラーは,対応するISO/IEC 10180カラー空間についてオペレータSetColorSpaceの実行直後にもつと定義された値によって決定される。 備考 カラー空間内の手続き引数を伴って指定されたカラーは,手続き引数をもたないカラー空間に指定されたカラーにデバイス依存した方法で変換してもよい。したがって,ISO/IEC 10180デバイスへの出力を伴うスタイル言語を実装するに当たって,任意の式をISO/IEC 10180で定義する言語にコンパイルする必要はない。 12.6 流し込みオブジェクトクラス 12.6.1 列流し込みオブジェクトクラス(Sequence) 流し込みオブジェクトクラスsequenceはフォーマットされ,その結果,子が生成する領域を結合したものを生成する。列流し込みオブジェクトクラスは,単一の主ポートをもつ。その子は,行内又は行外となってよい。 備考 流し込みオブジェクトクラスsequenceは,継承可能特質を指定するのに役立つ。例えば,特質font-posture:の指定をもつ列流し込みオブジェクトクラスは,段落内の強調句要素のために構築される場合もある。 流し込みオブジェクトクラスのポートは,ある列の中のすべての流し込みオブジェクトクラスを受け付ける場合に限って,その列流し込みオブジェクトクラスを受け付ける。 12.6.2 行外グループ流し込みオブジェクトクラス(Display-group) 流し込みオブジェクトクラスdisplay-groupはフォーマットされ,そのそれぞれの子が生成する領域を結合したものを生成する。流し込みオブジェクトクラスdisplay-groupは,単一の主ポートをもつ。その子は,すべて行外でなければならず,それ自体も行外となる。 備考 したがって,段落においてクラスdisplay-groupは,内容がなくとも改行を引き起こす。 次の特質を適用可能とする。 (1) 特質coalesce-id:は,流し込みオブジェクトの重複を制御する文字列又は#fを指定する。この特質は,継承されない。無指定時値は,#fとする。同一の特質coalesce-idをもつ複数の流し込みオブジェクトの領域が,段集合領域の同一の区域top-float,区域bottom-float又は区域footnoteに流し込まれる場合,二番目以降の流し込みオブジェクトによる領域は捨てられる。#f以外の値は,段集合の区域top-float,区域bottom-float又は区域footnoteに流し込まれる場合に限り許される。 (2) 特質position-preference:は,#f,シンボルtop又はシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の区域top-float又は区域bottom-floatの両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域を,指定した区域だけに流し込むか,そのような制限を行わないかを指定する。この特質は継承しない。無指定時値は,#fとする。 (3) 特質space-before:は,型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (4) 特質space-after:は,型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (5) 特質keep-with-previous?:は,型booleanであって,流し込みオブジェクトの直前の流し込みオブジェクトと同じ領域内への保持を指定する。この特質は継承しない。無指定時値は,#fとする。 (6) 特質keep-with-next?:は,型booleanであって,流し込みオブジェクトの直後の流し込みオブジェクトと同じ領域内への保持を指定する。この特質は継承しない。無指定時値は,#fとする。 (7) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (8) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (9) 特質keep:には,次のいずれかを指定する。 (a) 値#tは,この流し込みオブジェクトから生成する領域を,可能な最も小さい領域内で一緒に保持することを意味する。 (b) シンボルpageは,流し込みオブジェクトから生成する領域を,同じページ内に配置することを示す。この場合,流し込みオブジェクトは,流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトから生成する領域を,同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは,流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,流し込みオブジェクトから生成する領域を,同じ段集合内に配置し,それぞれの領域が抜く最初の段を同じにすることを示す。 (e) 値#fは,この特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。 (10) 特質may-violate-keep-before?:は,型booleanとする。値が真の場合,先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクト及び直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 (11) 特質may-violate-keep-after?:は,型booleanとする。値が真の場合,先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクト及び直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 12.6.3 単純ページ流し込みオブジェクトクラス(simple-page-sequence) この12.6.3の機能は,機能simple-pageを必要とする。 流し込みオブジェクトクラスsimple-page-sequenceは,フォーマットの結果としてページ領域列を生成する。クラスsimple-page-sequenceの流し込みオブジェクトの主ポートは,すべての行外流し込みオブジェクトを受け付ける。 備考 流し込みオブジェクトsimple-page-sequenceは,非常に単純なページレイアウト機能を提供したい処理系のために用意されている。より複雑なページレイアウトは,流し込みオブジェクトpage-sequence及び流し込みオブジェクトcolumn-set-sequenceによって利用できる。 流し込みオブジェクトsimple-page-sequenceは,他のすべての流し込みオブジェクトクラスの内容として現れてはならない。流し込みオブジェクトsimple-page-sequenceは,ページ番号を除き固定のテキストを含む1行だけのヘッダ及びフッタをもってよい。 備考 文書は,複数の流し込みオブジェクトsimple-page-sequencesを含むことができる。例えば,文書の各章が別の流し込みオブジェクトsimple-page-sequencesとなることがある。この方法を用いることによって,ヘッダ行又はフッタ行に章のタイトルを置くこともできる。 ページは,上から下に流し込む。流し込みオブジェクトsimple-page-sequenceの内容の特質display-sizeは,特質page-width:の値から特質left-margin:の値及び特質right-margin:の値を引いたものとなる。 流し込みオブジェクトsimple-page-sequenceは,次の特質をもつ。 (1) 特質page-width:は,型lengthであってページの全体の幅を指定する。初期値は処理系依存とする。 (2) 特質page-height:は,型lengthであってページの全体の高さを指定する。初期値は処理系依存とする。 (3) 特質left-margin:は,型lengthであって左余白を指定する。初期値は0ptとする。 (4) 特質right-margin:は,型lengthであって右余白を指定する長さとする。初期値は0ptとする。 (5) 特質top-margin:は,型lengthであってページの上からクラスsimple-page-sequenceの内容を流し込む領域コンテナの上辺までの距離を指定する。初期値は0ptとする。 備考 ヘッダ行は,上余白内に置かれる。 (6) 特質 bottom-margin:は,型lengthであってページの下からクラスsimple-page-sequenceの内容のを流し込む領域コンテナの下辺までの距離を指定する。初期値は0ptとする。 備考 フッタ行は,下余白の中の置かれる。 (7) 特質header-margin:は,型lengthであってページの上からヘッダ行のための配置パスまでの距離を指定する。初期値は0ptとする。 (8) 特質footer-margin:は,型lengthであってページの下からフッタ行のための配置パスまでの距離を指定する。初期値は0ptとする。 (9) 特質left-header:は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトであって,ヘッダ行においてページの左余白に寄せられる。この特質は継承されない。無指定時値は,空の型sosofoのオブジェクトとする。 (10) 特質center-header:は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトであって,ヘッダ行においてページの左マージンと右マージンの間の中央に置かれる。この特質は継承されない。無指定時値は空の型sosofoのオブジェクトとする。 (11) 特質right-header:は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトであって,ヘッダ行においてページの右余白に寄せられる。この特質は継承されない。無指定時値は空の型sosofoのオブジェクトとする。 (12) 特質left-footer:は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトであって,フッタ行においてページの左余白に寄せられる。この特質は継承されない。無指定時値は空の型sosofoのオブジェクトとする。 (13) 特質center-footer:は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトであって,フッタ行においてページの左余白と右余白の間の中央に置かれる。この特質は継承されない。無指定時値は空の型sosofoのオブジェクトとする。 (14) 特質right-footer:は,行内流し込みオブジェクトだけを含むラベルなしの型sosofoのオブジェクトであって,フッタ行においてページの右余白に寄せられる。この特質は継承されない。無指定時値は空の型sosofoのオブジェクトとする。 (15) 特質writing-mode:はシンボルであって,left-to-right又はright-to-leftのいずれかを値とする。これは,ヘッダ行及びフッタ行の表記方向を決める。初期値はleft-to-rightとする。 (page-number-sosofo) 間接sosofoを返す。その内容は,流し込みオブジェクトcharacterの列であって,間接sosofoによって指定された間接流し込みオブジェクトから生成された領域が出現するページのページ番号を示す流し込みオブジェクトcharacterの列とする。 (current-node-page-number-sosofo) 間接sosofoを返す。その内容は,現ノードの主流し込みオブジェクトのページ番号を示す流し込みオブジェクトcharacterの列とする。 備考 これは,process-element-with-idと一緒に相互参照を扱うために用意されている。 12.6.4 ページ列流し込みオブジェクトクラス(page-sequence) クラスpage-sequenceの流し込みオブジェクトは,フォーマットされてページ領域の列を生成する。ページ領域の構造及び配置はページモデルによって制御される。クラスpage-sequenceの流し込みオブジェクトは,次の特質をもつ。 (1) 特質initial-page-models:は,初期ページのために使用するページモデルのリストとする。初期値は空のリストとする。 (2) 特質repeat-page-models:は,初期ページの後のページのために使用するページモデルのリストとする。 (3) 特質force-last-page:は,#f,シンボルfront又はシンボルbackのいずれかを値とし,ページ列の最後のページに要求される型を指定する。最後のページが要求された型でない場合,追加のスペースページが生成される。#fの値は,最後のぺージがどちらの型でもかまわないことを示す。初期値は#fとする。 (4) 特質force-first-page:は,#f,シンボルfront又はシンボルbackのいずれかを値とし,ページ列の最後のページに要求される型を指定する。値が#fでない場合,親の流し込みオブジェクトは流し込みオブジェクト木の根でなければならず,直前に流し込みオブジェクトがある場合,それはpaeg-sequence型でなければならない。直前のページ列において特質force-last-page:の値が#fでない場合,この特質の指定値と反対の型でなければならない。直前のpage-sequenceの最後のページがこの特質として指定された値と反対の型でなければ,直前のpage-sequenceは追加の空白ページを生成しなければならない。直前に流し込みオブジェクトがなく,値が#fではない場合,最初のページの指定された型が特質first-page-type:によって判別される実際の型ではなければ,誤りとする。初期値は#fとする。 (5) 特質first-page-type:は,シンボルfront,シンボルback又はシンボルparentのいずれかを値とする。シンボルfront及びシンボルbackは,流し込みオブジェクトpage-sequenceの最初のページが,表ページか裏ページかを指定し,シンボルparentは,最初のページの型が親の流し込みオブジェクトによって判定されることを示す。初期値はシンボルparentとする。シンボルparentの値は,親の流し込みオブジェクトが根流し込みオブジェクトである場合にだけ許される。この場合,直前の流し込みオブジェクトがある場合,それは流し込みオブジェクトpage-sequenceでなければならず,直前の流し込みオブジェクトpage-sequenceの最後のぺージがbackページ(frontページ)だった場合,最初のページはfrontページ(backページ)となる。直前に流し込みオブジェクトがない場合,最初のページはfrontページでなければならない。この特質は追加ぺージの生成を引き起こさない。これは,単にこのページが印刷され製本されるときに特定の型となることを示すにすぎない。特質force-first-page:が#fでなければ,値はparentでなければならない。 備考 この情報は,ページのどのページ対が見開きとなるかを判別することを可能にする。 (6) 特質blank-back-page-model:は,最後のページがbackページであって,特質force-last-page:又は特質force-first-page:が要求する場合にだけ,そのページに使用するページモデルとする。特質の値が#fの場合,通常のページモデルを最後のページにも使用する。初期値は#fとする。 (7) 特質blank-front-page-model:は最後のページがfrontページで,特質force-last-page:又は特質force-first-page:が要求する場合にだけ,そのページに使用するページモデルとする。特質の値が#fの場合,通常のページモデルを最後のページにも使用する。初期値は#fとする。 (8) 特質justify-spread?:は,見開きの各ページの下辺の調整を指定する型booleanのオブジェクトとする。 (9) 特質page-category:は,この流し込みオブジェクトpage-sequenceの結果となるページ領域のカテゴリを指定する。これは,手続きequal?が定義されている任意の式言語オブジェクトであってよい。領域のカテゴリは,12.5.1に定義する手続きが使用する。 (10) 特質binding-edge:は,シンボルleft,シンボルright,シンボルtop又はシンボルbottomの一つであって,綴じられるfrontページの端を指定する。これは,ページの辺が内側(外側)になるか否かに影響する。初期値はleftとする。 page-sequenceによって生成されるすべてのページは,該当するpage-modelをもつ。 流し込みオブジェクトpage-sequenceのポートはページモデルによって決まる。 12.6.4.1 ページモデル(page-model) 型page-modelは,領域の可能な階層の集合の指定とする。 (page-model? obj) 引数objが,型page-modelであれば#tを返し,その他の場合#fを返す。 [188] page-model-definition = (define-page-model page-model-name [[ page-region-specification+ | width-specification | height-specification | filling-direction-specification? | decoration-specification* ]]) [189] page-model-name = variable 構文define-page-modelは,型page-modelのオブジェクトを構文変数page-model-nameで指定した識別子に束縛する。 最上位の領域は,ページ領域とする。ページ領域は,ページ区画(page-region)と呼ぶ複数の部分領域を含む。ページ領域のレイアウトの順序は,構文page-model-definitionにおける指定順序に対応する。ページ区画は,重なりがあってもよい。 [190] page-region-specification = (region [[ x-origin-specification | y-origin-specification | width-specification | height-specification | decoration-specification* | filling-direction-specification? | header-specification? | footer-specification? | page-region-flow-map? ]]) 構文page-region-specificationは,固定の座標軸をもつ領域コンテナを指定する。領域コンテナは,流し込みの結果ページ区画を生成する。各ページ区画は,単一の支配的流し込み方向をもつ。 備考 Included-container-area流し込みオブジェクトは,異なる流し込み方向を使用してよい。 図15に示すように,複数のpage-regionを使って,同じページで異なる配置方向で行外領域をもつことが可能となる。
[191] page-region-flow-map = (flow port-specifier+) 構文page-region-flow-mapは,識別子port-specifierで識別するポートに向けられた流し込みオブジェクトをフォーマットすることによって得られる領域が,このページ区画に割当てられる可能性のあることを指定する。 構文page-region-flow-mapがない場合,(flow #f)を無指定時解釈とする。識別子port-specifierが,構文page-model-definitionの中の構文page-region-specificationの中の複数の構文page-region-flow-map中の現れる場合,構文page-region-specificationが構文page-model-definition中に現れる順序でページ区画に流し込まれる。 [192] port-specifier = identifier | #f 識別子port-specifierは識別子であって,名前でポートを指定する。#fの値は,主ポートを指定する。 [193] header-specification = (header generated-area-clauses ) 構文header-specificationは,ページ区画又は段の最初に生成される領域を指定する。 [194] footer-specification = (footer generated-area-clauses ) 構文footer-specificationは,ページ区画又は段の最後に生成される領域を指定する。 [195] generated-area-clauses = [[ height-specification? | width-specification? | filling-direction-specification? | contents-alignment-specification? | generate-specification ]] 構文generated-area-clausesは,生成する領域を指定する。 [196] generate-specification = (generate expression ) 式expressionは評価の結果,名前無しの型sosofoのオブジェクトになり,行外流し込みオブジェクトだけを指定する。 [197] x-origin-specification = (x-origin expression) 式expressionは評価の結果,型lengthのオブジェクトとなり,親の座標処理系における領域コンテナの起点のx座標を指定する。 [198] y-origin-specification = (y-origin expression ) 式expressionは評価の結果,型lengthのオブジェクトとなり,親の座標処理系における領域コンテナの起点のy座標を指定する。 [199] width-specification = (width expression ) 式expressionは評価の結果,型lengthのオブジェクトとなり,親の座標処理系における領域コンテナの幅(xの正方向の大きさ)を指定する。 [200] height-specification = (height expression ) 式expressionは評価の結果,型lengthのオブジェクトとなり,親の座標処理系における領域コンテナの高さ(yの正方向の大きさ)を指定する。 [201] decoration-specification = (decorate expression) 式expressionは評価の結果,オブジェクトdecoration-areaとなる。この指定をもつ領域は,12.5.3 で説明されるとおりオブジェクトによって装飾される。 [202] filling-direction-specification = (filling-direction expression ) 式expressionは評価の結果,シンボルleft-to-right,シンボルright-to-left又は シンボルtop-to-bottomのいずれか一つになり,領域コンテナの流し込み方向を指定する。流し込み方向が構文page-regionで指定されない場合,構文page-modelから継承される。構文page-region及び構文page-modelの両方にその指定がない場合,エラーとする。 [203] contents-alignment-specification = (contents-alignment expression ) 式expressionは評価の結果,シンボルend,シンボルcenter又はシンボルjustifyのいずれか一つになり,領域コンテナ内の子領域の揃えを領域コンテナの流し込み方向で指定する。無指定時値はシンボルstartとする。 12.6.5 段集合列流し込みオブジェクトクラス(column-set-sequence) 流し込みオブジェクトcolumn-set-sequenceは,フォーマットの結果,領域column-setの列を生成する。領域column-setは行外領域とする。領域column-setは,領域コンテナを生成し,そこに流し込むことによって生成される。領域column-setは,平行な段の集合を含む。通常,領域column-setは,ページ区画(page-region)に流し込む,他の領域column-setに流し込んでもよい。それぞれの領域column-setの構造及び位置決めは,それが適合する型column-set-modelのモデルによって制御する。流し込みオブジェクトcolumn-set-sequenceは,常に行外となる。 流し込みオブジェクトcolumn-set-sequenceは,次の特質をもつ。 (1) 特性column-set-model-map:は,第一の要素に型page-modelのオブジェクトを,第二の要素に流し込みオブジェクトcolumn-set-modelをもつリストのリストとする。この流し込みオブジェクトcolumn-set-sequenceらの領域が,ある領域におかれ,その領域の最も近いページ区画である祖先が指定されたページ区画を使用するときは,必ず指定された流し込みオブジェクトcolumn-set-modelを用いなければならない。初期値は空のlistとする。 (2) 特質column-set-model:は,型column-set-modelのオブジェクト又はのいずれか#fを値とする。段集合モデルの場合,特質column-set-model-map内に指定された段集合モデルが適用できない場合に使用する無指定時の段集合とする。#fの場合,無指定時モデルはないと解釈する。値として#fを指定した場合に,特質column-set-model-mapの値に含まれないページモデルのページ区画への結果領域の配置はエラーとなる。初期値は#fとする。 (3) 特質position-preference:は,#f,シンボルtop又はシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の区域top-float又は区域bottom-floatの両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域を,指定した区域だけに流し込むか,そのような制限を行わないかを指定する。この特質は継承しない。無指定時値は,#fとする。 (4) 特質span:は,正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。この特質は,流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文区域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。 (5) 特質span-weak?:は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5 参照のこと。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられ,特質span:が1を越える場合に限って適用する。初期値は#fとする。 (6) 特質space-before:は,型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (7) 特質space-after:は,型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (8) 特質keep-with-previous?:は,型booleanであって,流し込みオブジェクトの直前の流し込みオブジェクトと同じ領域内への保持を指定する。この特質は継承しない。無指定時値は,#fとする。 (9) 特質keep-with-next?:は,型booleanであって,流し込みオブジェクトの直後の流し込みオブジェクトと同じ領域内への保持を指定する。この特質は継承しない。無指定時値は,#fとする。 (10) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (11) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (12) 特質keep: 次のいずれかを指定する。 (a) 値#tは,この流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,流し込みオブジェクトから生成する領域を,同じページ内に配置することを示す。この場合,流し込みオブジェクトは,流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトから生成する領域を,同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは,流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,流し込みオブジェクトから生成する領域を,同じ段集合内に配置し,それぞれの領域が抜く最初の段を同じにすることを示す。 (e) 値#fは,この特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。 (13) 特質may-violate-keep-before?:は,型booleanとする。値が真の場合,先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクト及び直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 (14) 特質may-violate-keep-after?:は,型booleanとする。値が真の場合,先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクト及び直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 流し込みオブジェクトcolumn-set-sequenceは,その段集合モデルが含む構文column-subset-flow-map内に列挙した各ポートをもつ。 12.6.5.1 段集合モデル(column-set-model) 段集合モデルは,それぞれの段集合に対して可能な階層を指定する。段集合及び段部分集合の可能な段構成の例については,図16及び図17を参照のこと。
階層における最上位レベルの領域は,段集合領域とする。段集合領域は,流し込み方向をもたなければならない。構文column-set-model-definitionが,構文filling-direction-specificationをもたない場合,親領域の流し込み方向を使用する。段集合領域の大きさは,流し込み方向に対して直交する方向では固定となる。構文width-specification又は構文height-specificationを用いて,大きさを固定できる。又はその領域の配置方向(親領域の流し込み方向)に対して直交する方向も固定となる。流し込み方向の段集合領域の大きさは固定してもよく,その中に流し込まれる領域に応じて伸縮してもよい。 段集合を生成する領域コンテナは,通常の領域コンテナよりも複雑な方法で流し込みが行われる。領域は,いくつもの異なる制約を満たす方法で段集合内に配置される。最も基本的な制約は,領域は重なり合ってはならないというものとする。この制約は修飾領域には適用されない。 段集合領域に配置された領域上で定義された部分的な順序がある。これをレイアウト順と呼ぶ。 備考 レイアウト順序は,領域を読む順序に対応する。 領域コンテナの充填に関する基本的な制約とは,段集合領域コンテナに配置される二つの領域が同じストリームから出てくる場合,そのレイアウト順がストリームの順序と同じになるように配置されなければならない。段集合領域は,流し込み方向と平行な方向に幾何学的に分割され,複数の段になる。 備考 領域がある方向に分割されると言う場合,分割線がその方向に向いており,その分割線に沿って分割を行うことを意味する。 段は,領域コンテナではない。各段は,流し込み方向に垂直な方向に対して固定された広がりをもつ。各段は,正確に一つの段部分集合のメンバとする。段のレイアウト順は,構文column-subsetの構文column-specificationの順序とする。異なる段集合中の段の間で定義されるレイアウト順序はない。 備考 このため,レイアウト順序は半順序となる。
段部分集合は,段部分集合における段が幾何学的に他の連続する二つの段の間になければ,段抜き可能として定義される。例として,図19を参照のこと。
段集合領域に配置されるそれぞれの領域は,単一の段部分集合に関連付けられている。段集合領域の流し込み方向がシンボルtop-to-bottomの場合,段集合領域に配置されるそれぞれの領域は,段部分集合の中の段の左端にその左端が揃えられ,同じ段部分集合の中の段の右端にその右端が揃えられる方法で配置されなければならない。段集合領域の流し込み方向が,シンボルleft-to-right又はシンボルright-to-leftの場合,段部分集合の中の段の上端にその上端が揃えられ,同じ段部分集合の中の段の下端にその下端が揃えられる方法で配置する。領域は,段部分集合が段抜き可能な場合にだけ複数の段を抜いてよい。領域が抜く段部分集合中の段の数は,その領域が出てきた流し込みオブジェクトの特質span:の値と等しくなければならない。 段集合領域に配置される領域は,流し込み方向に垂直な方向における大きさが,要求された数の段を正確に抜くだけの大きさになる方法で生成されなければならない。言い換えれば,領域の行外サイズは,段抜きの対象となる最初の段の片方の端から最後の段の反対方向の端の間の間隔と等しくなければならない。 備考 これは,領域コンテナに配置される領域は,その領域の配置方向に垂直な方向の大きさが,領域コンテナのの流し込み方向に垂直な方向の大きさと等しくして生成する一般原則に対する例外とする。 段集合領域に配置されるそれぞれの領域は,区域でラベル付けが行われる。この区域は,他の領域に相対的な配置を制約する。許可された区域は,上部浮動区域(top-float),本文テキスト区域(body-text),下部浮動区域(bottom-float)及び脚注区域(footnote)とする。一つの区域でラベル付けられた領域は,このリストの後に出てくる区域でラベル付けられた領域よりも,流し込み方向で先に出現しなければならない。ただし,両方の領域で段抜きされる段がない場合は除く。例を図20に示す。
footnote区域でラベル付けられた領域は,正確に一つの段を抜かなければならない。 備考 複数段における(すべての段にまたがる)全体幅をもつ脚注は,入れ子の段集合(nested-column-set)を使用して実現できる。 複数の段を抜く領域は,その領域が出てきた流し込みオブジェクトの特質span-weak?:の値に応じて弱い段抜き又は強い段抜きを行う。強い段抜きを行う領域は,レイアウト順において次に示す領域の後にくる。 (1) その領域と同じ段部分集合にある領域。 (2) 流し込み方向で幾何学的にその領域の前にくる領域。 (3) その領域の段抜きに完全に含まれる段抜きをもつ領域。 (4) その領域と同じ区域でラベル付けられた領域。 弱く複数の段を抜く領域は,レイアウト順において,それが段抜きする最初の段だけを占めた場合に前にくることになる領域の後に続くするものとして定義される。 二つ以上の段部分集合を結合することもある。結合した段部分集合は,同じ数の段をもっていなければならない。領域が,複数の段部分集合を強く抜く場合に,その段部分集合と結合したそれぞれの段部分集合のレイアウト順は,あたかも空の領域が生成され,段を抜く領域と流し込み方向において同じ位置,同じ大きさで配置され,結合した段階集合の対応する段を抜くかのように修正されなければならない。この領域は,段を抜く領域と重なり得る。 備考 傍注を含む段の列は,通常その傍注が参照するテキストを含む段の列と結合している。 段を抜く領域が,結合した段集合内の段抜きを行わない領域と手続きside-syncを使用して同期を取る場合,次の条件を満たす結んだ段副集合の最初の段に配置されなければならない。 (1) 他の段部分集合においてそれに対応する段は,その領域によって段抜きされている。 (2) その領域は,段抜きを行う領域によって覆われていない。 [204] column-set-model-definition = (define-column-set-model variable [[ column-subset-specification* | fill-out-specification? | tied-column-subset-specification* | filling-direction-specification? | width-specification? | height-specification? | decoration-specification* ]] ) 構文column-set-model-definitionは,変数variableを型column-set-modelのオブジェクトと定義する。 (column-set-model? obj) 引数objが,型column-set-modelであれば#tを,その他の場合に#fを返却する。 [205] fill-out-specification = (fill-out expression) 式expressionは,評価の結果として型booleanのオブジェクトとなる。その値が,#tの場合,各段集合領域は,配置する領域が許可する最大の大きさまで,流し込み方向において流し込みされる。 [206] column-subset-specification = (column-subset [[ column-specification+ | column-subset-flow-map | top-float-space-below-specification? | bottom-float-space-above-specification? | balance-specification? | justify-specification? | justify-limit-specification? | justify-last-limit-specification? | length-deviation-specification? | length-decrease-order-specification? | align-lines-specification? ]]) 構文column-set-modelの各構文column-subsetにおいて,指定column-subset-specificationが必要となる。 [207] column-subset-flow-map = (flow ((port-specifier zone-name+ ))+ ) [208] zone-name = top-float | body-text | bottom-float | footnote 構文column-subset-flow-mapは,指定要素port-specifierに流し込まれた流し込みオブジェクトからの結果領域が,指定要素zone-nameで指定した名前のいずれかを値とするラベルをもつことを指定する。一つの指定要素port-specifierに,複数の指定要素zone-nameを指定できるのは,指定要素zone-nameに指定する値がシンボルtop-float及びシンボルbottom-floatの場合だけとする。 [209] top-float-space-below-specification = (top-float-space-below expression ) 式expressionは評価の結果として,追加するスペースの大きさを指定する型display-spaceのオブジェクトになる。 区域top-floatの領域によって段抜きされる流し込みオブジェクトcolumn-setのそれぞれの段に対して,指定された大きさのスペースは,その段を抜き区域 top-float の中にあるすべての領域の直後に追加されなければならない。 [210] bottom-float-space-above-specification = (bottom-float-space-above expression) 式expressionは評価の結果として,追加するスペースの大きさを指定する型display-spaceのオブジェクトになる。区域bottom-floatの領域によって段抜きされる流し込みオブジェクトcolumn-setのそれぞれの段に対して,指定された大きさのスペースは,その段を抜き区域bottom-floatの中にあるすべての領域の直前に追加されなければならない。 [211] balance-specification = (balance? expression) 式expressionは評価の結果として,型booleanのオブジェクトとなる。値#tは,その段集合列が生成する最後の段集合内の段部分集合が釣り合うことを示す。値#fは,釣り合わないことを示す。段部分集合が釣り合う場合,段部分集合内のすべての段に均等にスペースが割振られなければならない。段部分集合が平衡終了しない場合,逆の順序で段に割振られなければならない。段部分集合においての無指定時値は,#fとする。 [212] justify-specification = (justify? expression) 式expressionは評価の結果として,段部分集合の両端揃えを指定する型booleanのオブジェクトとなる。段部分集合を両端揃えしない場合,余ったスペースは,その行外領域内で指定された許容スペースの最大最小値に従い,段部分集合内の領域の前後に分配される。両端揃えする場合は,すべての余ったスペースは,それぞれの段の最後に分配される。無指定時値は,#fとする。段部分集合は,構文fill-out-specificationにおいて段集合への最大の大きさの流し込みを指定している場合にだけ,両端揃えをしてよい。 [213] justify-limit-specification = (justify-limit expression) 式expressionは,評価の結果0から100の間の数値となる。段における余ったスペースの量を段の総量に対するパーセント値で表したものであって,ここで指定した値を超える場合,段は両端揃えされない。無指定時値は100とする。 [214] justify-last-limit-specification = (justify-last-limit expression) 式expressionは,評価の結果0から100の間の数値となる。段集合列内の最後の段集合内の段における余ったスペースの量を段の総量に対するパーセント値で表したものであって,この式が返却する数値を超える場合,段は両端揃えされない。無指定時値は0とする。 [215] length-deviation-specification = (length-deviation expression) 式expressionは,評価の結果正の型lengthのオブジェクトとなる。段部分集合が両端揃えされるか又は釣り合う場合に,段の長さは,この量を上限として異なる場合がある。 [216] length-decrease-order-specification = (length-decrease-order expression) 式expressionは,評価の結果,次のいずれかの値をとる。 (1) シンボルforward。複数の段を比較した場合に,順方向に進むにつれ,その長さが増加しないと指定する。 (2) シンボルbackward。複数の段を比較した場合に,逆方向に進むにつれ,その長さが増加しないと指定する。 (3) #f。段の長さの相対関係に追加の制約はないことを意味する。 [217] align-lines-specification = (align-lines? expression) 式expressionは,型booleanのオブジェクトであって,真の場合,余ったスペースを分配の際に,複数の段の行を揃えることを指定する。 [218] column-specification = (column [[ width-specification? | height-specification? | x-origin-specification? | y-origin-specification? | footnote-separator-specification? | header-specification? | footer-specification? ]]) 段集合の流し込み方向が,シンボルtop-to-bottomの場合,構文column-specificationは,構文width-specification及び構文x-origin-specificationを含む必要がある。段集合の流し込み方向が,シンボルright-to-left又はシンボルleft-to-rightの場合,構文column-specificationは,構文height-specification及び構文y-origin-specificationを含む必要がある。これらの指定は段の幾何学的情報を提供する。 [219] footnote-separator-specification = (footnote-separator generated-area-clauses) 構文footnote-separator-specificationは,脚注区域が領域を含む場合に,脚注区域の領域の直前に生成されるべき領域を指定する。 [220] tied-column-subset-specification = (tie column-subset-specification column-subset-specification+ ) 構文tied-column-subset-specificationは,結合する二つ以上の段部分集合を指定する。図18を参照。 備考 これは,たとえば傍注と共に指定される場合がある。 12.6.6 段落流し込みオブジェクト(Paragraph) 流し込みオブジェクトparagraphは,段落を表現する。これは,単一の主要ポートをもつ。このポートの内容は,行内又は行外のいずれであってもよい。行内流し込みオブジェクトは,フォーマットの結果行領域を生成し,行外流し込みオブジェクトは暗黙のうちにページ分割を行い,その領域を結果領域の列に加える。流し込みオブジェクトparagraphは,行外のみとする。 備考 普通,分割は新しい行が始まることを意味する。 次の特質を適用可能とする。 (1) 特質lines:は,シンボルとする。シンボルは,段落の内容がどのように分割して行にするかを指定する。指定可能な値は次のとおり。 (a) シンボルwrap。利用可能なスペースに合わせて行を分割することを指定する。 (b) シンボルasis。特質record-end?:が真の流し込みオブジェクトcharacterの後でだけ,行を分割することを指定する。 (c) シンボルasis-wrap。特質record-end?:が真の流し込みオブジェクトcharacterの後で,行を分割し,さらに必要に応じて利用可能なスペースに合わせて分割することを指定する。 (d) シンボルasis-truncate。特質record-end?:が真の流し込みオブジェクトcharacterの後でだけ行を分割し,利用可能なスペースに合わない行は切り捨てることを指定する。 (e) シンボルnone。行を全く分割しないことを指定する。 備考 機能table-auto-widthが利用可能で,段の幅がセルの内容が単一の行に合うのに十分なほど広くされる場合に,表の中で使えば便利である。 すべての場合において,特質break-before:又は特質break-after:で明示的に指定された箇所での行分割を許可する。初期値はシンボルwrapとする。 (2) 特質asis-truncate-char:は,型charのオブジェクト又は#f。特質lines:の値がシンボルasis-truncateを持ち,行を切り捨てる場合に行末に挿入するグリフを指定する。初期値は,#fとする。 (3) 特質asis-wrap-char:は,型charのオブジェクト又は#fとする。特質lines:がシンボルasis-wrapを持ち,特質record-end?:が真をもち,流し込みオブジェクトcharacterの後以外で行が分割される場合に,行末に挿入されるグリフを決める。初期値は,#fとする。 (4) 特質asis-wrap-indent:は,型length-specのオブジェクト又は#fとする。特質lines:が値asis-wrapをもち,特質record-end?:が真の流し込みオブジェクトcharacterの後以外で行を分割する場合に,次の行に対してstart-indentに加えられるインデントを指定する。初期値は,#fとする。 (5) 特質first-line-align:は,#f,#t又はcharオブジェクトのいずれかとする。#fではない場合,段落の最初の行においては,特質quadding:及び特質last-line-quadding:を無視して,その行の揃え点を使用して揃える。値がcharオブジェクトの場合,その行内に出現する流し込みオブジェクトcharacterであって,特質char:の値がこの特質の値と同一のものが生成する最初の領域を位置決め点とする。その他の場合,揃え点は,その行の最初の流し込みオブジェクトの揃え点位置とする。特質alignment-point-offset:が#fではない場合,段落の最初の行は,行頭から揃え点までの距離が,行長(つまり,行外サイズから最初と最後の字下げを引いたもの)に対して百分率で特質alignment-point-offset:の値と等しくなるように揃えされなければならない。特質alignment-point-offset:が#fの場合,その段落は外部的に揃えられた段落とし,流し込みオブジェクトtable-cell又は流し込みオブジェクトaligned-columnの祖先をもたなければならない。さらに,この段落からの領域が配置される領域コンテナは,祖先からの領域が配置される領域コンテナと同一でなければならない。この場合,段落は揃え点が流し込みオブジェクトtable-c olumn又は流し込みオブジェクトaligned-column内の他の段落と一緒に揃えられるよう揃えられなければならない。外部的に揃えられた段落がtable-cell中に発生する場合,機能table-auto-widthが有効になっていなければならない。初期値は#fとする。 (6) 特質alignment-point-offset:は,型numberのオブジェクト又は#fとする。揃え点の前の行長(つまり,表示大きさから最初と最後の字下げを引いたもの)を百分率で指定する0と100の間の数とする。初期値は50とする。 (7) 特質ignore-record-end?:は,型booleanのオブジェクトとする。文字REの無視を指定する。この特質が真の場合,特性record-end?が真の文字を無視する。初期値は#fとする。 (8) 特質expand-tabs?:は,0を含む正の整数又は#fとする。正の整数は,タブ間隔を指定する。タブ間隔を指定した場合,特質input-tab?:が真の流し込みオブジェクトcharacterをタブ文字として扱う。タブ文字は,直前の文字REの流し込みオブジェクトに続く文字数に加えてタブ間隔の正の整数倍になる数のスペースと同じに扱う。初期値は8とする。 (9) 特質line-spacing:は,型length-specのオブジェクト。12.6.6.1で記載のとおり,段落内の行の配置パス間の通常の空きを指定する。初期値は,12ptとする。 (10) 特質line-spacing-priority:は,整数又シンボルforceとする。これらの値は,行の前の条件付き空きの優先度を指定する。整数は,手続きdisplay-spaceの引数priority:と同じ方法で解釈する。初期値は,0とする。 (11) 特質min-pre-line-spacing:は,型length-specのオブジェクト又は#fとする。型length-specのオブジェクトは,12.6.6.1の記載とおり,流し込み方向とは反対方向への行の最小サイズを指定する。値#fは,値が段落のフォントから判断することを指定する。初期値は#fとする。 (12) 特質min-post-line-spacing:は,型length-specのオブジェクト又は#fとする。型length-specのオブジェクトは,12.6.6.1の記載とおり,流し込み方向への行の最小サイズを指定する。値#fは,値が段落のフォントから判断することを指定する。初期値は#fとする。 (13) 特質min-leading:は,型length-specのオブジェクト又は#fとする。型length-specのオブジェクトは,12.6.6.1の記載とおり,流し込み方向における行領域の間の最小スペースを指定する。値#fは,行間空きを自動的に調整し,行の内容の大きさを考慮に入れないことを意味する。初期値は#fとする。 (14) 特質first-line-start-indent:は,型length-specのオブジェクトとする。その値は,最初の行のstart-indentに加えられるべきインデントを指定する。値は負になることもある。初期値は0ptとする。 (15) 特質last-line-end-indent:は,型length-specのオブジェクトとする。その値は,最後の行のend-indentに加えられるべきインデントを指定する。値は負になることもある。初期値は0ptとする。 (16) 特質hyphenation-char:は,型charのオブジェクトとする。その値は,ハイフネーションが行った場合に挿入するグリフの決定に使用する。ハイフネーション点の前の流し込みオブジェクトcharacterの特質は,グリフのフォント資源及びフォント大きさと共に,文字からグリフへの対応を決定しなければならない。初期値は,#\-(ハイフン文字)とする。 (17) 特質hyphenation-ladder-count:は,0を含む正の整数又は#fとする。これは,特質hyphenation-char:の値によって決定されたグリフと同じグリフで終了する連続する行の最大数を指定する。#fは無制限を意味する。初期値は,#fとする。 (18) 特質hyphenation-remain-char-count:は,正の整数とする。これは,ハイフネーションする単語のハイフネーション文字の前にくる最小文字数を指定する。これは,単語を分割して,ハイフネーション文字で終る行に残る文字の最小数とする。初期値は2とする。 (19) 特質hyphenation-push-char-count:は,正の整数とする。これは,ハイフネーションする単語のハイフネーション文字の後にくる最小文字数を指定する。これは,単語を分割して,ハイフネーション文字で終る行の次の行に押しやられた文字の最小数とする。初期値は2とする。 (20) 特質hyphenation-keep:は,#f又は次のシンボルの一つとする。 (a) シンボルspreadは,ハイフネーションした単語の両方の部分が見開きの範囲に収まることを意味する。 (b) シンボルpageは,ハイフネーションした単語の両方の部分が同じページの範囲に収まることを意味する。 (c) シンボルcolumnは,ハイフネーションした単語の両方の部分が同じ段の範囲に収まることを意味する。 初期値は#fとする。 (21) 特質hyphenation-exceptions:は,文字列のリストとする。各文字列は,ハイフン文字#\-を含むことができ,ハイフネーション可能な点を示す。ハイフネーション候補の単語がリスト中に存在する場合,ハイフネーションは指定された場所だけで可能となる。初期値は空リストとする。 備考 単語の決定は,処理系依存とする。 (22) 特質line-breaking-method:は,文字列又は#fとする。文字列は,この段落に使用する行分割法の公開識別子を指定する。初期値は#fとする。 (23) 特質line-composition-method:は,文字列又は#fとする。文字列は,この段落に使用する行組版法の公開識別子を指定する。初期値は#fとする。 備考 通常,特質line-composition-method:は,宣言application-characteristic-declaration又は宣言application-char-characteristic+property-declarationを使用して宣言した特質を使用する。 (24) 特質implicit-bidi-method:は,文字列又は#fとする。文字列は,段落の内容の方向性の暗黙の決定に使用する方法の公開識別子を指定する。これには,文字の表記方向及び共通の表記方向をもつ内容部分をどのようにして互いに入れ子になるかを含む。文字の表記方向に関しては,この特質の値が#fの場合,特質writing-modeを用いて指定する。入れ子の方法に関しては,この特質の値が#fの場合,流し込みオブジェクトembedded-textを用いて指定する。どの流し込みオブジェクトcharacterの特質を利用するかは,その方式の意味に一部となる。方式は,特定の文字レパートリに固有であってよく,その場合には,特質を使用してはならない。また,特定のグリフ代替の方式を文字に適用する表記方向及び文字特質に依存して適用する方式もその一部であってよい。初期値を#fとする。 (25) 特質glyph-alignement-mode:はシンボルとする。その値として,シンボルbase,シンボルcenter,シンボルtop,シンボルbottom又はシンボルfontのいずれかをとる。グリフに使用する流し込みオブジェクトの表記モード方向における名目揃えモードを意味する。初期値はシンボルfontとする。 (26) 特質font-family-name:は,文字列又は#fとする。文字列は,好ましいフォント資源のフォントファミリ名特性を与える。#fは任意のフォントファミリーが許容されることを示す。初期値はiso-serifとする。 備考 ISO/IEC 10180は,交換のために必す(須)フォント集合を規定し,そのフォントファミリはiso-serif,iso-sanserif,iso-monospaceからなる。 (27) 特質font-weight:は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルultra-light,シンボルextra-light,シンボルlight,シンボルsemi-light,シンボルmedium,シンボルsemi-bold,シンボルbold,シンボルextra-bold,若しくはシンボルultra-boldを値とし,望ましいフォント資源の特性weightを示す。#fは,任意のフォントの重みを許容することを示す。初期値はmediumとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (28) 特質font-posture:は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルupright,シンボルoblique,シンボルback-slanted-oblique,シンボルitalic又はシンボルback-slanted-italicのいずれかを値とし,望ましいフォントリソースの姿勢特性を示す。#fの場合,任意の任意の姿勢が許容可能を示す。初期値はシンボルuprightとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (29) 特質font-structure:は,シンボル又は#fとし,許容可能なフォント構造を指定する。シンボルの場合,シンボルnot-applicable,シンボルsolid又はシンボルoutlineを値にとる。#fの場合,任意の構造が許容可能だと示す。初期値はシンボルsolidとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (30) 特質font-proportionate-width:は,シンボル又は#fとし,許容可能な字幅を指定する。シンボルの場合,シンボルnot-applicable,シンボルultra-condensed,シンボルextra-condensed,シンボルcondensed,シンボルsemi-condensed,シンボルmedium,シンボルsemi-expanded,シンボルexpanded,シンボルextra-expanded又はシンボルultra-expandedのいずれかを値にとる。#fの場合,任意の字幅が許容可能を示す。初期値はシンボルmediumとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (31) 特質font-name:は,シンボル又は#fを値とし,望ましいフォントリソースのフォント名特性の公開識別子文字列を指定する。#fの場合,任意のフォント名が許容可能を示す。値が文字列の場合,特質font-family-name:,特質font-family-name:,特質font-weight:,特質font-posture:,特質font-structure:及び特質font-proportionate-width:は,フォント選択には用いない。初期値は#fとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (32) 特質font-size:は型lengthであって,フォントリソースを変倍する大きさを指定する。初期値は10ptとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (33) 特質numbered-lines?:は,型booleanのオブジェクトを指定する。値が#tの場合,この段落で生成される行を,行番号付けの対象することを指定する。値が#fの場合,行番号付けの対照としないことを指定する。初期値は#tとする。 (34) 特質line-number:は,行内流し込みオブジェクトのみを含むラベルなし型sosofoのオブジェクト又は#fとする。型sosofoのオブジェクトの場合,フォーマットの結果,単一の行内領域を生成して,段落の各行の添付領域として配置される。12.3.4 を参照。初期値は,#fとする。 備考 型sosofoのオブジェクトは,手続きline-numberを使用して行の番号を参照する,間接流し込みオブジェクトを含む場合がある。 備考 添付領域の配置の規則は,通常行番号はその行に一番近い端が揃うように配置されることを意味する。それと異なる揃えは,流し込みオブジェクトline-fieldを使用して実現できる。 (35) 特質line-number-side:は,シンボルとし,特質line-number:で指定された添付行の位置を指定する。シンボルの場合,シンボルstart,シンボルend,シンボルspread-inside,シンボルspread-outside,シンボルpage-inside又はシンボルpage-outsideのいずれかとする。シンボルspread-inside又はシンボルspread-outsideは,その流し込みオブジェクトがクラスpage-sequenceを祖先にもつ場合にだけ指定できる。シンボルpage-inside又はシンボルpage-outsideは,流し込みオブジェクトがcolumn-set-sequenceを祖先にもつ場合にだけ指定できる。 (36) 特質line-number-sep:は,型length-specのオブジェクトとし,特質line-number:で指定された添付領域の分離間隔を指定する。 (37) 特質quadding:は,シンボルであって,特質writing-modeの方向において,段落の最後の行以外の行揃えを指定する。その値は,シンボルstart,シンボルend,シンボルspread-inside,シンボルspread-outside,シンボルpage-inside,シンボルpage-outside,シンボルcenter又はシンボルjustifyのいずれか一つとする。シンボルspread-inside又はシンボルspread-outsideは,流し込みオブジェクトがクラスpage-sequenceを祖先にもつ場合にだけ指定できる。シンボルpage-inside又はシンボルpage-outsideは,流し込みオブジェクトがクラスcolumn-set-sequenceを祖先にもつ場合にだけ指定できる。初期値は,シンボルstartとする。 (38) 特質last-line-quadding:は,シンボルであって,特質writing-modeの方向において,段落の最後の行の揃えを指定する。シンボルrelative,シンボルstart,シンボルend,シンボルspread-inside,シンボルspread-outside,シンボルpage-inside,シンボルpage-outside,シンボルcenter又はシンボルjustifyのいずれか一つとする。これは,段落分割の直前の行にも適用する。シンボルrelativeは,特質quadding:の値の使用を意味する。ただし,特質quadding:の値がjustifyである場合を例外とし,その場合にはシンボルstartを使用する。シンボルspread-inside又はシンボルspread-outsideは,流し込みオブジェクトがクラスpage-sequenceを祖先にもつ場合にだけ指定できる。初期値は,シンボルrelativeとする。 (39) 特質last-line-justify-limit:は,型length-specのオブジェクトであって,最後の行を特質last-line-quadding:によって指定した方法で揃えずに,両端揃えを行う余った空きの最大量を指定する。初期値は,0とする。 (40) 特質justify-glyph-space-max-add:は,型length-specのオブジェクトであって,行の両端揃えの際にグリフ間に加える空きの最大値を指定する。初期値は,0ptとする。 (41) 特質justify-glyph-space-max-remove:は,型length-specのオブジェクトであって,行を両端揃えの際にグリフ間から取り除く空きの最大値を指定する。初期値は,0ptとする。 (42) 特質hanging-punct?:は,型booleanのオブジェクトであって,段落をフォーマットする場合に,約物を段の余白又は段間にぶら下げるかどうかを指定する。 (43) 特質widow-count:は,正の整数であって,領域の先頭に一緒に保持する段落の行の最小数を指定する。特質widow-count:の値がnの場合,段落の最後のn行においては分割は許されない。初期値は2とする。 (44) 特質orphan-count:は,正の整数であって,領域の最後に一緒に保持する段落の行の最小数を指定する。特質orphan-count:の値がnの場合,段落の最初のn行においては分割は許されない。初期値は2とする。 (45) 特質language:は,#f又はISO 639で定義する言語コードを大文字で指定する。これは,行の組立てに処理系固有の方法で影響する。初期値は#fとする。 (46) 特質country:は,#f又はISO 3166で定義する国コードを大文字で指定する。これは,行の組立てに処理系固有の方法で影響する。初期値は#fとする。 (47) 特質position-preference:は,シンボル又は#fとする。シンボルの場合,シンボルtop又はシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域がどちらかだけの区域流し込まれるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (48) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。この特質は,行の配置方向を制御する。 (49) 特質start-indent:は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトparagraphに由来する行にだけ適用する。 (50) 特質end-indentは型length-specであって,表記モードの方向で最終に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は,流し込みオブジェクトparagraphに由来する行にだけ適用する。 (51) 特質span:は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。 (52) 特質span-weak?:は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5 参照のこと。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられ,特質span:が1を越える場合に限って適用する。初期値は#fとする。 (53) 特質space-before:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (54) 特質space-after:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (55) 特質keep-with-previous?:は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (56) 特質keep-with-next?:は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (57) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (58) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (59) 特質keep:は,次のいずれかを指定する。 (a) 値#tは,この流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること及びそれぞれの領域が抜く最初の段は同じになることを示す。 (e) 値#fは,この特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。 (60) 特質may-violate-keep-before?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:が指定する,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関する制約を尊重しないことを指定する。この特質は継承しない。無指定時値は#fとする。 (61) 特質may-violate-keep-after?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:が指定する,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関する制約を尊重しないことを指定する。この特質は継承しない。無指定時値は#fとする。 12.6.6.1 行間調整 段落によって生成される行領域の大きさは,配置パスの段落の流し込み逆方向の大きさが特質min-pre-line-spacing:となり,配置パスの段落流し込み方向の大きさが特質min-post-line-spacing:となる。特質min-leading:の値が#fではない場合,行の大きさは,行内のすべての領域を含む大きさに増える。直前の領域が行である場合,必要であれば行の前に条件付き空きを加えて,直前の行の配置パス及びこの配置パスの間の合計の距離が特質line-spacing:の値にする。直前の領域が行ではない場合,必要であれば行の前に条件付きスペースが加えて,直前の領域の末尾及びこの配置パスの間の合計の距離が,特質line-spacing:の値から特質min-post-line-spacing:を引いた値にする。特質min-leading:の値が#fでない場合,必要であれば条件付きスペースが加えて,直前の領域とこの領域とのスペースがmin-leading:の値以上にする。条件付きスペースは,特質line-spacing-priority:によって指定される優先度をもつ。 12.6.7 段落分割流し込みオブジェクト(paragraph-break) 流し込みオブジェクトparagraph-breakを使用することによって,流し込みオブジェクトparagraphが段落の列を表現できる。段落は,原子流し込みオブジェクトparagraph-breakによって分割される。流し込みオブジェクトparagraph-breakは,流し込みオブジェクトparagraphの中においてだけ出現してよい。流し込みオブジェクトparagraphに適用されるすべての特質は,流し込みオブジェクトparagraph-breakにも適用する。流し込みオブジェクトparagraph-breakの特質は,その流し込みオブジェクトparagraph-breakから次の流し込みオブジェクトparagraph-breakまで(もしあれば)の流し込みオブジェクトparagraphの内容部分がどのようにフォーマットされるかを決定する。 備考 流し込みオブジェクト paragraph-breakは,それを含む流し込みオブジェクトparagraphを普通の方法で継承する。 特質first-line-start-indent:は,流し込みオブジェクトparagraph-breakに続く行に適用し,特質last-line-end-indent:は,流し込みオブジェクトparagraph-breakの直前の行に適用する。 備考 流し込みオブジェクトparagraph-breakは,それ以外にフォーマット指定できない場合にだけ使うことが望ましい。 12.6.8 行フィールド流し込みオブジェクト(line-field) 流し込みオブジェクトクラスline-fieldは行内とし,内容として行内領域をもつ。これは,単一の行内領域を生成する。この領域の幅は,特質field-width:の値と等しいものとする。line-field領域の内容がこの幅に合わない場合,その領域は内容を収容できるよう大きくなり,段落内でline-fieldが出現する場合,line-fieldの後に分割が生じなけれ ばならない。単一の主要ポートをもつ。 この流し込みオブジェクトは,次の特質をもつ。 (1) 特質field-width:は,型length-specのオブジェクトであって,この流し込みオブジェクトによって生成される領域の幅を指定する。初期値は0ptとする。 (2) 特質field-align:は,フィールドの内容の揃えを指定するシンボルstart,シンボルend又はシンボルcenterのいずれか一つとする。初期値はstartとする。 (3) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。 (4) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 (5) 特質break-before-priority:は整数であって,この流し込みオブジェクトの前で分割が許可されるか否かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び特質drop-after-line-break?:が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は0とする。 (6) 特質break-after-priority:は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定に,特質break-before-priority:の規定に記述したと同じ方法で影響する。この特質は継承しない。無指定時値は0とする。 段落内で使用する流し込みオブジェクトline-fieldの直前及び直後では,行分割を許可する. 12.6.9 側線流し込みオブジェクト(sideline) この流し込みオブジェクトの使用は,機能sidelineを必要とする。流し込みオブジェクトsidelineは,配置方向に対して平行な線から成る添付領域(12.3.4参照のこと)をもつ流し込みオブジェクトを指定する。流し込みオブジェクトsidelineは,行内流し込みオブジェクト及び行外流し込みオブジェクトの両方を含むことができる単一の主要ポートをもつ。その内容によって生成される行外領域のそれぞれに対して,流し込みオブジェクトsidelineは添付物を追加する。その内容によって生成される行内領域のそれぞれに対して,流し込みオブジェクトsidelineはその領域に注釈を付け,その流し込みオブジェクトが出現する段落が,その行内領域が出現する行に添付領域を加えるようにする。 備考 流し込みオブジェクトsidelineは,しばしば変更部分を印付けに使用される。 図14に図示する。
流し込みオブジェクトsidelineは,次の特質をもつ。 (1) 特質sideline-side:は,シンボルであって,側線を添付する行領域の側を指定する。シンボルstart,シンボルend,シンボルboth,シンボルspread-inside,シンボルspread-outside,シンボルpage-inside又はシンボルpage-outsideのいずれか一つとする。シンボルspread-inside又はシンボルspread-outsideは,その流し込みオブジェクトが流し込みオブジェクトpage-sequenceを祖先にもつ場合にだけ指定できる。シンボルpage-inside又はシンボルpage-outsideは,その流し込みオブジェクトが流し込みオブジェクトcolumn-set-sequenceを祖先にもつ場合にだけ指定できる。シンボルbothは,そのテキストを含む行領域の両側に側線を添付させることを意味する。 (2) 特質sideline-sep:は,側行添付物に対する分離を指定する型length-specのオブジェクトとする。負の値も許可される。 (3) 特質color:は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。初期値は,色空間device-grayの無指定時カラーとする。 (4) 特質layer:は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定する。領域はそのレイヤー値が低い任意の領域から可視化される。初期値は0とする。 (5) 特質line-cap:はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。 (6) 特質line-dash:は一つ以上の型lengthのオブジェクトのリストであって,線の破線パターンを指定する。最初の長さはISO/IEC 10180が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。残りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長さ0ptを含むリストとする。 (7) 特質line-thickness:は長さであって,線の太さを指定する。初期値は1ptとする。 (8) 特質line-repeat:は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。初期値は1とする。 (9) 特質line-sep:は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。 単一の領域コンテナ内にあり,間にスペースのない連続する領域上の側線は単一の線として表示しなければならない。 12.6.10 錨流し込みオブジェクトクラス(anchor) この流し込みオブジェクトの使用は機能pageを必要とする。 流し込みオブジェクトanchorは原子流し込みオブジェクトであって,同期の対象としてだけ使用する。行内又は行外のどちらでもよい。行内の場合,送り方向で0の大きさをもつ単一の領域を生成する。行外の場合,配置方向で0の大きさをもつ単一の領域を生成する。結果の領域は,特質anchor-keep-with-previous?:が真でない場合に,後続する流し込みオブジェクトが生成する最初の領域と一緒に保持される。 流し込みオブジェクトanchorは,次の特質をもつ。 (1) anchor-keep-with-previous?:は,型booleanのオブジェクトとする。その値が#tの場合,結果の領域が,後続する流し込みオブジェクトが生成する最初の領域ではなく,直前の流し込みオブジェクトの最後の領域と一緒に保持されることを指定する。初期値は#fとする。 (2) display?:は,型booleanのオブジェクトであって,流し込みオブジェクトが行内か行外かを指定する。この特質は継承されない。無指定時値は#fとする。 (3) 特質span:は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。 (4) 特質span-weak?:は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5 参照のこと。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられ,特質span:が1を越える場合に限って適用する。初期値は#fとする。 (5) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 (6) 特質break-before-priority:は整数であって,この流し込みオブジェクトの前で分割が許可されるか否かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び特質drop-after-line-break?:が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は0とする。 (7) 特質break-after-priority:は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定に,特質break-before-priority:の規定に記述したと同じ方法で影響する。この特質は継承しない。無指定時値は0とする。 12.6.11 文字流し込みオブジェクトクラス(character) 流し込みオブジェクトcharacterは,原子流し込みオブジェクトとする。このクラスの流し込みオブジェクトは,行内にだけなる。このクラスの流し込みオブジェクトは,次の特質をもつ。 (1) 特質char:は,文字を指定する型charのオブジェクトとする。この特質は,継承されない。特質が指定されず,現ノードが存在し,その現ノードが特性charをもっている場合,特性charの値をこの特質の値として使用する。特質char-map:の値が#fでない場合,特性charの値に適用し,その結果はこの特質の値として使用する。この特質は,潜在的にグリフの選択において使用されるのと同じくハイフネーションの制御にも使用する。 (2) 特質char-map:は,手続き又は#fとする。手続きの場合,特質char:の無指定時値の構築に適用する。 (3) 特質glyph-id:は,結果の領域にイメージングするグリフを指定する型glyph-idのオブジェクト又は,結果の領域に関連付けられたイメージがない場合#fとする。この特質は,継承されない。この特質が指定されない場合,特質char:の値を使用して計算する。文字の特性blank?が真の場合,特質の値は#fとする。それ以外の場合,特質の値は,文字の特性glyph-idの値でなければならない。この場合には,値が#f以外でなければならない。 (4) 特質glyph-subst-table:は,#f,グリフ代替表又はグリフ代替表のリストであって,特質glyph-idが指定するglyph-idに対して,その代替グリフを探索する対象を指定する。値がリストの場合,指定された順序で代替グリフが探す。初期値は,#fとする。 (5) 特質glyph-subst-method:は,#f,文字列又は文字列のリストとする。各文字列は,グリフ代替を行う方法を指定する公開識別子でなければならない。初期値は#fとする。 備考 これにより,文脈依存のグリフ代替及び複数のグリフを含むグリフ代替が可能になる。 (6) 特質glyph-reorder-method:は,#f,文字列又は文字列のリストとする。各文字列は,グリフの再順序付けの方法の公開識別子を指定する。初期値は,#fとする。 備考 これは,普通ヒンズースクリプトで使用する。 (7) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。この特質は,グリフのメトリクの決定において,どの表記方向を用いるかを制御する。 (8) 特質font-family-name:は,文字列又は#fとする。文字列の場合,好ましいフォントリソースのフォントファミリ名特性を与える。#fの場合,任意のフォントファミリが許容されることを示す。初期値はiso-serifとする。 備考 ISO/IEC 10180は,交換のために必す(須)フォント集合を規定し,そのフォントファミリはiso-serif,iso-sanserif,iso-monospaceからなる。 (9) 特質font-weight:は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルultra-light,シンボルextra-light,シンボルlight,シンボルsemi-light,シンボルmedium,シンボルsemi-bold,シンボルbold,シンボルextra-bold,若しくはシンボルultra-boldを値とし,望ましいフォント資源の特性weightを示す。#fは,任意のフォントの重みを許容することを示す。初期値はmediumとする。 (10) 特質font-posture:は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルupright,シンボルoblique,シンボルback-slanted-oblique,シンボルitalic又はback-slanted-italicのいずれかを値とし,望ましいフォントリソースの姿勢特性を示す。#fの場合,任意の任意の姿勢が許容可能を示す。初期値はシンボルuprightとする。さらに,値としてシンボルmathが指定可能で,それは特質font-postureの値として,特質math-font-postureの値の使用を意味する。 (11) 特質math-font-posture:は,特質font-posture:が,シンボルmathをもつ場合に使用するフォント資源の傾き特性を指定する。値はシンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルupright,シンボルoblique,シンボルback-slanted-oblique,シンボルitalic又はシンボルback-slanted-italicのいずれかとする。この特質は継承されない。無指定時値は,特質char:の文字特性math-font-postureの値とする。 (12) 特質font-structure:は,シンボル又は#fとし,許容可能なフォント構造を指定する。シンボルの場合,シンボルnot-applicable,シンボルsolid又はシンボルoutlineを値にとる。#fの場合,任意の構造が許容可能だと示す。初期値はシンボルsolidとする。 (13) 特質font-proportionate-width:は,シンボル又は#fとし,許容可能な字幅を指定する。シンボルの場合,シンボルnot-applicable,シンボルultra-condensed,シンボルextra-condensed,シンボルcondensed,シンボルsemi-condensed,シンボルmedium,シンボルsemi-expanded,シンボルexpanded,シンボルextra-expanded又はultra-expandedのいずれかを値にとる。#fの場合,任意の字幅が許容可能を示す。初期値はシンボルmediumとする。 (14) 特質font-name:は,シンボル又は#fを値とし,望ましいフォントリソースのフォント名特性の公開識別子文字列を指定する。#fの場合,任意のフォント名が許容可能を示す。値が文字列の場合,特質font-family-name:,特質font-family-name:,特質font-weight:,特質font-posture:,特質font-structure:及び特質font-proportionate-width:は,フォント選択には用いない。初期値は#fとする。 (15) 特質font-size:は型lengthであって,フォントリソースを変倍する大きさを指定する。初期値は10ptとする。 (16) 特質stretch-factor:は,文字の変倍係数を指定する数とする。この特質は,継承されない。無指定時値は1とする。 備考 これをどのように実現するかは,実装依存及びフォント依存とする。 備考 これは,主に様々な種類の数式の区切り子のために設計されている。区切り子の大きさは,フォント大きさに伸縮係数を掛けることによって決定されるが,視覚的な見栄えは,そのフォント大きさのグリフと同じになるように設計されている。 (17) 特質hyphenate?:は,型booleanのオブジェクトをとり,ハイフネーションの許可を指定する。初期値は#fとする。 (18) 特質hyphenation-method:は,文字列又は#fとし,ハイフネーションの方法を示す公開識別子を指定する。初期値は#fとする。 (19) 特質kern?:は,型booleanのオブジェクトであって,送りの調整の許可を指定する。真の場合,カーニングは,特質kern-mode:に従い,ISO 9541-1の8.8.1.6の指定とおり実行する。送りの調整は,送りの調整指示子の特性として調整しないという値をもつグリフに対しては実行しない。初期値は#fとする。 (20) 特質kern-mode:は,シンボルであって,送りの調整モードを指定する。その値は,シンボルloose,シンボルnormal,シンボルkern,シンボルtight又はシンボルtouchのいずれかとする。初期値はnormalとする。 (21) 特質ligature?:は,型booleanのオブジェクトを値とし,合字の許可を指定する。初期値は,#fとする。 (22) 特質 allowed-ligatures: は,許可するリガチャのリストとする。そのリストの各メンバは,型glyph-id又は型charのいずれかとする。結果がそのリスト内のグリフ識別子の場合又はそのリスト内の文字であってその特性glyph-idが結果に等しい場合にだけ,合字を使用する。初期値は空リストとする。 (23) 特質space?:は,型booleanのオブジェクトを値とし,流し込みオブジェクトがスペースかどうかを指定する。この特質は,継承されない。特質inline-space-space:の値として指定されたinline-spaceが,この流し込みオブジェクトで利用できるかどうかにだけ影響する。初期値は,特質char:の文字特性space?の値とする。 (24) 特質inline-space-space:は,流し込みオブジェクトinline-spaceを値とし,流し込みオブジェクトがスペースの場合に適用する。これは,特質escapement-space-before:及び特質escapement-space-after:が指定する空きに追加される。 (25) 特質escapement-space-before:は,型inline-spaceのオブジェクトを値とし,送り方向の最初の結果領域の前に加えられる空きを指定する。初期値は,(inline-space 0pt)とする。 (26) 特質escapement-space-after:は,型inline-spaceのオブジェクトを値とし,送り方向の最後の結果領域の後に加えられる空きを指定する。初期値は,(inline-space 0pt)とする。 (27) 特質record-end?:は,型booleanのオブジェクトを値とし,その流し込みオブジェクトがレコード終了であるかどうかを指定する。特質record-end?:が真である流し込みオブジェクトは,特質lines:がシンボルasisをもつ段落又は特質ignore-record-end?:が真である段落によって異なる方法で扱う。この特質は継承されない。初期値は,特質char:の文字特性record-end?の値とする。 (28) 特質input-tab?:は,型booleanのオブジェクトを値とし,流し込みオブジェクトの入力がタブであるかどうかを指定する。この特質は,継承されない。タブの流し込みオブジェクトcharacterは,特性expand-tabsの値が#fではない段落においては,異なる仕方で扱われなければならない。無指定時値は,特質char:が明示的に指定されなかった場合,特質char:の文字特性input-tab?の値とし,そうでない場合,#fとする。 (29) 特質input-whitespace-treatment:は,次のシンボルのいずれかを値とする。 (a) シンボルpreserveは,特殊な処置を指定しない。 (b) シンボルcollapseは,流し込みオブジェクトcharacterが特質input-whitespace?:に真の値をもち,直前の流し込みオブジェクトも特質input-whitespace?:に真の値をもつ流し込みオブジェクトcharacterの場合に,その後続する方の流し込みオブジェクトを無視すると指定する。 (c) シンボルignoreは,特質input-whitespace?:が真の流し込みオブジェクトcharacterを無視すると指定する。 初期値は,シンボルpreserveとする。 (30) 特質input-whitespace?:は,型booleanのオブジェクトを値とし,その文字が入力においてスペースだと扱うかを指定する。この特質は継承されない。無指定時値は,特質char:が明示的に指定されなかった場合,特質char:の文字特性input-whitespace?の値とし,そうでない場合,#fとする。 (31) 特質punct?:は,型booleanのオブジェクトであって,ぶら下がり禁則を行う段落をフォーマットした場合に,その文字を約物として扱うことを指定する。この特質は,段落の特質hanging-punct?:が真である場合にだけ有効となる。この特質は継承されない。無指定時値は,特質char:の文字特性punct?の値とする。 (32) 特質break-before-priority:は整数であって,この文字の前で分割が許可されるか否かに影響する。分割可能点の優先度は,分割可能点の直前の文字の特質break-after-priority,分割可能点の直後の文字の特質break-before-priority及びその分割可能点の直後の文字の特質drop-after-line-break?:が真の場合には,その直後の文字の特質break-before-priorityの最大値となる。分割は分割可能点の優先度が偶数の場合にだけ行う。この特質は継承しない。無指定時値は特質char:の文字特性break-before-priorityの値とする。 備考 たとえば,表意文字に対しては,特質break-before-priority:及び特質break-after-priority:は普通0と0,ラテン文字に対しては1と1,空白類文字に対しては2と3である。 (33) 特質break-after-priority:は,整数であって,特質break-before-priority:の指定において説明したように,この文字の後で分割が許可されるかどうかに影響を与える。この特質は,継承されない。無指定時値は,特質char:の文字特性break-after-priorityの値とする。 (34) 特質drop-after-line-break?:は,型booleanのオブジェクトを値とし,この文字が行分割の後に来た場合捨てることを指定する。この特質は,継承されない。無指定時値は,特質char:の文字特性drop-after-line-break?の値とする。 (35) 特質drop-unless-before-line-break?:は,型booleanのオブジェクトを値とし,この文字が行分割の前に来ない場合に捨てることを指定する。この特質は,継承されない。無指定時値は,特質char:の文字特性drop-unless-before-line-break?の値とする。 (36) 特質math-class:は,シンボルを値とする。その値は,シンボルordinary,シンボルoperator,シンボルbinary,シンボルrelation,シンボルopening,シンボルclosing,シンボルpunctuation,シンボルinner又はシンボルspaceのいずれかとする。これは,数式のための流し込みオブジェクトによって文字の間隔調整に使用する。シンボルspaceは,追加のスペースを指定する流し込みオブジェクトcharacterのために使用する。このmath-classをもつ流し込みオブジェクトは別の流し込みオブジェクトcharacetrの間隔調整時には無視した方がよい。この特質は,継承されない。無指定時値は,特質char:の文字特性math-classの値とする。 (37) 特質script:は,文字列又は#fとする。文字列の場合には,その文字のスクリプトを指定する公式公開識別子を指定する。#fの場合,その文字が単一のスクリプトと関連付けられていないと指定する。この特質は,継承されない。無指定時値は,特質char:の文字特性scriptの値とする。 (38) 特質position-point-shift:は型length-specであって,位置決め点の行進行方向に沿っての移動量を指定する。初期値は0ptとする。 備考 行送り方向に正の量だけ位置決め点をずらすと,流し込みオブジェクトによって生成された領域を行送り方向とは反対方向にずらす効果がある。 (39) 特質language:は,#f又はISO 639で定義する言語コードを大文字で指定する。これは,行の組立てに処理系固有の方法で影響する。初期値は#fとする。 (40) 特質country:は,#f又はISO 3166で定義する国コードを大文字で指定する。これは,行の組立てに処理系固有の方法で影響する。初期値は#fとする。 (41) 特質color:は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。初期値は,色空間device-grayの無指定時カラーとする。 (42) 特質layer:は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定する。領域はそのレイヤー値が低い任意の領域から可視化される。初期値は0とする。 (43) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 流し込みオブジェクトcharacterは,フォーマットの結果,単一の行内領域を生成する。これは,特質ligature?:が真の場合,隣接する行内領域と併合される場合がある。行内領域の位置決め点は,指定されたwriting-modeに対してフォント資源において指定されているグリフの位置決め点特性とする。送り方向は,指定されたwriting-modeに対してフォント資源において指定されている位置決め点及び送り点の間の方向とする。送り方向におけるその領域の大きさは。位置決め点及び送り点の間の距離とする。行進行方向における配置パス前後の大きさは,指定された表記方向モードに対してフォント資源において指定されているそれらの方向でのグリフのエクステントを覆うような最小のものとする。その流し込みオブジェクトcharacterの表記方向モードの公称揃えモードが,その段落の揃えモードと同じでない場合,指定されたwriting-modeに対してフォント資源の揃えモード特性によって指定されているようにそのグリフ領域は自動的に調整される。 12.6.11.1 文字特性 文字特性は,流し込みオブジェクトcharacterの継承されない特質の無指定時値を決定するために使用する。さらに,文字特性は,char-property手続きでアクセス可能とする。文字の特性は,流し込みオブジェクトがフォーマットされる方法に影響しない。それらは,流し込みオブジェクト木の構築時にだけ使用され,流し込みオブジェクト木の構築方法に影響する。 備考 文字特性は,クラスdata-charのノードの特性と混同してはならない。 次の文字特性は,スタイル言語のために事前定義されている。 (1) 特性space?は,型booleanのオブジェクトを値とし,その文字がスペースだと示す。初期値は#fとする。 (2) 特性record-end?は,型booleanのオブジェクトを値とし,その文字をレコード終了だと示す。無指定時値は#fとする。特質space?及び特質record-end?は普通文字REのために使用する。 (3) 特性blank?は,型booleanのオブジェクトを値とし,その文字が関連するグリフをもたない場合真となる。無指定時値は#fとする。 (4) 特性input-tab?は,型booleanのオブジェクトを値とし,その文字が入力においてタブであったことを示す。無指定時値は#fとする。 (5) 特性input-whitespace?は,型booleanのオブジェクトを値とし,その文字が入力においてスペースであったことを示す。無指定時値は#fとする。 (6) 特性punct?は,型booleanのオブジェクトであって,その文字を約物として扱うことを示す。無指定時値は#fとする。 (7) 特性scriptは,文字列又は#fを値とする。文字列の場合,その文字のスクリプトを識別する公式公開識別子を指定する。#fの場合,その文字に単一のスクリプトが関連付けられていないことを指定する。 次のスクリプトの公開識別子をこの規格で定義する。 (a) ISO/IEC 10179:1996//Script::Latin (b) ISO/IEC 10179:1996//Script::Greek (c) ISO/IEC 10179:1996//Script::Cyrillic (d) ISO/IEC 10179:1996//Script::Arabic (e) ISO/IEC 10179:1996//Script::Hebrew (f) ISO/IEC 10179:1996//Script::Armenian (g) ISO/IEC 10179:1996//Script::Georgian (h) ISO/IEC 10179:1996//Script::Devanagari (i) ISO/IEC 10179:1996//Script::Gujarati (j) ISO/IEC 10179:1996//Script::Gurmukhi (k) ISO/IEC 10179:1996//Script::Bengali (l) ISO/IEC 10179:1996//Script::Oriya (m) ISO/IEC 10179:1996//Script::Telugu (n) ISO/IEC 10179:1996//Script::Tamil (o) ISO/IEC 10179:1996//Script::Kannada (p) ISO/IEC 10179:1996//Script::Malayalam (q) ISO/IEC 10179:1996//Script::Thai (r) ISO/IEC 10179:1996//Script::Lao (s) ISO/IEC 10179:1996//Script::Han (t) ISO/IEC 10179:1996//Script::Bopomofo (u) ISO/IEC 10179:1996//Script::Hiragana (v) ISO/IEC 10179:1996//Script::Katakana (w) ISO/IEC 10179:1996//Script::Hangul (x) ISO/IEC 10179:1996//Script::Burmese (y) ISO/IEC 10179:1996//Script::Khmer (z) ISO/IEC 10179:1996//Script::Mongolian (aa) ISO/IEC 10179:1996//Script::Ethiopian (ab) ISO/IEC 10179:1996//Script::Sinhala (ac) ISO/IEC 10179:1996//Script::Tibetan (ad) ISO/IEC 10179:1996//Script::Punctuation (ae) ISO/IEC 10179:1996//Script::Symbol (af) ISO/IEC 10179:1996//Script::Digit 備考 約物及び記号を表現する文字は,普通scriptの値は#fである。 (8) glyph-idは,この文字に対して使用される公称グリフを表す型glyph-idのオブジェクト又はその文字にグリフがない場合#fとする。その文字が,体系形式standard-charsを使用して宣言されたのであれば,無指定時値は,もしあれば,その文字に対する公称グリフのglyph-idとし,それ以外は#fとする。 備考 公称glyph-idは,一つ以上のglyph-substitution-tableを使用して変換される場合がある。これにより,たとえば,小文字又は古いスタイルのglyphへの選択的な対応付けが可能になる。 (9) 特性drop-after-line-break?は,型booleanのオブジェクトを値とし,その文字が行分割の直後に来た場合に捨てられると指定する。無指定時値は#fとする。 備考 通常,空白類文字に対して真となる。 (10) 特性drop-unless-before-line-break?:は,型booleanのオブジェクトを値とし,その文字が行分割の直前に来ない場合に捨てると指定する。無指定時値は#fとする。 備考 通常,ソフトハイフンに対して真となる。 (11) 特性break-before-priorityは,整数を値とし,流し込みオブジェクトcharacterの特質break-before-priority:で説明した方法で,この文字の前で分割が許可されるかどうかに影響を与える。無指定時値は0とする。 (12) 特性break-after-priorityは,整数を値とし,流し込みオブジェクトcharacterの特質break-aftere-priority:で説明した方法で,この文字の後で分割が許可されるかどうかに影響を与える。無指定時値は0とする。 (13) 特性math-classは,シンボルを値とし,シンボルordinary,シンボルoperator,シンボルbinary,シンボルrelation,シンボルopening,シンボルclosing,シンボルpunctuation又はシンボルinnerのいずれかをとる。無指定時値は,ordinaryとする。 (14) 特性math-font-postureは,シンボル又は#fを値とする。シンボルの場合,特質font-posture: characteristicが値mathをもつ場合に使用されるフォント資源の姿勢特性を指定し,シンボルnot-applicable,シンボルupright,シンボルoblique,シンボルback-slanted-oblique,シンボルitalic,シンボルback-slanted-italic又はシンボルmathのいずれかをとる。#fの場合,任意の傾きが可能であることを意味する。 備考 この文字特性の集合はすべてを網羅しているものではなく,宣言added-char-properties-declarationを使用して追加特性を加えることもできる。 12.6.12 リーダ罫流し込みオブジェクト(leader) 流し込みオブジェクトleaderは,行内にだけなりうる。流し込みオブジェクトleaderは一つの主ポートをもち,繰り返す行内流し込みオブジェクトを含む。流し込みオブジェクトleaderは,次の特質をもつ。 (1) 特質lengthは,型length-specのオブジェクトを値とし,リーダ罫の長さを指定する。この特質は継承しない。この特質が指定しない場合,リーダ罫の長さはその使用文脈によって決定される。段落内のリーダに関しては,それが最後の行で出現する場合以外は長さを指定する。 (2) 特質truncate-leader?:は型booleanであって,この内容となる行内流し込みオブジェクト列の繰り返しの最後を切り捨てると指定する。初期値は#fとする。 (3) 特性align-leader?:は型booleanであって,リーダ罫がページに関連付けられた仮想的な格子への揃えを指定する。初期値は#tとする。 (4) 特質min-leader-repeat:は正の整数であって,繰り返しパターンの繰り返し最低回数を指定する。この特質は,特質lengthを指定しない場合にだけ適用可能とする。利用できる空きがこのリーダをこの回数だけ繰り返すために十分でなければ,リーダはスペースとなる。リーダが段落内で出現する場合,利用できる空きは,パラグラフの行外サイズから,最終行開始インデント長さ,最終行終了インデント長さ,段落内のリーダに続くすべての長さの合計及びリーダに先行しリーダとともになければならない最小部分の長さの総計を差し引いたものとなる。初期値は1とする。 (5) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 (6) 特質break-before-priority:は整数であって,この文字の前で分割が許可されるか否かに影響する。分割可能点の優先度は,分割可能点の直前の文字の特質break-after-priority,分割可能点の直後の文字の特質break-before-priority及びその分割可能点の直後の文字の特質drop-after-line-break?:が真の場合には,その直後の文字の特質break-before-priorityの最大値となる。分割は分割可能点の優先度が偶数の場合にだけ行う。この特質は継承しない。無指定時値は特質char:の文字特性break-before-priorityの値とする。 (7) 特質break-after-priority:は,整数であって,特質break-before-priority:の指定において説明したように,この文字の後で分割が許可されるかどうかに影響を与える。この特質は,継承されない。無指定時値は,特質char:の文字特性break-after-priorityの値とする。 12.6.13 埋込みテキスト流し込みオブジェクト(embedded-text) 流し込みオブジェクトクラスembedded-textは,表記方向モードright-to-leftのテキストを表記方向モードleft-to-rightのテキストに埋込んだり,その逆に埋込んだりするために用いる。この流し込みオブジェクトクラスは,行内だけになりうる。一つの主ポートをもつ。 流し込みオブジェクトembedded-textは,次の特質をもつ。 (1) 特質direction:は,シンボルleft-to-right又はシンボルright-to-leftのいずれかとする。その方向は,パラグラフの表記方向と平行となる。この特質は継承されず,必ず指定する。 (2) 特質language:は,#f又はISO 639で定義する言語コードを大文字で指定する。これは,行の組立てに処理系固有の方法で影響する。初期値は#fとする。 (3) 特質country:は,#f又はISO 3166で定義する国コードを大文字で指定する。これは,行の組立てに処理系固有の方法で影響する。初期値は#fとする。 (4) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 流し込みオブジェクトembedded-textは,任意の埋込みテキスト流し込みオブジェクトの内容を含む行の一部に,指定した方向をその行内進行方向として用いさせる効果をもつ。例えば,行が四つの行内領域をもち,その流し込みオブジェクトストリームの順がA,B,C,Dであって,B及びCが埋込みテキスト流し込みオブジェクト内に含まれており,その方向がパラグラフの表記方向と逆になっていると仮定する。その場合に,行は次のとおり構成される。最初にB及びCを含む行部分が構成され,Cの位置決め点をBの送り点におく。次に結果の行部分領域が,その位置決め点がCの送り点であって,その送り点がBの位置決め点となる行内領域として取り扱う。そして,行はA,続いてB及びCから生成された行内部分行領域,最後にDからなり,パラグラフの表記方向を用いて配置される。図12.を参照のこと。 12.6.14 罫線流し込みオブジェクト(rule) 罫線は直線を指定するために用いる。罫線は行内でも,行外でもよい。 (1) 特質orientation:は,シンボルhorizontal,シンボルvertical,シンボルescapement又はシンボルline-progressionのいずれかであって,罫線の方向を指定すると共に,罫線が行内か,行外かを指定する。この特質は継承しない。無指定時値はなく,指定しなければならない。方向がシンボルhorizontal又はシンボルverticalの場合,罫線は行外となる。この場合,罫線の方向が配置方向に直交するならば,配置方向の領域の大きさは0とする。それ以外の場合,配置方向の領域の大きさは罫線の長さに等しい。 備考 領域の大きさと罫線の太さとは別である。 方向がシンボルescapementの場合,罫線は行内となる。この場合,罫線は行進行方向にその位置決め点を中央揃えし,送りは罫線の長さと等しくなる。罫線は,特質position-point-shift:を用いることで行進行方向にオフセットを加えてもよい。方向がシンボルline-progressionの場合,罫線は行内となる。この場合,罫線は位置決め点で始まり,行進行方向に罫線長分伸びる。送りは0でなければならない。 備考 このようにして,方向がシンボルline-progressionの罫線は続く流し込みオブジェクトの位置決めに影響しない。 (2) 特質length:は,罫線の長さを指定する。この特質は継承しない。この特質が指定されない場合,罫線の長さは罫線が使用される文脈が決定する。 (3) 特質color:は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。初期値は,色空間device-grayの無指定時カラーとする。 (4) 特質layer:は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定する。領域はそのレイヤー値が低い任意の領域から可視化される。初期値は0とする。 (5) 特質line-cap:はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。 (6) 特質line-dash:は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さはISO/IEC 10180が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。残りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長さ0ptを含むリストとする。 (7) 特質line-thickness:は長さであって,線の太さを指定する。初期値は1ptとする。 (8) 特質line-repeat:は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。初期値は1とする。 (9) 特質line-sep:は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。 (10) 特質position-point-shift:は型length-specであって,位置決め点の行進行方向に沿っての移動量を指定する。初期値は0ptとする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (11) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 (12) 特質break-before-priority:は整数であって,この流し込みオブジェクトの前で分割が許可されるか否かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び特質drop-after-line-break?:が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (13) 特質break-after-priority:は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定に,特質break-before-priority:の規定に記述したと同じ方法で影響する。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (14) 特質position-preference:は,シンボル又は#fとする。シンボルの場合,シンボルtop又はシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域がどちらかだけの区域流し込まれるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (15) 特質display-alignment:はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,表記モードの方向に関する揃えを指定する。初期値はシンボルstartとする。この特質は流し込みオブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向の大きさが,行外サイズに等しくする。最初にスペースは領域に加えられ,その大きさを行外サイズから先頭インデント及び最終インデントの合計を引いた値に等しくする。 (a) 揃えがシンボルstartの場合,スペースはすべて表記モード方向の最終に加えられる。 (b) 揃えがシンボルendの場合,スペースはすべて表記モード方向の先頭に加えられる。 (c) 揃えがシンボルcenterの場合,スペースは表記モード方向の先頭及び最終に等分にに加えられる。 (d) 揃えがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して外側の辺に加えられる。 (e) 揃えがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して内側の辺に加えられる。 その後,先頭インデントに等しい量のスペースが表記モードの方向で先頭に加えられ,最終インデントに等しい量のスペースが表記モードの方向で最終に加えられる。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (16) 特質start-indent:は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (17) 特質end-indentは型length-specであって,表記モードの方向で最終に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (18) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (19) 特質span:は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (20) 特質span-weak?:は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5 参照のこと。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられ,特質span:が1を越える場合に限って適用する。初期値は#fとする。 (21) 特質space-before:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (22) 特質space-after:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (23) 特質keep-with-previous?:は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (24) 特質keep-with-next?:は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (25) 特質break-before:は,#f又はシンボルpage,シンボルpage-region,シンボルcolumn又はcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始するかを指定する。この特質は継承しない。無指定時値は,#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (26) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (27) 特質keep:には,次のいずれかを指定する。 (a) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること及びそれぞれの領域が抜く最初の段は同じになることを示す。 (e) 値#fはこの特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (28) 特質may-violate-keep-before?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (29) 特質may-violate-keep-after?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 12.6.15 外部グラフィック流し込みオブジェクトクラス(external-graphic) 流し込みオブジェクトクラスexternal-graphicは,外部実体に含まれるグラフィックのために用いる。このクラスの流し込みオブジェクトは行内でも,行外でもよい,この流し込みオブジェクトクラスは原子流し込みオブジェクトとする。このクラスの流し込みオブジェクトは次の特質をもつ。 (1) 特質display?:は型booleanであって,流し込みオブジェクトが行外か否かを指定する。この特質は継承しない。無指定時値は#fとする。 (2) 特質scale:は,数値,2つの数値からなるリスト若しくは,シンボルmax又はシンボルmax-uniformのいずれかを値とする。その値が数値の場合,グラフィックはその倍率で水平方向及び垂直方向の両方に変倍される。その値が二つの数値をもつリストの場合,グラフィックは第一の数値によって水平方向に,第二の数値で垂直方向に変倍される。その値がシンボルmax-uniformの場合,水平方向,垂直方向に同じ率で変倍され,水平方向又は垂直方向が可能な最大サイズとなる。その値がシンボルmaxの場合,水平方向,垂直方向の両方で最大サイズに変倍される。この特質は継承しない。無指定時値は,シンボルmax-uniformとする。 (3) 特質max-width:は長さ指定であって,特質scale:がシンボルmax又はシンボルmax-uniformの場合に結果領域の最大可能幅を指定する。この特質は継承しない。 (4) 特質max-height:は型length-specであって,特質scale:の値がシンボルmax又はシンボルmax-uniformの場合に許容する最大の高さを指定する。この特質は継承しない。 (5) 特質entity-system-id:は型stringであって,外部グラフィックを含む実体がシステム識別子をもつ場合にはその識別子を又はその実体がシステム識別子をもたない場合には#fを指定する。この特質は継承せず,必ず指定する。 備考 入力文書の実体宣言で指定された外部識別子は,SGML処理系の実体管理によってシステム識別子に解決されなければならない。結果のシステム識別子は,入力グローブ内のノード特性effective-system-idとして利用できる。 (6) 特質notation-system-id:は型stringであって,外部グラフィックの記法のシステム識別子を指定する。この特質は継承せず,必ず指定しなければならない。 備考 入力文書の記法宣言で指定された外部識別子は,SGML処理系の実体管理によってシステム識別子に解決されなければならない。結果のシステム識別子は,入力グローブ内のノード特性effective-notation-system-idとして利用できる。このシステム識別子がその記法に対する処理を特定する方法は処理系依存とする。 (7) 特質color:は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。初期値は,色空間device-grayの無指定時カラーとする。 (8) 特質layer:は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定する。領域はそのレイヤー値が低い任意の領域から可視化される。初期値は0とする。 (9) 特質position-preference:は#f又はシンボルtop若しくはシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域がどちらかだけの区域流し込まれるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (10) 特質display-alignment:はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,表記モードの方向に関する揃えを指定する。初期値はシンボルstartとする。この特質は流し込みオブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向の大きさが,行外サイズに等しくする。最初にスペースは領域に加えられ,その大きさを行外サイズから先頭インデント及び最終インデントの合計を引いた値に等しくする。 (a) 揃えがシンボルstartの場合,スペースはすべて表記モード方向の最終に加えられる。 (b) 揃えがシンボルendの場合,スペースはすべて表記モード方向の先頭に加えられる。 (c) 揃えがシンボルcenterの場合,スペースは表記モード方向の先頭及び最終に等分にに加えられる。 (d) 揃えがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して外側の辺に加えられる。 (e) 揃えがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して内側の辺に加えられる。 その後,先頭インデントに等しい量のスペースが表記モードの方向で先頭に加えられ,最終インデントに等しい量のスペースが表記モードの方向で最終に加えられる。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (11) 特質start-indent:は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (12) 特質end-indentは型length-specであって,表記モードの方向で最終に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (13) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (14) 特質span:は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (15) 特質span-weak?:は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5 参照のこと。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられ,特質span:が1を越える場合に限って適用する。初期値は#fとする。 (16) 特質space-before:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (17) 特質space-after:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (18) 特質keep-with-previous?:は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (19) 特質keep-with-next?:は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (20) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (21) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (22) 特質keep:には,次のいずれかを指定する。 (a) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること及びそれぞれの領域が抜く最初の段は同じになることを示す。 (e) 値#fはこの特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (23) 特質may-violate-keep-before?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (24) 特質may-violate-keep-after?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (25) 特質position-point-x:は型length-specであって,結果となる領域の位置決め点のx座標を,その領域の座標系で与える。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。この特質は流し込みオブジェクトが行内の場合にだけ適用する。この特質は継承しない。この特質が指定されず,特質writing-mode:がシンボルleft-to-right又はright-to-leftの場合,無指定時値は0とする。 (26) 特質position-point-y:は型length-specであって,結果となる領域の位置決め点のx座標を,その領域の座標系で与える。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。この特質は流し込みオブジェクトが行内の場合にだけ適用する。この特質は継承しない。この特質が指定されず,特質writing-mode:がシンボルtop-to-bottomの場合,無指定時値は0とする。 (27) 特質escapement-direction:はシンボルであって,シンボルtop-to-bottom,シンボルleft-to-right,シンボルbottom-to-top又はright-to-leftのいずれかの値をとり,結果となる領域の送り方向を領域の座標系相対で指定する。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。この特質は流し込みオブジェクトが行内の場合にだけ適用する。この特質は継承しない。この特質が指定されない場合,無指定時値は特質writing-mode:となる。 (28) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (29) 特質break-before-priority:は整数であって,この流し込みオブジェクトの前で分割が許可されるか否かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び特質drop-after-line-break?:が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (30) 特質break-after-priority:は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定に,特質break-before-priority:の規定に記述したと同じ方法で影響する。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 12.6.16 取り込みコンテナ領域流し込みオブジェクト(Included-container-area) 流し込みオブジェクトincluded-container-areaは,それぞれが領域コンテナとして指定された一つ以上の領域列を結果とする。流し込みオブジェクトincluded-container-areaは,単一の主ポートをもつ。ポートの内容は,行外となる。 流し込みオブジェクトクラスincluded-container-areaの流し込みオブジェクトは,行内又は行外としてよい。 コンテナの大きさは,領域コンテナの流し込み方向に直交する方向には固定となる。その大きさは,流し込みオブジェクトが行外であって,その親の流し込み方向が流し込み方向と同じには,行外サイズとなる。それ以外の場合,必ず指定しなければならない。流し込み方向は,必ずしも指定する必要はない。省略した場合は,子領域の大きさによって決定する。このクラスの流し込みオブジェクトを行外として,その配置方向が領域コンテナの流し込み方向と平行であって,流し込み方向の大きさを指定しない場合,流し込み方向の大きさは親のその方向の大きさで制限される。流し込みオブジェクトが行外であって,その配置方向が領域コンテナの流し込み方向と直交し,その流し込み方向の大きさが指定されない場合,流し込み不幸の大きさは行外サイズに制限される。 流し込みオブジェクトincluded-container-areaは,次の特質をもつ。 (1) 特質display?:は型booleanのオブジェクトであって,流し込みオブジェクトを行外とするか否かを指定する。この特質は継承しない。無指定時値を#fとする。 (2) 特質filling-direction:は,シンボルtop-to-bottom,シンボルleft-to-right又はシンボルright-to-leftのいずれかとする。この特質は,領域コンテナの流し込み方向を指定する。領域コンテナの流し込み方向は,配置方向と直交してもよい。初期値をシンボルtop-to-bottomとする。 (3) 特質width:は長さであって,領域コンテナの幅を指定する。この特質は継承しない。 (4) 特質height:は長さであって,領域コンテナの高さを指定する。この特質は継承しない。 (5) 特質contents-alignment:は,シンボルstart,シンボルend,シンボルcenter又はシンボルjustifyのいずれかであって,領域コンテナ内の子領域の流し込み方向に関する揃えを指定する。初期値はシンボルstartとする。 (6) 特質overflow-action:は,シンボルtruncate,シンボルerror又はシンボルrepeatのいずれかであって,領域コンテナ内の内容が領域コンテナの大きさに合わない場合に行う動作を指定する。初期値はシンボルrepeatとする。 (7) 特質contents-rotation:は,整数0,整数90,整数180,整数270のいずれかであって,内容領域に適用する回転の反時計周りの角度を指定する。この特質は継承しない。無指定時値は0とする。 (8) 特質scale:は,領域の内容に適用する変倍率を指定する。1より小さい数は,内容を小さくする。1より大きい数は,内容を大きくする。この特質は継承しない。指定されない場合,無指定時値は1とする。 (9) 特質position-preference:は#f又はシンボルtop若しくはシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域がどちらかだけの区域流し込まれるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (10) 特質position-preference:は#f又はシンボルtop若しくはシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域がどちらかだけの区域流し込まれるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (11) 特質display-alignment:はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,表記モードの方向に関する揃えを指定する。初期値はシンボルstartとする。この特質は流し込みオブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向の大きさが,行外サイズに等しくする。最初にスペースは領域に加えられ,その大きさを行外サイズから先頭インデント及び最終インデントの合計を引いた値に等しくする。 (a) 揃えがシンボルstartの場合,スペースはすべて表記モード方向の最終に加えられる。 (b) 揃えがシンボルendの場合,スペースはすべて表記モード方向の先頭に加えられる。 (c) 揃えがシンボルcenterの場合,スペースは表記モード方向の先頭及び最終に等分にに加えられる。 (d) 揃えがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して外側の辺に加えられる。 (e) 揃えがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して内側の辺に加えられる。 その後,先頭インデントに等しい量のスペースが表記モードの方向で先頭に加えられ,最終インデントに等しい量のスペースが表記モードの方向で最終に加えられる。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (12) 特質start-indent:は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (13) 特質end-indentは型length-specであって,表記モードの方向で最終に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (14) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (15) 特質span:は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (16) 特質span-weak?:は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5 参照のこと。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられ,特質span:が1を越える場合に限って適用する。初期値は#fとする。 (17) 特質space-before:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (18) 特質space-after:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (19) 特質keep-with-previous?:は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (20) 特質keep-with-next?:は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (21) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (22) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (22) 特質keep:には,次のいずれかを指定する。 (a) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること及びそれぞれの領域が抜く最初の段は同じになることを示す。 (e) 値#fはこの特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (23) 特質may-violate-keep-before?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (24) 特質may-violate-keep-after?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (25) 特質position-point-x:は型length-specであって,結果となる領域の位置決め点のx座標を,その領域の座標系で与える。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。この特質は流し込みオブジェクトが行内の場合にだけ適用する。この特質は継承しない。この特質が指定されず,特質writing-mode:がシンボルleft-to-right又はright-to-leftの場合,無指定時値は0とする。 (26) 特質position-point-y:は型length-specであって,結果となる領域の位置決め点のx座標を,その領域の座標系で与える。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。この特質は流し込みオブジェクトが行内の場合にだけ適用する。この特質は継承しない。この特質が指定されず,特質writing-mode:がシンボルtop-to-bottomの場合,無指定時値は0とする。 (27) 特質escapement-direction:はシンボルであって,シンボルtop-to-bottom,シンボルleft-to-right,シンボルbottom-to-top又はright-to-leftのいずれかの値をとり,結果となる領域の送り方向を領域の座標系相対で指定する。この目的に関して,領域は領域コンテナと同じ方法で座標系をもつと考える。この特質は流し込みオブジェクトが行内の場合にだけ適用する。この特質は継承しない。この特質が指定されない場合,無指定時値は特質writing-mode:となる。 (28) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (29) 特質break-before-priority:は整数であって,この流し込みオブジェクトの前で分割が許可されるか否かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び特質drop-after-line-break?:が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (30) 特質break-after-priority:は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定に,特質break-before-priority:の規定に記述したと同じ方法で影響する。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 12.6.17 傍線・抹消線(score) 流し込みオブジェクトscoreは単一の主ポートをもつ。その主ポートの内容は傍線又は抹消線をもつ。ポートは,行内となる流し込みオブジェクトだけを含んでよい。 備考 圏点はISO 9541の分類では傍線・抹消線の一部となっているが,圏点(emphasized-mark)流し込みオブジェクトで,SO 9541で定義する圏点より詳細に扱う。 適用可能な特質は次のとおり。 (1) 特質type:は,次のいずれかの値をとる。 (a) シンボルbeforeは,傍線が配置パスに平行であって,傍線のためのフォントによって指定される位置に,行進行方向に関して配置パスの前に引くことを指定する。 (b) シンボルthroughは,抹消線が配置パスに平行であって,抹消線のため のフォントによって指定される位置に,文字を貫いて引くことを指定する。 (c) シンボルafterは,傍線が配置パスに平行であって,傍線のためのフォントによって指定される位置に,行進行方向に関して配置パスの後に引くことを指定する。 (d) 型length-specであって,傍線が配置パスに平行であって傍線の中心から配置パスへ指定した距離を保って平行に引くことを指定する。正の値は傍線を配置パスの後に引く。 (e) 文字であって,各グリフがその文字によって上打ちされることを指定する。 (2) 特質score-spaces?:は型booleanのオブジェクトであって,傍線・抹消線がスペースにも適用するか否かを指定する。初期値は#tとする。 (3) 特質color:は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。初期値は,色空間device-grayの無指定時カラーとする。 (4) 特質layer:は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定する。領域はそのレイヤー値が低い任意の領域から可視化される。初期値は0とする。 (5) 特質line-cap:はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。この特質は特質type:が型length-specの場合にだけ適用できる。 (6) 特質line-dash:は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さはISO/IEC 10180が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。残りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長さ0ptを含むリストとする。この特質は特質type:が型length-specの場合にだけ適用できる。 (7) 特質line-thickness:は長さであって,線の太さを指定する。初期値は1ptとする。この特質は特質type:が型length-specの場合にだけ適用できる。 (8) 特質line-repeat:は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。初期値は1とする。この特質は特質type:が型length-specの場合にだけ適用できる。 (9) 特質line-sep:は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。この特質は特質type:が型length-specの場合にだけ適用できる。 (10) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 (11) 特質font-family-name:は,文字列又は#fとする。文字列は,好ましいフォント資源のフォントファミリ名特性を与える。#fは任意のフォントファミリーが許容されることを示す。初期値はiso-serifとする。 備考 ISO/IEC 10180は,交換のために必す(須)フォント集合を規定し,そのフォントファミリはiso-serif,iso-sanserif,iso-monospaceからなる。 (12) 特質font-weight:は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルultra-light,シンボルextra-light,シンボルlight,シンボルsemi-light,シンボルmedium,シンボルsemi-bold,シンボルbold,シンボルextra-bold,若しくはシンボルultra-boldを値とし,望ましいフォント資源の特性weightを示す。#fは,任意のフォントの重みを許容することを示す。初期値はmediumとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (13) 特質font-posture:は,シンボル又は#fとする。シンボルの場合,シンボルnot-applicable,シンボルupright,シンボルoblique,シンボルback-slanted-oblique,シンボルitalic又はシンボルback-slanted-italicのいずれかを値とし,望ましいフォントリソースの姿勢特性を示す。#fの場合,任意の任意の姿勢が許容可能を示す。初期値はシンボルuprightとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (14) 特質font-structure:は,シンボル又は#fとし,許容可能なフォント構造を指定する。シンボルの場合,シンボルnot-applicable,シンボルsolid又はシンボルoutlineを値にとる。#fの場合,任意の構造が許容可能だと示す。初期値はシンボルsolidとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (15) 特質font-proportionate-width:は,シンボル又は#fとし,許容可能な字幅を指定する。シンボルの場合,シンボルnot-applicable,シンボルultra-condensed,シンボルextra-condensed,シンボルcondensed,シンボルsemi-condensed,シンボルmedium,シンボルsemi-expanded,シンボルexpanded,シンボルextra-expanded又はシンボルultra-expandedのいずれかを値にとる。#fの場合,任意の字幅が許容可能を示す。初期値はシンボルmediumとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (16) 特質font-name:は,シンボル又は#fを値とし,望ましいフォントリソースのフォント名特性の公開識別子文字列を指定する。#fの場合,任意のフォント名が許容可能を示す。値が文字列の場合,特質font-family-name:,特質font-family-name:,特質font-weight:,特質font-posture:,特質font-structure:及び特質font-proportionate-width:は,フォント選択には用いない。初期値は#fとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 (17) 特質font-size:は型lengthであって,フォントリソースを変倍する大きさを指定する。初期値は10ptとする。この特質は,特質glyph-alignment-mode:がシンボルfontの値をとるか又は特質min-pre-line-spacing:が#fの場合に適用する。 さらに特質type:が,シンボルbefore,シンボルafter又はthroughのいずれかの場合,この流し込みオブジェクトにはフォント指定特質を指定しなければならず,それによって位置決めを決定する。フォント特質は,特質typeの値が文字の場合に指定しなければならず,それによって使用するグリフを決定する。 12.6.18 囲み罫流し込みオブジェクト(box) 流し込みオブジェクトboxは,流し込みオブジェクト列を囲む囲み罫を置くために用いる。流し込みオブジェクトboxは行外又は行内のどちらでもよく,それは特質display?:の値によって決定する。流し込みオブジェクトboxは,主ポートだけをもつ。流し込みオブジェクトboxが行外の場合,ポートは任意の行外流し込みオブジェクトを受け付ける。流し込みオブジェクトboxが行内の場合,ポートは任意の行内流し込みオブジェクトを受け付ける。 流し込みオブジェクトboxは,一つ以上の領域を結果としてよい。この場合,改行に隣接する流し込みオブジェクトboxの境界線は,特質box-open-end?:が真の場合に,無視してよい。 流し込みオブジェクトboxが行内の場合,無視する境界線は表記モードに直交する境界とする。 流し込みオブジェクトboxが行外の場合,無視する境界線は表記モードに平行な境界線とする。流し込みオブジェクトboxが行外の場合,表記モードが決定する方向boxの大きさ,つまり境界線位置間の距離は,boxの行外サイズから先頭及び最終インデントを引いた距離に等しい。流し込みオブジェクトboxの内容の行外サイズは,boxの行外サイズに等しい。 備考 このように,boxの内容の特質start-indent:及び特質end-indent:は,boxの境界線と内容とを分離する好ましい距離を指定するために設定しなければならない。境界線の太さを考慮するために,自動的な分離は行わない。 適用可能な特質は次のとおりとする。 (1) 特質display?:は型booleanのオブジェクトであって,boxが行外か否かを指定する。この特質は継承しない。無指定時値は#fとする。 (2) 特質box-type:は,次のシンボルのいずれかを値とする。 (a) シンボルborderは,boxが境界線をもつことを指定する。 (b) シンボルbackgroundは,boxが背景をもつことを指定する。 (c) シンボルbothは,boxが境界線と背景の両方をもつことを指定する。 初期値はシンボルborderとする。 (2) 特質box-open-end?:は型booleanのオブジェクトであって,分割されたboxが開いた端をもつことを指定する。その値が#tの場合,分割の前の領域の終端は目に見える境界線をもたず,分割の後の領域の先端も目に見える境界線をもたない。その値が#fの場合,分割されたboxは通常とおり目に見える境界線をもつ。初期値は#fとする。 (3) 特質background-color:は#f又は型colorのオブジェクトであって,流し込みオブジェクトの背景のために生成されるマークのカラーを指定する。初期値は#fとする。この特質は特質box-type:がシンボルborderを値としない場合にだけ指定できる。 (4) 特質background-layer:は整数であって,流し込みオブジェクトの背景の結果とする領域のマークのレイヤーを指定する。初期値は-1とする。この特質は特質box-type:がシンボルborderを値としない場合にだけ指定できる。 (5) 特質box-corner-rounded:は,boxの角がその値に対応して4分の1の円として描かれることを指定する。 (a) #fは,どの角も丸めないことを示す。 (b) #tは,すべての角を丸めることを指定する。 (c) シンボルのリストであって,それぞれの角を丸めるか否かを指定する。各シンボルはx-yの形式をもち,x及びyはbefore又はafterのいずれかとする。boxが行外の場合,xは角が表記モードが決定する方向に関して前にあるか後にあるかを指定し,yは角が配置方向に関して前にあるか後にあるかを指定する。boxが行内の場合,xは角が送り方向に関して前にあるか後にあるかを指定し,yは角が行進行方向に関して前にあるか後にあるかを指定する。 初期値は#fとする。 (6) 特質box-corner-radius:は型length-specであって,特質box-corner-rounded:の値が#fでない場合の四分の一円の半径を指定する。負の値は円の中心が辺の好転に位置することを示す。この場合,角はへこむ。初期値は3ptとする。 (7) 特質box-border-alignment:はシンボルであって,境界線の揃えを境界の位置相対で次のとおり指定する。 (a) シンボルcenterは,線が境界位置に対して中心に位置することを指定する。 (b) シンボルoutsideは,boxの外側の辺となる線の辺を境界の位置に揃えることを指定する。 (c) シンボルinsideは,boxの内側の辺となる線の辺を境界の位置に揃えることを指定する。 初期値はシンボルoutsideとする。 (8) 特質box-size-before:は型lengthであって,配置パスからboxの辺までの,行進行方向に沿って配置パスの前方への距離を指定する。この特質は流し込みオブジェクトが行内の場合にだけ適用する。初期値は8ptとする。 (9) 特質box-size-after:は型lengthであって,配置パスからboxの辺までの,行進行方向に沿って配置パスの後方への距離を指定する。この特質は流し込みオブジェクトが行内の場合にだけ適用する。初期値は4ptとする。 (10) 特質color:は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。初期値は,色空間device-grayの無指定時カラーとする。この特質はboxの境界線にだけ適用する。 (11) 特質layer:は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定する。領域はそのレイヤー値が低い任意の領域から可視化される。初期値は0とする。この特質はboxの境界線にだけ適用する。 (12) 特質line-cap:はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。この特質はboxの境界線にだけ適用する。 (13) 特質line-dash:は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さはISO/IEC 10180が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。残りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長さ0ptを含むリストとする。この特質はboxの境界線にだけ適用する。 (14) 特質line-thickness:は長さであって,線の太さを指定する。初期値は1ptとする。この特質はboxの境界線にだけ適用する。 (15) 特質line-repeat:は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。初期値は1とする。この特質はboxの境界線にだけ適用する。 (16) 特質line-sep:は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。この特質はboxの境界線にだけ適用する。 (17) 特質line-miter-limit:は数であって,線のマイタ接続限界を示す。マイタ接続の意味は,ISO/IEC 10180で定義する。初期値は10とする。この特質はboxの境界線にだけ適用する。 (18) 特質line-join:はシンボルであって,シンボルmiter,シンボルround又はシンボルbevelのいずれかの値をとり,線の接続スタイルを指定する。初期値はシンボルmiterとする。この特質はboxの境界線にだけ適用する。 (19) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。boxが行内の場合,この特質はbox内の流し込みオブジェクトの配置を決定する。 (20) 特質position-preference:は#f又はシンボルtop若しくはシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域がどちらかだけの区域流し込まれるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (21) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (22) 特質break-before-priority:は整数であって,この流し込みオブジェクトの前で分割が許可されるか否かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び特質drop-after-line-break?:が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (23) 特質break-after-priority:は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定に,特質break-before-priority:の規定に記述したと同じ方法で影響する。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (24) 特質start-indent:は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (25) 特質end-indentは型length-specであって,表記モードの方向で最終に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (26) 特質span:は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (27) 特質span-weak?:は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5 参照のこと。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられ,特質span:が1を越える場合に限って適用する。初期値は#fとする。 (28) 特質space-before:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (29) 特質space-after:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (30) 特質keep-with-previous?:は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (31) 特質keep-with-next?:は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (32) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (33) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (34) 特質keep:には,次のいずれかを指定する。 (a) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること及びそれぞれの領域が抜く最初の段は同じになることを示す。 (e) 値#fはこの特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (35) 特質may-violate-keep-before?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 (36) 特質may-violate-keep-after?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。この特質は流し込みオブジェクトが行外の場合にだけ適用する。 12.6.19 並び流し込みオブジェクト(side-by-side) この流し込みオブジェクトを使用するには,機能side-by-sideの指定が必要となる。単一のポートをもち,その内容は流し込みオブジェクトside-by-side-itemの列であって,流し込みオブジェクトside-by-sideの配置方向に潜在的に揃えられる。 備考 二つのオブジェクトをある方向に揃える場合,それらのオブジェクトのその方向に沿った相対位置を調整して,揃え点がその方向に直交する線上に並べる。 次の特質を適用可能とする。 (1) 特質side-by-side-overlap-control:はシンボルであって,シンボルnone又はシンボルindentを値とし,流し込みオブジェクトside-by-sideが内容となる流し込みオブジェクトside-by-side-itemが互いに重なりあう可能性をどのように扱うかを決定する。初期値はシンボルindentとする。 (2) 特質position-preference:は#f又はシンボルtop若しくはシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域がどちらかだけの区域流し込まれるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (3) 特質space-before:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (4) 特質space-after:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (5) 特質keep-with-previous?:は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (6) 特質keep-with-next?:は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (7) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (8) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (9) 特質keep:には,次のいずれかを指定する。 (a) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること及びそれぞれの領域が抜く最初の段は同じになることを示す。 (e) 値#fはこの特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。 (10) 特質may-violate-keep-before?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 (11) 特質may-violate-keep-after?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 12.6.20 並び対象流し込みオブジェクト(side-by-side-item) この流し込みオブジェクトの使用には,機能side-by-sideの指定が必要となる。 流し込みオブジェクトside-by-side-itemは,常に行外とする。単一の主ポートをもち,その内容は行外となる。その内容の行外サイズは,親の流し込みオブジェクトside-by-sideと同じになる。流し込みオブジェクトside-by-side-itemは,流し込みオブジェクトside-by-sideの内部でだけ出現してよい。 次の特質を適用可能とする。 (1) 特質start-indent:は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は,その流し込みオブジェクトを含む流し込みオブジェクトside-by-sideの特質side-by-side-overlap-control:が,値としてシンボルindentをもつ場合に,隣接する流し込みオブジェクトが重なるか否かだけを指定する。 (2) 特質end-indentは型length-specであって,表記モードの方向で最終に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は,その流し込みオブジェクトを含む流し込みオブジェクトside-by-sideの特質side-by-side-overlap-control:が,値としてシンボルindentをもつ場合に,隣接する流し込みオブジェクトが重なるか否かだけを指定する。 (3) 特質side-by-side-pre-align:はシンボルであって,この流し込みオブジェクトと先行する流し込みオブジェクトside-by-side-itemの揃えに用いる点を指定する。 (a) シンボルstartは,流し込みオブジェクトside-by-side-itemによって生成された最初の領域の配置パスに沿った最初の辺を意味する。 (b) シンボルinitialは,流し込みオブジェクトside-by-side-itemによって生成された最初の行の配置パスを意味する。 (c) シンボルfinalは,流し込みオブジェクトside-by-side-itemによって生成された最後の行領域の配置パスを意味する。 (d) シンボルendは,流し込みオブジェクトside-by-side-itemによって生成された最後の行領域の配置パスに沿った終端辺を意味する。 初期値はシンボルinitialを意味する。 (4) 特質side-by-side-post-align:はシンボルであって,特質side-by-side-pre-align:と同じ方法で,この流し込みオブジェクトと後続の流し込みオブジェクトside-by-side-itemの揃えに使用する点を指定する。初期値はシンボルinitialとする。 流し込みオブジェクトside-by-side-itemは,最初を除く各流し込みオブジェクトside-by-side-itemに関して,特質side-by-side-pre-alignの決定する点を,配置パスに沿って直前の流し込みオブジェクトside-by-side-itemの特質side-by-side-post-alignが決定する点に揃える。特質side-by-side-overlap-control:がシンボルindentを値にもち,流し込みオブジェクトside-by-side内の流し込みオブジェクトside-by-side-itemがもつ特質start-indentが,親の流し込みオブジェクトside-by-side内で直前の流し込みオブジェクトside-by-side-itemの行外サイズと最終インデントの差より小さい場合,配置方向に直前の流し込みオブジェクトside-by-side-itemより後に位置付ける。 流し込みオブジェクトside-by-side-itemによって生成される最初の領域に適用可能な任意の特質spare-before:及び流し込みオブジェクトside-by-side-itemによって生成される最後の領域に適用可能な任意の特質spare-after:は無視する。 12.6.21 グリフ修飾流し込みオブジェクト(glyph-annotation) 流し込みオブジェクトglyph-annotationは,主に意味や発音の記述を文字,語,句に関連させるために用いる。修飾は,修飾されるグリフの行進行方向に対して前に置く。一つ以上の修飾するグリフをもつ流し込みオブジェクトglyph-annotationは,複数行に分割してはならない。 備考 長いグリフ修飾は,利用者が明示的にいくつかのグリフ修飾に分割しなければならない。 流し込みオブジェクトglyph-annotationは,次のポートをもつ。 (1) 主ポートは修飾されるグリフに用いられる。流し込みオブジェクトcharacterだけを,このポートに流し込んでよい。 (2) ポートannotationは,修飾されるグリフに配置する修飾グリフを流し込むのに用いる。流し込みオブジェクトcharacterだけを,このポートに流し込んでよい。 適用可能な特質は次のとおり。 (1) 特質annotation-glyph-placement:はシンボルであって,修飾グリフの配置規則を指定する。シンボルshoulderedは,修飾されるグリフが一つの流し込みオブジェクトglyph-annotationにだけ適用可能とする。 指定可能な値を,次に示す。 (a) シンボルcenteredは,修飾するグリフを中央に配置する。 (b) シンボルshoulderedは,修飾するグリフの数と修飾されるグリフの先頭との関連で配置を決定する。この配置の場合,修飾されるグリフは一つでなければならない。修飾するグリフの詳細な配置は,特質annotation-glyph-styleによって決定する。 初期値はシンボルcenteredとする。 (2) 特質annotation-glyph-styleは,#f又は公開識別子文字列であって,フォーマット時に適用する付加的な規則を指定する。初期値は#fとする。 備考 この規則は,例えば,配置,行頭及び行末での異なる形式,行内での空きの調整などの詳細を制御する。 (3) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 (4) 特質break-before-priority:は整数であって,この流し込みオブジェクトの前で分割が許可されるか否かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び特質drop-after-line-break?:が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (5) 特質break-after-priority:は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定に,特質break-before-priority:の規定に記述したと同じ方法で影響する。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 12.6.22 揃え点流し込みオブジェクト(alignment-point) 流し込みオブジェクトalignment-pointは,特質first-line-align:が#tに等しい流し込みオブジェクトparagraphの明示的な揃え点を指定する。この流し込みオブジェクトは原子流し込みオブジェクトであって行内となる。 12.6.23 揃い段流し込みオブジェクト(aigned-column) この流し込みオブジェクトの使用には,機能aligned-columnの指定が必要となる。 流し込みオブジェクトaligned-columnは,外部から揃えられた流し込みオブジェクトparagraphをグループ化するために用いる。流し込みオブジェクトaligned-columnは,行外となる。単一の主要ポートをもち,任意の行外流し込みオブジェクトを含んでよい。そのポート内の行外流し込みオブジェクトであって,外部から揃えられた流し込みオブジェクトparagraph以外は,通常とおりフォーマットされる。内容内又は内容の流し込みオブジェクトside-by-sideの外部から揃えられた流し込みオブジェクトparagraphは,表記モードの方向に揃えて,その揃え点を配置方向の線に乗せる。結果となる揃えられた行のグループは,特質display-alignment:,特質start-indent:及び特質end-indent:にしたがって位置付けられる。 次の特質を適用可能とする。 (1) 特質display-alignment:はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,表記モードの方向に関する揃えを指定する。初期値はシンボルstartとする。この特質は流し込みオブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向の大きさが,行外サイズに等しくする。最初にスペースは領域に加えられ,その大きさを行外サイズから先頭インデント及び最終インデントの合計を引いた値に等しくする。 (a) 揃えがシンボルstartの場合,スペースはすべて表記モード方向の最終に加えられる。 (b) 揃えがシンボルendの場合,スペースはすべて表記モード方向の先頭に加えられる。 (c) 揃えがシンボルcenterの場合,スペースは表記モード方向の先頭及び最終に等分にに加えられる。 (d) 揃えがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して外側の辺に加えられる。 (e) 揃えがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して内側の辺に加えられる。 その後,先頭インデントに等しい量のスペースが表記モードの方向で先頭に加えられ,最終インデントに等しい量のスペースが表記モードの方向で最終に加えられる。この特質は,各外部から揃えられた流し込みオブジェクトparagraphの最初の行の揃えに用いる。 (2) 特質start-indent:は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は,各外部から揃えられた流し込みオブジェクトparagraphの最初の行の揃えに用いる。 (3) 特質end-indentは型length-specであって,表記モードの方向で最終に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は,各外部から揃えられた流し込みオブジェクトparagraphの最初の行の揃えに用いる。 (4) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。 (5) 特質position-preference:は#f又はシンボルtop若しくはシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域がどちらかだけの区域流し込まれるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (6) 特質space-before:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (7) 特質space-after:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (8) 特質keep-with-previous?:は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (9) 特質keep-with-next?:は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (10) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (11) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (12) 特質keep:には,次のいずれかを指定する。 (a) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること及びそれぞれの領域が抜く最初の段は同じになることを示す。 (e) 値#fはこの特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。 (13) 特質may-violate-keep-before?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 (14) 特質may-violate-keep-after?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 12.6.24 複数行行内注釈流し込みオブジェクト(multi-line-inline-note) 流し込みオブジェクトmulti-line-inline-noteは,注釈を行内に置くために用いる。この流し込みオブジェクトは行内となる。典型的には,この流し込みオブジェクトは次の構成要素からなる。 (1) 注釈の前のグリフとほぼ同じ大きさの開きかっこ。 (2) 行進行方向において一方が他方に先行する二つの行。その内容は注釈の前後のグリフより小さい大きさであって,二つの行に内容を流し込み,それらをほぼ同じ長さにする。 (3) 開きかっこと同じ大きさの閉じかっこ。 流し込みオブジェクトmulti-line-inline-noteは,二つ以上の行に分割してよい。分割した場合,内容は各部分となる行を順番に流し込むのに用いる。例えば,分割された最初の部分の2番目の行の最初の文字は,二番目の部分の最初の行の文字より,流し込んだ内容の中で先に出現しなければならない。さらに,分割は特質inline-note-style:によって影響を受ける。 適用可能な特質は次のとおり。 (1) 特質openは,流し込みオブジェクトの開始に用いるラベルなしsosofo。sosofoは,行内流し込みオブジェクトだけを含んでよい。この特質は継承しない。指定のない場合は,(literal "(")を評価した結果をデフォルトとする。 (2) 特質openは,流し込みオブジェクトの終了に用いるラベルなしsosofoとする。そのsosofoは行内流し込みオブジェクトだけを含む。この特質は継承しない。指定されない場合,無指定時値は(literal ))の評価結果となる。 (3) 特質inline-note-line-count:は正の整数であって,注釈に含める行の数を指定する。初期値は2とする。 (4) 特質inline-note-style:は#f又は公開識別子文字列であって,フォーマット時に適用する付加的な規則を指定する。初期値は#fとする。 備考 この規則は配置,行分割などを制御する。 (5) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 (6) 特質break-before-priority:は整数であって,この流し込みオブジェクトの前で分割が許可されるか否かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び特質drop-after-line-break?:が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (7) 特質break-after-priority:は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定に,特質break-before-priority:の規定に記述したと同じ方法で影響する。この特質は継承しない。無指定時値は0とする。 この流し込みオブジェクトは単一のポートをもち,行内注釈の内容を含む。このポートは任意の行内流し込みオブジェクトを受け付ける。 備考 通常,内容には小さい文字大きさが指定される。 12.6.25 強調マーク流し込みオブジェクト(empahsizing-mark) 流し込みオブジェクトemphasizing-markは,文字,語,句の強調に用いる。各マークは行進行方向に直交し,配置パスの前に存在するパス上に置かれる。このパスは強調マーク配置パスと呼ぶ。 備考 強調マーク流し込みオブジェクトは,日本語組版の圏点をより一般的な形で利用できるようにしたものである。 強調マークは次に示すとおり配分される。 (1) 配置方式glyphは,強調マークを配置パス上で強調するグリフの中心に位置付ける。 備考 この配置は,等幅フォントを使用した文字,語,句を強調するために用いる。 (2) 配置方式evenは,強調マークが強調マーク配置パスに沿って,この流し込みオブジェクトの内容の生成する領域に等分に配置する。 どちらの配置に関しても,流し込みオブジェクトのフォーマットの詳細は,特質mark-styleで指定した公開識別子で識別する規則によって影響を受ける。 適用できる特質は,次のとおりとする。 (1) 特質mark:はラベルなし sosofoであって,強調マークとして用いる領域を指定する。この sosofoは,行内流し込みオブジェクトだけを含む。この特質は継承しない。この特質は無指定時値をもたない。 (2) 特質mark-distribution:はシンボルであって,シンボルglyph又はシンボルevenを値とし,強調マークの配置を指定する。初期値はシンボルglyphとする。 (3) 特質mark-style:は,#f又は公開識別し文字列であって,この流し込みオブジェクトのフォーマットに適用する付加的な又は詳細な規則を指定する。初期値は#fとする。 備考 例えば,これらの規則は配置規則や行分割規則かもしれない。 (4) 特質inhibit-line-breaks?:は型booleanであって,この流し込みオブジェクトによって生成された領域の前後での改行を禁止することを指定する。この特質は,フォーマタによって利用できるスペースに行を収めるために導入された改行にだけ影響する。初期値は#fとする。 (5) 特質break-before-priority:は整数であって,この流し込みオブジェクトの前で分割が許可されるか否かに影響する。潜在的な分割点の分割優先度は,潜在的な分割点の直前の流し込みオブジェクトの特質break-after-priority,潜在的な分割点の直後の流し込みオブジェクトの特質break-before-priority及び特質drop-after-line-break?:が真の文字の直後に続く文字の特質break-before-priorityの最大値となる。分割は潜在的な分割点の分割優先度が偶数の場合にだけ行ってよい。この特質は継承しない。無指定時値は0とする。この特質は流し込みオブジェクトが行内の場合にだけ適用する。 (6) 特質break-after-priority:は整数であって,その流し込みオブジェクトの後に分割が可能か否かの判定に,特質break-before-priority:の規定に記述したと同じ方法で影響する。この特質は継承しない。無指定時値は0とする。 12.6.26 数式用流し込みオブジェクトクラス 数式に用いる流し込みオブジェクトには,流し込みオブジェクトmath-sequence,流し込みオブジェクトunmath,流し込みオブジェクトsubscript,流し込みオブジェクトsuperscript,流し込みオブジェクトscript,流し込みオブジェクトmark,流し込みオブジェクトfence,流し込みオブジェクトfraction,流し込みオブジェクトradical,流し込みオブジェクトmath-operator及び流し込みオブジェクトgridがある。 備考 これらの流し込みオブジェクトは,線形化学式のためにも用いられる。 流し込みオブジェクトcharacterは,数式内の文字のためにも用いるので,特別なクラスは必要としない。特質font-size:,特質font-posture:などの特質は,流し込みオブジェクトcharacterと同じ方法で決定する。これらの特質は,数式用流し込みオブジェクト内で自動的に変更したりはしない。しかし,特質font-posture:の値としてシンボルmathを指定してある場合,異なる文字に数式内で異なる姿勢をとらせることもできる。 12.6.26.1 数式列流し込みオブジェクト(math-sequence) 流し込みオブジェクトmath-sequenceは,一つの領域を生成する。流し込みオブジェクトは単一の主ポートをもち,領域の内容に用いる。ポートは次のクラスの流し込みオブジェクトを受け付ける。流し込みオブジェクトmath-sequence,流し込みオブジェクトunmath,流し込みオブジェクトsubscript,流し込みオブジェクトsuperscript,流し込みオブジェクトscript,流し込みオブジェクトmark,流し込みオブジェクトfence,流し込みオブジェクトfraction,流し込みオブジェクトradical,流し込みオブジェクトmath-operator,流し込みオブジェクトgrid,流し込みオブジェクトcharacter又は流し込みオブジェクトalignment-point。内容の流し込みオブジェクト間の空きは,そのクラスと特質によって調整される可能性がある。 適用可能な特質は次のとおりとする。 (1) 特質math-display-mode:は,シンボルdisplay又はinlineを値とし,フォーマティングのスタイルを指定する。初期値はシンボルdisplayとする。 ある数式流し込みオブジェクトクラスが,流し込みオブジェクトmath-sequenceと同じクラスを受け付けるポートをもつ場合,流し込みオブジェクト間の空きは,それが流し込みオブジェクトmath-sequenceの中にあるかのように調整する。 12.6.26.2 数式解除流し込みオブジェクト(unmath) 流し込みオブジェクトunmathは,数式内で自然言語の単語の列を利用するために用いる。それらの語内の文字は,隣接する数式内の文字とは異なる空きをもつ。流し込みオブジェクトunmathは,単一の主ポートをもつ。ポートは任意の行内流し込みオブジェクトを受け付ける。これらの流し込みオブジェクトは通常とおり配置される。 次の特質を適用可能とする。 (1) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。 (2) 特質glyph-alignement-mode:はシンボルであって,シンボルbase,シンボルcenter,シンボルtop,シンボルbottom又はシンボルfontのいずれかを値とし,グリフに使用する流し込みオブジェクトの表記モード方向における名目揃えモードを意味する。初期値はシンボルfontとする。 (3) 特質font-family-name:は,任意のフォントファミリーが許容されることを示す#f,好ましいフォントリソースのフォントファミリー名特性を与える文字列とする。初期値はiso-serifとする。 備考 ISO/IEC 10180は,交換のために必す(須)フォント集合を規定し,そのフォントファミリはiso-serif,iso-sanserif,iso-monospaceからなる。 この特質は,特質glyph-alignement-mode:の値がシンボルfontの場合に適用する。 (4) 特質font-weight:は,任意のフォントのウェイトが許容できることを示す#f又はそれぞれ望ましいフォントリソースのウェイト特性を示す,シンボルnot-applicable,シンボルultra-light,シンボルextra-light,シンボルlight,シンボルsemi-light,シンボルmedium,シンボルsemi-bold,シンボルbold,シンボルextra-bold,若しくはシンボルultra-boldを値とする。初期値はmediumとする。この特質は,特質glyph-alignement-mode:の値がシンボルfontの場合に適用する。 (5) 特質font-posture:は,任意の任意の姿勢が許容可能を示す#f又は望ましいフォントリソースの姿勢特性を示すシンボルnot-applicable,シンボルupright,シンボルoblique,シンボルback-slanted-oblique,シンボルitalic,若しくはback-slanted-italicのいずれかを値とする。初期値はシンボルuprightとする。この特質は,特質glyph-alignement-mode:の値がシンボルfontの場合に適用する。 (7) 特質font-structure:は,任意の構造が許容可能であることを示す#f,シンボルnot-applicable,シンボルsolid,若しくはシンボルoutlineを示す。初期値はシンボルsolidとする。この特質は,特質glyph-alignement-mode:の値がシンボルfontの場合に適用する。 (8) 特質font-proportionate-width:は,任意の字幅が許容可能を示す#f,シンボルnot-applicable,シンボルultra-condensed,シンボルextra-condensed,シンボルcondensed,シンボルsemi-condensed,シンボルmedium,シンボルsemi-expanded,シンボルexpanded,シンボルextra-expanded,若しくはultra-expandedのいずれかを値とする。初期値はシンボルmediumとする。この特質は,特質glyph-alignement-mode:の値がシンボルfontの場合に適用する。 (8) 特質font-name:は,任意のフォント名が許容可能を示す#f又は望ましいフォントリソースのフォント名特性の公開識別子文字列を値とする。値が文字列の場合,特質font-family-name:,特質font-family-name:,特質font-weight:,特質font-posture:,特質font-structure:及び特質font-proportionate-width:は,フォント選択には用いない。初期値は#fとする。この特質は,特質glyph-alignement-mode:の値がシンボルfontの場合に適用する。 12.6.26.3 下付き流し込みオブジェクト(subscript) 流し込みオブジェクトsubscriptは,流し込みオブジェクトmath-sequence内又は流し込みオブジェクトmath-sequenceと同じ流し込みオブジェクトを受け付ける数式流し込みオブジェクトのポート内で出現してよい。流し込みオブジェクトsubscriptは,その親が流し込みオブジェクトsubscriptの内容が,直前の領域の下付きに位置付けさせる。流し込みオブジェクトsubscriptは,単一の主ポートをもつ。 12.6.26.4 上付き流し込みオブジェクト(superscript) 流し込みオブジェクトsubscriptは,流し込みオブジェクトmath-sequence内又は流し込みオブジェクトmath-sequenceと同じ流し込みオブジェクトを受け付ける数式流し込みオブジェクトのポート内で出現してよい。流し込みオブジェクトsuperscriptは,その親が流し込みオブジェクトsuperscriptの内容が,直前の領域の下付きに位置付けさせる。流し込みオブジェクトsubscriptは,単一の主ポートをもつ。 12.6.26.5 文字付き流し込みオブジェクト(script) 流し込みオブジェクトscriptは,七つ部分の領域で記述する。 それらの部分を,次に示す。 (1) 基本領域, (2) 前上付き領域, (3) 前下付き領域, (4) 中上付き領域, (5) 中下付き領域, (6) 後上付き領域, (7) 後下付き領域 適用可能な特質は次のとおりする。 (1) 特質script-pre-align:はシンボルであって,前上付き及び前下付きの揃えを指定する。次の値を指定可能とする。 (a) シンボルindependentは,前下付き及び前上付きを個別に揃えることを指定する。 (b) シンボルpileは,領域の終端辺の揃えを指定する。 (c) シンボルsup-outは,ポートpre-supに関連付けられた領域の終端辺を,ポートpre-subに関連付けられた領域の先頭辺と揃えることを指定する。 (d) シンボルsub-outは,ポートpre-subに関連付けられた領域の終端辺を,ポートpre-supに関連付けられた領域の先頭辺と揃えることを指定する。 初期値はシンボルindependentとする。 (2) 特質script-post-align:はシンボルであって,後上付き領域と後下付き領域の揃えを指定する。次の値を指定可能とする。 (a) シンボルindependentは,後下付き及び後上付きを個別に揃えることを指定する。 (b) シンボルpileは,領域の先頭辺の揃えを指定する。 (c) シンボルsup-outは,ポートpost-supに関連付けられた領域の先頭辺を,ポートpost-subに関連付けられた領域の終端辺と揃えることを指定する。 (d) シンボルsub-outは,ポートpost-supに関連付けられた領域の先頭辺を,ポートpost-supに関連付けられた領域の終端辺と揃えることを指定する。 初期値はシンボルindependentとする。 (3) 特質script-mid-sup-align:はシンボルであって,中上付き及び基本領域の揃え を指定する。 次の値を指定可能とする。 (a) シンボルlead-edgeは,領域列の先頭辺の揃えを指定する。 (b) シンボルtrail-edgeは,領域列の終端辺の揃えを指定する。 (c) シンボルcenterは,領域列の中心を,表記モードが決定する方向に揃えることを指定する。 初期値はシンボルcenterとする。 (4) 特質script-mid-sub-align:はシンボルであって,中下付き及び基本領域の揃えを指定する。 次の値を指定可能とする。 (a) シンボルlead-edgeは,領域列の先頭辺の揃えを指定する。 (b) シンボルtrail-edgeは,領域列の終端辺の揃えを指定する。 (c) シンボルcenterは,領域列の中心を,表記モードが決定する方向に揃えることを指定する。 初期値はシンボルcenterとする。 (5) 特質math-display-mode:は,シンボルdisplay又はシンボルinlineを値とし,フォーマティングのスタイルを指定する。初期値はシンボルdisplayとする。 利用可能なポートは次のとおり。 (1) 主ポートは流し込みオブジェクトの基本内容に用いる。 (2) ポートpre-supは,表記モードが決定する方向に関して基本内容の前に上付きをおくために用いる。 (3) ポートpre-subは,表記モードが決定する方向に関して基本内容の前に下付きをおくために用いる。 (4) ポートpost-supは,表記モードが決定する方向に関して基本内容の後に上付きをおくために用いる。 (5) ポートpost-subは,表記モードが決定する方向に関して基本内容の後に下付きをおくために用いる。 (6) ポートmid-supは,基本内容の上に上付きをおくために用いる。 (7) ポートmid-supは,基本内容の下に下付きをおくために用いる。 各ポートは流し込みオブジェクトmath-sequenceのポートと同じ内容を受け付ける。 12.6.26.6 マーク流し込みオブジェクト(mark) 流し込みオブジェクトは,三部分の領域を記述する。 記述する領域は次のとおりとする。 (1) 基本領域, (2) 上マーク領域, (3) 下マーク領域 利用可能なポートは次のとおり。 (1) 主ポートは流し込みオブジェクトの基本内容に用いる。 (2) ポートover-markは,上マーク領域におく流し込みオブジェクトのために用いる。 (3) ポートunder-markは,下マーク領域におく流し込みオブジェクトのために用いる。 ポートover-mark又はポートunder-markが,流し込みオブジェクトcharacter,流し込みオブジェクトrule,流し込みオブジェクトleaderのオブジェクトを一つだけ含む場合,基本領域全体を覆うように伸長される。 備考 流し込みオブジェクトの伸長方法は,実装依存,フォント依存となる。 各ポートは流し込みオブジェクトmath-sequenceのポートと同じ内容を受け付ける。 適用可能な特質は次のとおりとする。 (1) 特質math-display-mode:は,シンボルdisplay又はシンボルinlineを値とし,フォーマティングのスタイルを指定する。初期値はシンボルdisplayとする。 12.6.26.7 フェンス流し込みオブジェクト(fence) 流し込みオブジェクトfenceは,三部分の領域を記述する。 それらの部分は次のとおり。 (1) 基本領域 (2) 開きフェンス領域, (3) 閉じフェンス領域。 フェンスは,基本領域の高さにしたがって伸長した方がよい。 備考 この実現の方法は,実装依存,フォント依存となる。 流し込みオブジェクトは,次のポートをもつ。 (1) 主ポートは,流し込みオブジェクトの基本内容のために用いる。このポートは,流し込みオブジェクトmath-sequenceのポートと同じクラスの流し込みオブジェクトを受け付ける。 (2) ポートopenは,開きフェンス領域のために用いる。このポートは流し込みオブジェクトcharacterを一つだけ受け付ける。 (3) ポートcloseは,閉じフェンス領域のために用いる。このポートは流し込みオブジェクトcharacterを一つだけ受け付ける。 適用可能な特質は次のとおりとする。 (1) 特質math-display-mode:は,シンボルdisplay又はinlineを値とし,フォーマティングのスタイルを指定する。初期値はシンボルdisplayとする。 12.6.26.8 除算流し込みオブジェクト(fraction) 流し込みオブジェクトfractionは,三部分の領域を記述する。 記述する部分は次のとおり。 (1) 被除数領域, (2) 除算を示す線の領域 (3) 除数領域 この流し込みオブジェクトは,次のポートをもつ。 (1) ポートnumeratorは,被除数領域におく内容に用いる。 (2) ポートdenominatorは,除数領域におく内容に用いる。 各ポートは,流し込みオブジェクトmath-sequenceのポートと同じクラスの流し込みオブジェクトを受け付ける。 適用可能な特質は次のとおり。 (1) 特質fraction-bar:はラベルなしsosofoであって,一つの流し込みオブジェクトruleを含み,除算を示す線に用いる。初期値は,すべての適用可能な継承可能特質に,その初期値をもつ流し込みオブジェクトruleとする。 (2) 特質numerator-align:はシンボルであって,被除数領域と除算を示す線の領域との揃えを指定する。指定可能な値は次のとおり。 (a) シンボルlead-edgeは,領域列の先頭辺の揃えを指定する。 (b) シンボルtrail-edgeは,領域列の終端辺の揃えを指定する。 (c) シンボルcenterは,領域列の中心を,表記モードが決定する方向に揃えることを指定する。 初期値は,シンボルcenterとする。 (3) 特質denominator-align:はシンボルであって,除数領域と除算線領域との揃えを指定する。指定可能な値は次のとおり。 (a) シンボルlead-edgeは,領域列の先頭辺の揃えを指定する。 (b) シンボルtrail-edgeは,領域列の終端辺の揃えを指定する。 (b) シンボルcenterは領域列の中心を,表記モードが決定する方向に揃えることを指定する。初期値はシンボルcenterとする。 (4) 特質math-display-mode:は,シンボルdisplay又はinlineを値とし,フォーマティングのスタイルを指定する。初期値はシンボルdisplayとする。 12.6.26.9 根号流し込みオブジェクト(radical) 流し込みオブジェクトradicalは,三つの部分からなる領域を記述する。 各部分は,それぞれ次のものを記述する。 (1) 基本領域, (2) 次数領域, (3) 根号グリフ領域 流し込みオブジェクトradicalは,次のポートをもつ。 (1) 主ポートは流し込みオブジェクトの主要な内容のために用いる。 (2) ポートdegreeは,流し込みオブジェクトの根の次数に用いる。 各ポートは,流し込みオブジェクトmath-sequenceのポートと同じクラスを受け付ける。 適用可能な特質は次のとおりとする。 (1) 特質math-display-mode:は,シンボルdisplay又はinlineを値とし,フォーマティングのスタイルを指定する。初期値はシンボルdisplayとする。 適用可能な特質は,次のとおりとする。 (1) 特質math-display-mode:は,シンボルdisplay又はシンボルinlineを値とし,フォーマット処理のスタイルを指定する。初期値はシンボルdisplayとする。 (2) 特質radical:はラベルなしsosofoであって,根号グリフに用いる単一の文字を含む。この特質は継承しない。指定されない場合,処理系依存の方法で無指定時値を決定する。 12.6.26.10 数学演算子流し込みオブジェクト(math-operator) 流し込みオブジェクトmath-operatorは,四つの部分からなる領域を記述する。 各部分はそれぞれ次の領域を記述する。 (1) 基本領域, (2) 下限値領域, (3) 上限値領域, (4) 演算子シンボル領域 流し込みオブジェクトmath-operatorは,次のポートをもつ。 (1) 主ポートは流し込みオブジェクトの主要な内容のために用いる。 (2) ポートoperatorは,演算子シンボルのために用いる。 (3) ポートlower-limitは,下限値の内容のために用いる。 (4) ポートupper-limitは,上限値の内容のために用いる。 各ポートは,流し込みオブジェクトmath-sequenceのポートと同じクラスを受け付ける。 適用可能な特質は,次のとおりとする。 (1) 特質math-display-mode:は,シンボルdisplay又はシンボルinlineを値とし,フォーマット処理のスタイルを指定する。初期値はシンボルdisplayとする。 備考 シンボルdisplayは,典型的には行進行方向に沿ってその前後に上限値,下限値を配置することを示す。シンボルinlineは,典型的には行内進行方向に沿って演算子シンボルの後に上限値,下限値を配置することを示す。 12.6.26.11 格子流し込みオブジェクト(grid) 流し込みオブジェクトgridは,格子状に配置される一連の領域を記述する。格子の列(column)進行方向が送り方向となり,行(row)進行方向が行進行方向となる。 備考 行列は流し込みオブジェクトgridを流し込みオブジェクトfenceで囲むことで取り扱う。 適用可能な特質は次のとおりとする。 (1) 特質grid-position-cell-type:はシンボルであって,格子内のセルの位置決めを次のように決定する。 (a) シンボルexplicitは,各格子セルが明示的に行番号,列番号をもつことを示す。 (b) シンボルrow-majorは,各セルの位置は流し込みオブジェクトgridのどこに出現するかによって決定され,ある行のセルはそれ以降の行のセルより先に出現することを示す。 (c) シンボルcolumn-majorは,各セルの位置は流し込みオブジェクトgridのどこに出現するかによって決定され,ある列のセルはそれ以降の列のセルより先に出現することを示す。 初期値は,シンボルrow-majorとする。 (2) 特質grid-n-columns:は正の整数であって,流し込みオブジェクトgrid内の列の数を指定する。この特質は継承せず,特質grid-position-cell-type:の値がシンボルrow-major又はシンボルexplicitの場合に指定しなければならない。 (3) 特質grid-n-rows:は正の整数であって,流し込みオブジェクトgrid内の列の数を指定する。この特質は継承せず,特質grid-position-cell-type:の値がシンボルcolumn-major又はシンボルexplicitの場合に指定しなければならない。 (4) 特質grid-column-alignment:はシンボルであって,流し込みオブジェクトgrid内の領域の列進行方向における揃えを指定する。指定可能な値は,シンボルstart,シンボルcenter又はシンボルendのいずれかとする。初期値はシンボルcenterとする。 (5) 特質grid-row-alignment:はシンボルであって,流し込みオブジェクトgrid内の領域の行進行方向における揃えを指定する。指定可能な値は,シンボルstart,シンボルcenter又はシンボルendのいずれかとする。初期値はシンボルcenterとする。 (6) 特質grid-equidistant-rows?:は型booleanのオブジェクトであって,流し込みオブジェクトgrid内の領域の中心が,流し込みオブジェクトgridの行(row)進行方向にそって等距離にするか否かを指定する。初期値は#fとする。 (7) 特質grid-equidistant-columns?:は型booleanのオブジェクトであって,流し込みオブジェクトgrid内の領域の中心が,流し込みオブジェクトgridの列(column)進行方向にそって等距離にするか否かを指定する。初期値は#fとする。 (8) 特質math-display-mode:は,シンボルdisplay又はシンボルinlineを値とし,フォーマティングのスタイルを指定する。初期値はシンボルdisplayとする。 流し込みオブジェクトgridは,単一の主ポートをもちすべての内容はそこに含む。主ポートは,流し込みオブジェクトクラスgrid-cellを受け付ける。 12.6.26.12 格子セル流し込みオブジェクト(grid-cell) 流し込みオブジェクトgrid-cellは,格子内の各セルの内容を格納する。流し込みオブジェクトgrid-cellは,単一の主ポートを持ちすべての内容をそこに含む。主ポートは,流し込みオブジェクトmath-sequenceのポートと同じクラスを受け付ける。 適用可能な特質は次のとおりとする。 (1) 特質column-number:は正の整数であって,そのセルの属する列を指定する。この特質は継承しない。この特質は,その親の流し込みオブジェクトgridが特質grid-position-cell-type:にシンボルexplicitを値としてもつ場合にだけ指定する。その値は親の流し込みオブジェクトgridの特質grid-n-columns:に指定した値を越えてはならない。最初の列を示す値は1とする。 (2) 特質column-number:は正の整数であって,そのセルの属する行(row)を指定する。この特質は継承しない。この特質は,その親の流し込みオブジェクトgridが特質grid-position-cell-type:にシンボルexplicitを値としてもつ場合にだけ指定する。その値は親の流し込みオブジェクトgridの特質grid-n-rows:に指定した値を越えてはならない。最初の行(row)を示す値は1とする。 任意の流し込みオブジェクトgridにおいて,二つ以上のセルが特質column-number:及び特質row-number:に同じ値をもってはならない。 12.6.27 表用流し込みオブジェクト 表のフォーマティング指定には,次の流し込みオブジェクトクラスを使用する。 (1) 流し込みオブジェクトクラスtable, (2) 流し込みオブジェクトクラスtable-part, (3) 流し込みオブジェクトクラスtable-column, (4) 流し込みオブジェクトクラスtable-row, (5) 流し込みオブジェクトクラスtable-cell, (6) 流し込みオブジェクトクラスtable-border. 12.6.27.1 表流し込みオブジェクト(table) 流し込みオブジェクトtableは,単一の主ポートをもつ。 主ポートの内容は,次のいずれかとする。 (1) 流し込みオブジェクトクラスtable-partに属するすべての流し込みオブジェクト, (2) 流し込みオブジェクトクラスtable-column,流し込みオブジェクトクラスtable-row,流し込みオブジェクトクラスtable-cell,のいずれかに属するすべての流し込みオブジェクト 流し込みオブジェクトtableが流し込みオブジェクトtable-columnを含む場合,それらは他のクラスの流し込みオブジェクトすべてに先行しなければならない。流し込みオブジェクトtableは行外となる。 表には関連する方向が二つあり,それぞれ行(row)進行方向及び列(column)進行方向と呼ぶ。行(row)進行方向は,流し込みオブジェクトtableの配置方向に等しい。列(column)進行方向は,流し込みオブジェクトtableの特質writing-mode:の値によって指定される方向となる。この二つの方向は直交しなければならない。 流し込みオブジェクトtableは,次の特質をもつ。 (1) 特質table-width:は型length-specであって,表の列(column)進行方向の大きさを指定するか又は機能table-auto-featureを使用している場合には,#fでその内容に従った最小サイズを指定する。この特質は継承しない。無指定時値は,行外サイズから適用可能なすべてのインデントを引いた値となる。 (2) 特質table-auto-width-method:は#f又は公開識別子文字列であって,列(column)の幅を決定する方式を指定する。この特質は機能table-auto-widthを使用している場合にだけ適用する。初期値は#fとする。 (3) 特質table-border:はラベルなしsosofoであって,一つの流し込みオブジェクトtable-borderを含む。値として#t又は#fも指定可能とする。これらは,それぞれ特質border-present?:に#t又は#fを値にもつ流し込みオブジェクトtable-borderを指定するの同等で,その他の特質は流し込みオブジェクトtableから継承したものを用いる。この特質は,特質before-row-border:,特質after-row-border:,特質before-column-border:及び特質after-column-border:特質に対する無指定時値を決定する。初期値は#fとする。 (4) 特質before-row-border:はラベルなしsosofoであって,行(row)進行方向にそって前にある辺の境界として用いる,一つの流し込みオブジェクトtable-borderを含む。値として#t又は#fも指定可能とする。これらは,それぞれ特質border-present?:に#t又は#fを値にもつ流し込みオブジェクトtable-borderを指定するの同等で,その他の特質は流し込みオブジェクトtableから継承したものを用いる。この特質は継承しない。無指定時値は,特質table-border:の値とする。 (5) 特質after-row-border:は特質before-row-border:と同じ方法で指定するが,適用する辺は行(row)進行方向に後の辺となる。 (6) 特質before-column-border:は特質before-row-border:と同じ方法で指定するが,適用する辺は列(column)進行方向に前の辺となる。 (7) 特質after-column-border:は特質before-row-border:と同じ方法で指定するが,適用する辺は列(column)進行方向に後の辺となる。 (8) 特質table-corner-rounded:は,表の角を四分の一円で描くことに関して,次のとおり指定する。 (a) #fは,どの角も丸めないことを意味する。 (b) #tは,すべての角を丸めることを意味する。 (c) シンボルのリストであって,それぞれの角を丸めるか否かを指定する。各シンボルはx-yの形式をもち,x及びyはbefore又はafterのいずれかとする。boxが行外の場合,xは角が表記モードが決定する方向に関して前にあるか後にあるかを指定し,yは角が配置方向に関して前にあるか後にあるかを指定する。boxが行内の場合,xは角が送り方向に関して前にあるか後にあるかを指定し,yは角が行進行方向に関して前にあるか後にあるかを指定する。初期値は#fとする。 (9) 特質table-corner-radius:は型length-specであって,特質box-corner-rounded:の値が#fでない場合の四分の一円の半径を指定する。負の値は円の中心が辺の好転に位置することを示す。この場合,角はへこむ。初期値は3ptとする。 (10) 特質position-preference:は#f又はシンボルtop若しくはシンボルbottomを値とする。この特質は流し込みオブジェクトが,流し込みオブジェクトcolumn-set-sequence上のポートであって,段部分集合の上部浮動区域又は下部浮動区域の両方に流し込まれるポートに向けられる場合に,この流し込みオブジェクトからの領域がどちらかだけの区域流し込まれるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (11) 特質display-alignment:はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,表記モードの方向に関する揃えを指定する。初期値はシンボルstartとする。この特質は流し込みオブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向の大きさが,行外サイズに等しくする。最初にスペースは領域に加えられ,その大きさを行外サイズから先頭インデント及び最終インデントの合計を引いた値に等しくする。 (a) 揃えがシンボルstartの場合,スペースはすべて表記モード方向の最終に加えられる。 (b) 揃えがシンボルendの場合,スペースはすべて表記モード方向の先頭に加えられる。 (c) 揃えがシンボルcenterの場合,スペースは表記モード方向の先頭及び最終に等分にに加えられる。 (d) 揃えがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して外側の辺に加えられる。 (e) 揃えがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して内側の辺に加えられる。 その後,先頭インデントに等しい量のスペースが表記モードの方向で先頭に加えられ,最終インデントに等しい量のスペースが表記モードの方向で最終に加えられる。 (12) 特質start-indent:は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのインデントを指定する。初期値は0ptとする。 (13) 特質end-indentは型length-specであって,表記モードの方向で最終に位置する領域の辺からのインデントを指定する。初期値は0ptとする。 (14) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。 (15) 特質span:は正の整数であって,この流し込みオブジェクトの生成する領域が抜く段の数を指定する。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられた場合にだけ適用する。初期値は1とする。 (16) 特質span-weak?:は,型booleanのオブジェクトであって,この流し込みオブジェクトの結果となる領域が,弱い段抜きを行うか,強い段抜きを行うかを指定する。12.6.5 参照のこと。この特質は流し込みオブジェクトが,抜くことの可能な段部分集合の上部浮動区域,下部浮動区域,本文域に流れ込む,段集合列のポートに向けられ,特質span:が1を越える場合に限って適用する。初期値は#fとする。 (17) 特質space-before:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (18) 特質space-after:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (19) 特質keep-with-previous?:は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (20) 特質keep-with-next?:は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (21) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (22) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (23) 特質keep:には,次のいずれかを指定する。 (a) 値#tは,この流し込みオブジェクトの生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,この流し込みオブジェクトによって生成された領域を,同じページ内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,この流し込みオブジェクトによって生成された領域を,同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d) シンボルcolumnは,この流し込みオブジェクトによって生成された領域を,同じ段集合内に配置すること及びそれぞれの領域が抜く最初の段は同じになることを示す。 (e) 値#fはこの特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。 (24) 特質may-violate-keep-before?:は,型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 (25) 特質may-violate-keep-after?:は,型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 12.6.27.2 表部部分流し込みオブジェクト(table-part) 流し込みオブジェクトtable-partは,流し込みオブジェクトtableの中でだけ出現してよい。 流し込みオブジェクトtable-partは,三つのポートをもつ。 (1) 主ポートは,表本体に用いる。 (2) ポートheaderは,表ヘッダに用いる。 (3) ポートfooterは,表フッタに用いる。 流し込みオブジェクトtable-partのポートに適用可能な流し込みオブジェクトは,ここで明示的に記述してあるものだけとする。流し込みオブジェクトtable-columnは主ポートに適用可能とする。それらは,その他のクラスの流し込みオブジェクトに先行していなければならない。流し込みオブジェクトtable-partのすべてのポートに,流し込みオブジェクトtable-row及び流し込みオブジェクトtable-cellを適用可能とする。 流し込みオブジェクトtable-partをフォーマットした結果は,領域列となる。それぞれの領域は,ポートheaderの内容(特質table-part-omit-middle-header?:の指定によって無視される場合を除く),続いて主ポートの内容,さらにポートfooterの内容(特質table-part-omit-middle-footer?:の指定によって無視される場合を除く)からなる。主ポート内の各行(row)は一度だけ出現し,各行(row)の順序は保存されなければならない。ポートheader及びポートfooterの行(row)は,各結果領域で複製する。表内のすべての流し込みオブジェクトtable-partは同じ幅をもつ。 次の特質を適用可能とする。 (1) 特質table-port-omit-middle-header?:は型booleanであって,真の値は,流し込みオブジェクトtable-partが生成する最初の領域が,表によって生成される領域の先頭に位置しない場合には,ポートheaderの内容で開始しないことを指定する。初期値は#fとする。 (2) 特質table-port-omit-middle-footer?:は型booleanであって,真の値は,流し込みオブジェクトtable-partが生成する最後の領域が,表によって生成される領域の末尾に位置しない場合には,ポートfooterrの内容で終了しないことを指定する。初期値は#fとする。 (3) 特質space-before:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で前に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (4) 特質space-after:は型display-spaceのオブジェクトであって,この流し込みオブジェクトによって生成される領域の配置方向で後に挿入する空きを指定する。この特質は継承しない。無指定時には,空きを挿入しない。 (5) 特質keep-with-previous?:は型booleanであって,流し込みオブジェクトが直前の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (6) 特質keep-with-next?:は型booleanであって,流し込みオブジェクトが直後の流し込みオブジェクトと同じ領域内に保持されるか否かを指定する。この特質は継承しない。無指定時値は#fとする。 (7) 特質break-before:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を開始すると指定する。この特質は継承しない。無指定時は#fとする。 (8) 特質break-after:は,#f,シンボルpage,シンボルpage-region,シンボルcolumn又はシンボルcolumn-setのいずれかを値とし,流し込みオブジェクトがその種別の領域を終了するかを指定する。この特質は継承しない。無指定時は#fとする。 (9) 特質keep:には,次のいずれかを指定する。 (a) 値#tはこの流し込みオブジェクトが生成する領域が,可能な最も小さい領域内で一緒に保持されることを意味する。 (b) シンボルpageは,流し込みオブジェクトによって生成された領域が同じページ内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトpage-sequenceの先祖をもたなければならない。 (c) シンボルcolumn-setは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置することを示す。この場合,流し込みオブジェクトは流し込みオブジェクトcolumn-set-sequenceの先祖をもたなければならない。 (d)シンボルcolumnは,流し込みオブジェクトによって生成された領域が同じ段集合内に配置すること及びそれぞれの領域が抜く最初の段は同じになることを示す。 (e) 値#fはこの特質を無視することを指定する。 この特質は継承しない。初期値は#fとする。 (10) 特質may-violate-keep-before?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直前の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 (11) 特質may-violate-keep-after?:は型booleanであって,真の場合には先祖の流し込みオブジェクトの特質keep:によってなされた,この流し込みオブジェクトと直後の流し込みオブジェクトの相対位置決めに関する制約を尊重してはならないことを指定する。この特質は継承しない。無指定時値は#fとする。 12.6.27.3 表列流し込みオブジェクト(table-column) 流し込みオブジェクトtable-columnは原子流し込みオブジェクトであって,同じ列及び列抜きの表セルに適用する特質を指定する。 次の特質を適用可能とする。 (1) 特質column-number:は正の整数であって,この流し込みオブジェクトtable-columnから特質を継承する表セルの列番号を指定する。無指定時値は1に直前の流し込みオブジェクトtable-columnの特質column-number:の値を加えたもので,直前の流し込みオブジェクトtable-columnが存在しない場合1となる。この特質は継承しない。 (2) 特質n-columns-spanned:は正の整数であって,この流し込みオブジェクトtable-columnから特質を継承する表セルがいくつの列を抜くかを指定する。この特質は継承しない。無指定時値は1とする。 (3) 特質width:は型length-specであって,この列(column)の幅を指定する。この特質は継承しない。この特質は特質n-columns-spanned:が1より大きい流し込みオブジェクトtable-columnには指定してはならない。特質width:は,機能table-auto-widhtを指定しない限り,各流し込みオブジェクトtable-columnごとに指定する。 (4) 特質display-alignment:はシンボルであって,シンボルstart,シンボルcenter,シンボルend,シンボルinside,シンボルoutsideのいずれかを値にとり,この流し込みオブジェクトが結果とする領域の,表記モードの方向に関する揃えを指定する。初期値はシンボルstartとする。この特質は流し込みオブジェクトがその領域を拡大して,その大きさが領域コンテナの流し込み方向に直交する方向の大きさが,行外サイズに等しくする。最初にスペースは領域に加えられ,その大きさを行外サイズから先頭インデント及び最終インデントの合計を引いた値に等しくする。 (a) 揃えがシンボルstartの場合,スペースはすべて表記モード方向の最終に加えられる。 (b) 揃えがシンボルendの場合,スペースはすべて表記モード方向の先頭に加えられる。 (c) 揃えがシンボルcenterの場合,スペースは表記モード方向の先頭及び最終に等分に加えられる。 (d) 揃えがシンボルinsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して外側の辺に加えられる。 (e) 揃えがシンボルoutsideの場合,流し込みオブジェクトは流し込みオブジェクトクラスpage-sequenceの先祖をもたなければならず,表記モードの方向は流し込みオブジェクトpage-sequenceの特質binding-edge:の方向に直交するしなければならない。この場合,スペースは見開きに対して内側の辺に加えられる。 その後,先頭インデントに等しい量のスペースが表記モードの方向で先頭に加えられ,最終インデントに等しい量のスペースが表記モードの方向で最終に加えられる。この特質は列(column)内の外部から揃えられた各段落の最初の行の揃えに用いる。 (5) 特質start-indent:は型length-specであって,表記モードの方向で先頭に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は列(column)内の外部から揃えられた各段落の最初の行の揃えに用いる。 (6) 特質end-indentは型length-specであって,表記モードの方向で最終に位置する領域の辺からのインデントを指定する。初期値は0ptとする。この特質は列(column)内の外部から揃えられた各段落の最初の行の揃えに用いる。 流し込みオブジェクトtable-columnに指定した任意の継承可能特質は,12.4の記載とおり,表セル又は表セルの内容によって間接的に継承される。 機能table-auto-widthを利用可能にしない場合,流し込みオブジェクトtable-part内又は流し込みオブジェクトtable-partを含まない流し込みオブジェクトtable内の列(column)の数は,主ポートの内部にある流し込みオブジェクトtable-columnによって決定する。内容内の各セル及びそのセルが抜く各列(column)について,列番号が等しい流し込みオブジェクトtable-columnが存在しなければならない。機能table-auto-widthを利用可能にした場合,列の数は表の内容から自動的に決定される。 (table-unit k) 比率尺度k単位の型length-specを返す。この手続きは特質widthの値で使用可能とする。特定の表での比率尺度の単位の値をうまく選択して,列の幅の合計がその表の幅と等しくする。 備考 これは列の幅を比率で指定可能にする。 12.6.27.4 表の幅の自動計算 この12.6.27.4は機能table-auto-widthを利用可能にした場合に適用する。幅の指定のない列の幅は,少なくともその列に広がる任意の表セルの内容の可能な最小サイズの最大値と同じ大きさがなければならない。 備考 特質lines:の値がシンボルwrapとなる段落を含む表セルの場合,その可能な最小幅は処理系依存の方式で決定される。例えば,最も長い語の長さの場合もあるだろう。 表セルが一つ以上の列を抜く場合,表セルが抜く列の幅の合計値は少なくともそのセルのないようの幅と同じ大きさをもつ。 列の幅について型length-specで指定した場合,列の幅は指定した幅になる。列の幅について型length-specで指定した場合,その長さはその列に広がる任意の表セルの行外サイズとして用いる。 その他の計算方式の様相は,特質table-auto-width-method:によって制御される。 12.6.27.5 表行流し込みオブジェクト(table-row) 流し込みオブジェクトtable-rowは,表セルを行(row)にグループ化する役にたつ。同一の流し込みオブジェクトtable-row内のすべて表セルは,幾何学的な意味で同じ行から開始する。 流し込みオブジェクトtable-rowは単一の主ポートをもち,主ポートは流し込みオブジェクトtable-cellを受け付ける。 流し込みオブジェクトtable-rowは,流し込みオブジェクトtable-part又は流し込みオブジェクトtableの子として出現できる。 流し込みオブジェクトtable-cellが,流し込みオブジェクトtable-part内又は流し込みオブジェクトtable内に直接出現した場合,セルは特質starts-row?:及び特質ends-row?:を用いてグループ化される。 12.6.27.6 表セル流し込みオブジェクト(table-cell) 流し込みオブジェクトtable-cellは,単一の主ポートをもつ。主ポートは行外となりうる任意の流し込みオブジェクトを受け付ける。流し込みオブジェクトtable-cellは,流し込みオブジェクトtable-row,流し込みオブジェクトtable-part又は流し込みオブジェクトtableの子として出現してよい。 流し込みオブジェクトtable-cellは,次の特質をもつ。 (1) 特質column-number:は正の整数であって,この表セルが広がる最初の列番号を指定する。この特質は継承しない。無指定時値は現在の列番号とする。表行(row)内の最初の表セルでは,現在の列番号を1とする。それ以外の表セルでは,現在の列番号は同じ行の直前の表セルの列番号とその表セルが抜く列の数を加えたものとなる。 備考 以前に出現した表行(row)が一つを越える行(row)を抜く表セルをもつ場合には,それ以降の表行(row)では衝突をさけるため特質column-number:を指定する。 (2) 特質n-column-spanned:は正の整数であって,このセルがこの列から始まって列(column)進行方向に抜く列の数を指定する。この特質は継承しない。無指定時値は1とする。 (3) 特質n-rows-spanned:は正の整数であって,このセルがこの行(row)から始まって行(row)進行方向に抜く行の数を指定する。この特質は継承しない。無指定時値は1とする。 (4) 特質cell-before-row-margin:は型lengthであって,行(row)進行方向の前余白を与える。初期値は0とする。 (5) 特質cell-after-row-margin:は型lengthであって,行(row)進行方向の後余白を与える。初期値は0とする。 (6) 特質cell-before-column-margin:は型lengthであって,列(column)進行方向の前余白を与える。初期値は0とする。このセルの内容の行外サイズは,セルの幅から特質cell-before-column-margin:及び特質cell-after-column-margin:の合計を引いたものとなる。 (7) 特質cell-after-column-margin:は型lengthであって,列(column)進行方向の後余白を与える。初期値は0とする。 (8) 特質cell-row-alignment:は,シンボルstart,シンボルend又はシンボルcenterのいずれかであって,セルの内容の行(row)進行方向における揃えを指定する。初期値はシンボルstartとする。 (9) 特質cell-background?:は型booleanであって,セルが背景をもつか否かを指定する。背景をもつ場合,特質background-color:がその背景として用いる色を指定する。初期値は#fとする。 (10) 特質background-color:は#f又は型colorのオブジェクトであって,流し込みオブジェクトの背景のために生成されるマークのカラーを指定する。初期値は#fとする。この特質は特質cell-background?:が#tの場合にだけ適用する。 (11) 特質background-layer:は整数であって,流し込みオブジェクトの背景の結果とする領域のマークのレイヤーを指定する。初期値は-1とする。この特質は特質cell-background?:が#tの場合にだけ適用する。 (12) 特質cell-before-row-border:はラベルなしsosofoであって,行(row)進行方向にそって前にある辺の境界として用いる,一つの流し込みオブジェクトtable-borderを含む。値として#t又は#fも指定可能とする。これらは,それぞれ特質border-present?:に#t又は#fを値にもつ流し込みオブジェクトtable-borderを指定するの同等で,その他の特質は流し込みオブジェクトtableから継承したものを用いる。初期値は#fとする。 (13) 特質cell-after-row-border:は特質cell-before-row-border:と同じ方法で指定するが,適用する辺は行(row)進行方向に後の辺となる。 (14) 特質cell-before-column-border:は特質cell-before-row-border:と同じ方法で指定するが,適用する辺は列(column)進行方向に前の辺となる。 (15) 特質cell-after-column-border:は特質cell-before-row-border:と同じ方法で指定するが,適用する辺は列(column)進行方向に後の辺となる。 (16) 特質starts-row?:は型booleanであって,このセルが行(row)を開始するか否かを指定する。この特質は流し込みオブジェクトtable-row内にない流し込みオブジェクトtable-celにだけ適用可能とする。無指定時値は#fとする。この特質は継承しない。流し込みオブジェクトtable-rowの一部ではない流し込みオブジェクトtable-cellは,特質starts-row?:が真の場合,直前に流し込みオブジェクトをもたない場合,直前の流し込みオブジェクトが流し込みオブジェクトtable-cellでない場合又は直前の流し込みオブジェクトが流し込みオブジェクトtable-cellであって,その特質ends-row?:が真の場合に表行を開始する。 (17) 特質ends-row?:は型booleanであって,このセルが表行(row)を終了するか否かを指定する。この特質は,流し込みオブジェクトtable-cellが流し込みオブジェクトtable-rowの中にない場合にだけ適用可能とする。無指定時値は#fとする。この特質は継承しない。 (18) 特質cell-crossed:は,#f又は次のシンボルのいずれかを値とする。 (a) シンボルwithは一本の斜め線を,表行(row)進行方向及び表列(column)進行方向の両方で前になる角から,対角線を引くことを指定する。 (b) シンボルagainstは一本の斜め線を,表行(row)進行方向に最初で,表列(column)進行方向で最後の角から,対角線を引くことを指定する。 (c) シンボルbothは,セルの各角から斜めに対角に,二本の対角線を引くことを指定する。 初期値は#fとする。線の見ためは,流し込みオブジェクトtable-cellの次の特質の値によって決定する。 (19) 特質line-cap:はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。この特質は,特質cell-crossed:が真の場合にだけ適用する。 (20) 特質line-dash:は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さはISO/IEC 10180が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。残りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長さ0ptを含むリストとする。この特質は,特質cell-crossed:が真の場合にだけ適用する。 (21) 特質line-thickness:は長さであって,線の太さを指定する。初期値は1ptとする。この特質は,特質cell-crossed:が真の場合にだけ適用する。 (22) 特質line-repeat:は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。初期値は1とする。この特質は,特質cell-crossed:が真の場合にだけ適用する。 (23) 特質line-sep:は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。この特質は,特質cell-crossed:が真の場合にだけ適用する。 (24) 特質float-out-sidelines?:は型booleanであって,真の場合にはセルの内容に側線添付領域が存在する場合,それをセルからはずして,代わりに表に添付させることを指定する。初期値は#fとする。 (25) 特質float-out-marginalia?:は,真の場合にはセルの内容に余注添付領域が存在する場合,それをセルからはずして,代わりに表に添付させることを指定する。初期値は#fとする。 (26) 特質float-out-line-numbers?:は,真の場合にはセルの内容に行番号添付領域が存在する場合,それをセルからはずして,代わりに表に添付させることを指定する。初期値は#fとする。 備考 表列(column)進行方向における表セルの内容の揃え(つまり右向き,下向きの表記方向における水平方向の揃え)は,表セルの内容の特質display-alignment:又は特質quadding:によって制御する。 12.6.27.7 表罫線流し込みオブジェクト(table-border) 流し込みオブジェクトtable-borderは原子流し込みオブジェクトであって,表セル又は表全体の境界線を指定するために用いる。流し込みオブジェクトtable-borderは,流し込みオブジェクトの内容とはならない。 次の特質を適用可能とする。 (1) 特質border-priority:は整数であって,境界線間の競合をどのように解決するか指定する。二つの流し込みオブジェクトtable-borderが特定の境界線の一部として適用された場合,より大きい優先度をもつものを使用する。二つの同一ではない表罫線が同じ優先度をもつ場合エラーとする。初期値は0とする。 備考 この特質は,表の境界線指定とセルの境界線の指定の競合を解決すると同時に,隣接するセル間の境界線の指定の競合も解決する。 (2) 特質border-alignment:はシンボルであって,境界線の揃えを境界の位置相対で次のとおり指定する。 (a) シンボルcenterは,線は境界位置に対して中央に揃えることを指定する。 (b) シンボルstartは,表行(row)進行方向又は表列(column)進行方向において線の最初の辺を境界位置に揃えることを指定する。 (c) シンボルendは,表行(row)進行方向又は表列(column)進行方向において線の最後の辺を境界位置に揃えることを指定する。 (d) シンボルoutsideは,表の外側の辺となる線の辺を境界の位置に揃えることを指定する。この特質は表の辺となる境界にだけ指定可能とする。 (e) シンボルoutsideは,表の外側の辺とならない線の辺を境界の位置に揃えることを指定する。この特質は表の辺となる境界にだけ指定可能とする。初期値はシンボルcenterとする。 (3) 特質border-present?:は型booleanであって,境界が存在するか否かを指定する。初期値は #tとする。 (4) 特質border-omit-at-break?:は型booleanであって,この境界が表の分割に隣接している場合に無視することを指定する。境界はこの特質又は特質border-preseent?:が#fの場合無視される。この特質は,表行(row)進行方向に平行な境界にだけ指定可能とする。初期値は#fとする。 (5) 特質color:は型colorのオブジェクトであって,流し込みオブジェクトを生成するカラーを指定する。初期値は,色空間device-grayの無指定時カラーとする。 (6) 特質layer:は整数であって,その流し込みオブジェクトの結果とする領域のマークのレイヤーを指定する。領域はそのレイヤー値が低い任意の領域から可視化される。初期値は0とする。 (7) 特質line-cap:はシンボルであって,シンボルbutt,シンボルround又はシンボルsquareのいずれかの値をとり,線端スタイルを指定する。初期値はシンボルbuttとする。 (8) 特質line-dash:は一つ以上の型lengthのリストであって,線の破線パターンを指定する。最初の長さはISO/IEC 10180が定義するグラフィック状態変数CurrentDashPatternの構成要素numberを指定する。残りの長さは,グラフィック状態変数CurrentDashPatternの構成要素vectorを指定する。初期値は,長さ0ptを含むリストとする。 (9) 特質line-thickness:は長さであって,線の太さを指定する。初期値は1ptとする。 (10) 特質line-repeat:は正の整数であって,平行に引く線の数を指定する。例えば,値2は二重線を示す。初期値は1とする。 (11) 特質line-sep:は長さであって,平行に引く線の中心間の距離を指定する。初期値は1ptとする。 (12) 特質line-miter-limit:は数であって,線のマイタ接続限界を示す。マイタ接続の意味は,ISO/IEC 10180で定義する。初期値は10とする。 (13) 特質line-join:はシンボルであって,シンボルmiter,シンボルround又はシンボルbevelのいずれかの値をとり,線の接続スタイルを指定する。初期値はシンボルmiterとする。 境界の幅はセルの幅に影響せず,セルの内容の位置決め,表の幅,表によって生成される領域の大きさに影響しない。特に表の幅は流し込みオブジェクトtableの特質table-width:で指定されており,セルの幅の合計に等しい。 12.6.28 オンライン表示用流し込みオブジェクトクラス この12.6.28で記述する機能を利用するためには,機能onlineを必要とする。 12.6.28.1 スクロール流し込みオブジェクト(scroll) 流し込みオブジェクトscrollは,オンライン表示の最上位レベルの流し込みオブジェクトとして用いる。流し込みオブジェクトscrollは主ポートをもち,主ポートは行外流し込みオブジェクトを受け付ける。流し込み方向に直交する方向の大きさは,表示環境によって決定される。 この流し込みオブジェクトは,次の特質をもつ。 (1) 特質filling-direction:はシンボルであって,シンボルtop-to-bottom,シンボルleft-to-right又はシンボルright-to-leftをとる。この特質は領域コンテナの流し込み方向を指定する。領域コンテナの流し込み方向は,配置方向と直交してよい。初期値はシンボルtop-to-bottomとする。 (2) 特質writing-mode:はシンボルであって,シンボルleft-to-right,シンボルright-to-left又はシンボルtop-to-bottomのいずれかを値とする。表記モードの決定する方向は,配置方向に直交する。初期値は,シンボルleft-to-rightとする。この特質は,流し込みオブジェクトのどちらの側に特質start-margin:及びend-margin:を適用するかを決定する。 (3) 特質background-color:は#f又は型colorのオブジェクトであって,流し込みオブジェクトの背景のために生成されるマークのカラーを指定する。初期値は#fとする。 (4) 特質background-layer:は整数であって,流し込みオブジェクトの背景の結果とする領域のマークのレイヤーを指定する。初期値は-1とする。 (5) 特質background-tile:は#f又は公開識別子文字列であって,スクロールの背景を覆うために繰り返されるイメージを示す。初期値は#fとする。 (6) 特質start-margin:は型length-specであって,結果領域の表記モード方向において最初の領域の辺から,最も近いテキスト領域までの距離を指定する。初期値は0mとする。 (7) 特質end-margin:は型length-specであって,結果領域の表記モード方向において最後の領域の辺から,最も近いテキスト領域までの距離を指定する。初期値は0mとする。 12.6.28.2 複数モード流し込みオブジェクトクラス(multi-mode) 流し込みオブジェクトmulti-modeは,二つ以上の提示モードをもつ流し込みオブジェクトとする。この流し込みオブジェクトは,提示モード間を処理系依存の方法で切り替えることができる。 備考 実装はメニューを,異なる複数モードとして表示するかもしれない。又は,フォーマット済み流し込みオブジェクトをクリックすることによって,それらのモード間を巡回するかもしれない。 この流し込みオブジェクトは,その内容及び提示モードに応じて行内でも行外でもよい。 この流し込みオブジェクトは,次の特質をもつ。 (1) 特質multi-mode:は次に示す形式のリストとする。リストの要素の数は,提示モードの数を与える。リストは少なくとも二つの要素をもつ。リストの各要素は,ポート指定又はポート指定及びモードの記述を与える文字列からなるリストとする。ポート指定は,主ポートを示す#f又は名前付きのポートを指定するシンボルとする。ポート指定はリスト内で二回以上出現してはならない。リストには#fのポート指定が一つ存在する。対応するモードは主モードとする。 備考 文字列はメニュー内に表示されてもよい。 この特質は継承されず,指定しなければならない。 (2) 特質principal-mode-simultaneous?:は型booleanであって,主モードが他のモードと同時に提示されるかを指定する。この特質が真であれば,現提示モードが主モード以外の場合に,主モードのポート内容と,現モードのポート内容の両方が表示される。初期値は#fとする。 流し込みオブジェクトは各モードごとに一つのポートをもつ。ポートの内容は,対応するモードの提示を指定する。最初に流し込みオブジェクトは,主モードを用いて表示される。 備考 例えば,クリックするとウィンドウをポップアップするアイコンは,二つのポートをもち,最初のポートにはアイコンを表わす流し込みオブジェクトcharacterを,二つ目にはスクロール流し込みオブジェクトを含む,流し込みオブジェクトmulti-modeで表現できるかもしれない。この場合には,特質principal-mode-simultaneous?:は真となるだろう。 12.6.28.3 リンク流し込みオブジェクト(link) 流し込みオブジェクトlinkはハイパテキストリンクを表わし,流し込みオブジェクト及びその内容を表わす領域を,典型的にはクリックすることによって対話的にたどることができる。流し込みオブジェクトlinkは一つの主ポートをもち,主ポートは行内及び行外の両方の流し込みオブジェクトを含む。流し込みオブジェクトlinkは入れ子にでき,もっとも内側のリンクが有効となる。 流し込みオブジェクトlinkは,次の特質をもつ。 (1) 特質destination:は#f,型addressのオブジェクト又は一つ以上の型addressのオブジェクトからなるリストを値とする。12.5.8を参照のこと。値#fは入れ子のリンクに用い,流し込みオブジェクトの内容はその流し込みオブジェクトを含むリンクの一部とは見なさないことを指定する。 12.6.28.4 余注流し込みオブジェクト(marginalia) 流し込みオブジェクトmarginaliaは,流し込みオブジェクトmarginaliaが出現した行に対して,その結果領域が添付領域となる流し込みオブジェクトを含む。12.3.4 を参照のこと。流し込みオブジェクトmarginaliaは一つの主ポートをもち,行内流し込みオブジェクトだけを含む。流し込みオブジェクトmarginaliaは,流し込みオブジェクトクラスparagraphに属する流し込みオブジェクトを先祖にもたなければならない。 一つの行に二つ以上の余注領域が添付された場合の動作は処理系依存とする。 流し込みオブジェクトmarginaliaは,次の特質をもつ。 (1) 特質marginalia-sep:は型length-specであって,添付する余注領域との分離を指定する。初期値は0mとする。 (2) 特質marginalia-side:はシンボルであって,シンボルstart又はシンボルendを値とし,余注領域を行のどちら側に添付するかを指定する。初期値は,シンボルstartとする。 (3) 特質marginalia-keep-with-previous?:は,余注領域が直前の流し込みオブジェクトの最後の領域と関連し,直後の流し込みオブジェクトの最初の領域と関連はしないことを指定する。初期値は#fとする。