Previous

Table of Contents

Bottom     

Next     


Quick Table of Contents
4 Area Model
    4.1 Introduction
    4.2 Rectangular Areas
    4.3 Spaces and Conditionality
    4.4 Block-areas
    4.5 Line-areas
    4.6 Inline-areas
    4.7 Ordering Constraints
    4.8 Keeps and Breaks
    4.9 Rendering Model
    4.10 Sample Area Tree

4 Area Model 領域モデル

In XSL, one creates a tree of formatting objects that serve as inputs or specifications to a formatter. XSLでは,フォーマッタへの入力又は指定として動作するフォーマット化オブジェクトの木を生成する。 The formatter generates a hierarchical arrangement of areas which comprise the formatted result. フォーマッタは,フォーマット結果を構成する領域の階層的な配列を生成する。 This section defines the general model of these areas and how they interact. この節箇条4では,これらの領域の一般モデルを定義し,どのようにそれらが相互作用するかを定義する。 The purpose is to present an abstract framework which is used in describing the semantics of formatting objects. その目的は,フォーマット化オブジェクトのセマンティクスを記述するのに使用される抽象的枠組みを表示することである。 It should be seen as describing a series of constraints for conforming implementations, and not as prescribing particular algorithms. それは,特定のアルゴリズムを規定することとしてではなく,適合する実装のための一連の制約を記述することとしてみられるのが望ましい。

4.1 Introduction 導入

The formatter generates an ordered tree, the area tree, which describes a geometric structuring of the output medium. フォーマッタは,順序付けされた木,すなわち領域木を生成する。この領域木は,出力メディアの幾何構造を記述する。 The terms child, sibling, parent, descendant, and ancestor refer to this tree structure. 兄弟子孫及び先祖という用語は,この木構造を表す。 The tree has a root node. 木にはルートノードが存在する。

Each area tree node other than the root is called an area and is associated to a rectangular portion of the output medium. ルート以外の各領域木ノードは,領域と呼ばれ,出力メディアの長方形部分に関連付けされる。 Areas are not formatting objects; rather, a formatting object generates zero or more rectangular areas, and normally each area is generated by a unique object in the formatting object tree. 領域は,フォーマット化オブジェクトではなく,フォーマット化オブジェクトが,0個以上の長方形領域を生成する。通常,各領域は,フォーマット化オブジェクト木の一意のオブジェクトによって生成される。

Note:注記

The only exceptions to this rule are when several leaf nodes of the formatting object tree are combined to generate a single area, for example when several characters in sequence generate a single ligature glyph. フォーマット化オブジェクト木の複数の葉ノードが組み合わされて,単一の領域を生成する場合が,この規則の唯一の例外である。例えば,一連の複数の文字が単一のリガチャグリフを生成する場合である。 In all such cases, relevant properties such as font-family and font-size must be the same for all the generating formatting objects (see section 4.7.2 Line-building). これらのいずれの場合にも,font-familyfont-sizeなどの関連特性は,すべての生成フォーマット化オブジェクトについて同一でなければならない(4.7.2 行構築 を参照されたい)。

An area has a content-rectangle, the portion in which its child areas are assigned, and optional padding and border. 領域は,その部分にその子領域が割り当てられる内容長方形をもち,オプションのパディング及び境界をもつ。 The diagram shows how these portions are related to one another. 図4.1は,これらの部分が互いにどのように関連するかを示す。 The outer bound of the border is called the border-rectangle, and the outer bound of the padding is called the padding-rectangle. 境界の外部境界を境界長方形と呼び,パディングの外部境界をパディング長方形と呼ぶ。

Elements of an area    [D]

図4.1 — 領域の要素

Each area has a set of traits, a mapping of names to values, in the way elements have attributes and formatting objects have properties. 要素が属性をもち,フォーマット化オブジェクトが特性をもつ方法で,各領域は,特色の集合,名前と値の対応付けをもつ。 Individual traits are used either for rendering the area or for defining constraints on the result of formatting, or both. 個々の特色は,領域のレンダリング又はフォーマット化の結果に対する制約の定義のいずれか,又はその両方のために使用される。 Traits used strictly for formatting purposes or for defining constraints may be called formatting traits, and traits used for rendering may be called rendering traits. フォーマット化の目的のため又は制約の定義のために厳密に使用される特色は,フォーマット化特色と呼ばれることがあり,レンダリングのために使用される特色は,レンダリング特色と呼ばれることがある。 Traits whose values are copied or derived from a property of the same or a corresponding name are listed in CB Property Summary and 5 Property Refinement / Resolution; other traits are listed below. 複写又は同じ名前若しくは対応する名前の特性から導かれた特色は,CB 特性の概要 及び 5 特性の洗練化及び解決 に列挙される。 他の特色は,後で列挙する。

Note:注記

Traits are also associated with FOs during the process of refinement. 特色は,洗練化の処理中,フォーマット化オブジェクトとも関連付けされる。 Some traits are assigned during formatting, while others are already present after refinement. フォーマット化中に割り当てられる特色もあり,洗練化後に既に存在する特色もある。

The semantics of each type of formatting object that generates areas are given in terms of which areas it generates and their place in the area-tree hierarchy. 領域を生成するフォーマット化オブジェクトの各種別のセマンティクスは,それが生成する領域及び領域木階層内のその位置によって与えられる。 This may be further modified by interactions between the various types of formatting objects. 様々な種別のフォーマット化オブジェクト間の相互作用によって,これが更に変えられてもよい。 The properties of the formatting object determine what areas are generated and how the formatting object's content is distributed among them. フォーマット化オブジェクトの特性は,どんな領域が生成されるかを決定し,フォーマット化オブジェクト内容がそれらの中にどのように分配されるかを決定する。 (For example, a word that is not to be hyphenated may not have its glyphs distributed into areas on two separate line-areas.) 例えば,ハイフン付けされない単語は,二つの別の行領域上の領域に分配されるグリフをもたなくてよい。

The traits of an area are either: 領域の特色は,次のいずれかである。

directly-derived: the values of directly-derived traits are the computed value of a property of the same or a corresponding name on the generating formatting object, or

indirectly-derived: the values of indirectly-derived traits are the result of a computation involving the computed values of one or more properties on the generating formatting object, other traits on this area or other interacting areas (ancestors, parent, siblings, and/or children) and/or one or more values constructed by the formatter. The calculation formula may depend on the type of the formatting object.

This description assumes that refined values have been computed for all properties of formatting objects in the result tree, i.e., all relative and corresponding values have been computed and the inheritable values have been propagated as described in 5 Property Refinement / Resolution. この記述は,結果木のフォーマット化オブジェクトのすべての特性に関して,洗練化された値が計算されたことを前提とする。すなわち,5 特性の洗練化及び 解決 で記述するとおり,すべての相対値及び対応値が計算され,継承可能な値が伝播伝ぱ(播)されたことを前提とする。 This allows the process of inheritance to be described once and avoids a need to repeat information on computing values in this description. これによって,継承の処理は,1度記述されれば,この記述の計算値に関する情報を繰り返す必要がなくなる。

The indirectly-derived traits are: 間接派生特色は,次である。 block-progression-direction, inline-progression-direction, shift-direction, glyph-orientation, is-reference-area, is-viewport-area, left-position, right-position, top-position, bottom-position, left-offset, top-offset, is-first, is-last, alignment-point, area-class, start-intrusion-adjustment, end-intrusion-adjustment, generated-by, returned-by, folio-number, blink, underline-score, overline-score, through-score, underline-score-color, overline-score-color, through-score-color, alignment-baseline, baseline-shift, nominal-font, dominant-baseline-identifier, actual-baseline-table, and script.

4.2 Rectangular Areas 長方形領域

4.2.1 Area Types 領域型

There are two types of areas: block-areas and inline-areas. 領域には,ブロック領域及び行内領域という二つの種別がある。 These differ according to how they are typically stacked by the formatter. これらは,フォーマッタが通常それらをどのようにスタックするかによって異なる。 An area can have block-area children or inline-area children as determined by the generating formatting object, but a given area's children must all be of one type. 領域は,生成フォーマット化オブジェクトが決定するとおり,ブロック領域の子又は行内領域の子をもつことができる。しかし,与えられる領域の子はすべて,一つの種別でなければならない。 Although block-areas and inline-areas are typically stacked, some areas can be explicitly positioned. ブロック領域及び行内領域は,通常,スタックされるが,明示的に位置決めすることが可能な領域もある。

A line-area is a special kind of block-area whose children are all inline-areas. 行領域は,特別な種類のブロック領域であり,その子はすべて行内領域である。 A glyph-area is a special kind of inline-area which has no child areas, and has a single glyph image as its content. グリフ領域は,特別な種類の行内領域であり,子領域をもたず,その内容としてグリフ像を一つだけもつ。

Typical examples of areas are: a paragraph rendered by using an fo:block formatting object, which generates block-areas, and a character rendered by using an fo:character formatting object, which generates an inline-area (in fact, a glyph-area). 典型的な領域の例を示す。fo:blockフォーマット化オブジェクトを用いてレンダリングされる段落。これは,ブロック領域を生成する。fo:characterフォーマット化オブジェクトを用いてレンダリングされる文字。これは,行内領域(実際にはグリフ領域)を生成する。

4.2.2 Common Traits 共通特色

Associated with any area are two directions, which are derived from the generating formatting object's writing-mode and reference-orientation properties: the block-progression-direction is the direction for stacking block-area descendants of the area, and the inline-progression-direction is the direction for stacking inline-area descendants of the area. いずれの領域にも関連付けられる方向が二つ存在する。これらの方向は,生成フォーマット化オブジェクトの表記方法特性及び参照方位特性から派生する。ブロック進行方向は,領域のブロック領域子孫をスタック化するための方向である。行内進行方向は,領域の行内領域子孫をスタック化するための方向である。 Another trait, the shift-direction, is present on inline-areas and refers to the direction in which baseline shifts are applied. 別の特色であるシフト方向は,行内領域に存在し,ベースライン移動が適用される方向を表す。 Also the glyph-orientation defines the orientation of glyph-images in the rendered result. グリフ方位も,レンダリング結果のグリフ像の方位を定義する。

If the reference-orientation for an area is 0, then the top, bottom, left, and right edges of the content are parallel to those of the area's parent and consistent with them. 領域に関する参照方位が0である場合,内容の上辺,下辺,左辺及び右辺は,領域の親のそれらに並行であり,それらと一貫性をもつ。 Otherwise the edges are rotated from those of the area's parent as described in 7.21.3 reference-orientation. それ以外の場合,辺は 7.21.3 reference-orientation で記述されるとおり,領域の親のそれらから回転する。 The inline-progression-direction and block-progression-direction are determined by the location of these edges as described in 7.29.7 writing-mode. 行内進行方向及びブロック進行方向は,7.29.7 writing-mode で記述されるとおり,これらの辺の位置によって決定される。

The Boolean trait is-reference-area determines whether or not an area establishes a coordinate system for specifying indents. 論理値特色であるis-reference-areaは,領域が字下げを指定するための座標系をもつかどうかを決定する。 An area for which this trait is true is called a reference-area. この特色がtrueである領域を,参照領域と呼ぶ。 Only a reference-area may have a block-progression-direction which is different from that of its parent. 参照領域だけが,親とは異なるブロック進行方向をもってよい。 A reference-area may be either a block-area or an inline-area. 参照領域は,ブロック領域又は行内領域のいずれかであってよい。 Only specific formatting objects generate reference areas. 固有のフォーマット化オブジェクトだけが参照領域を生成する。

The Boolean trait is-viewport-area determines whether or not an area establishes an opening through which its descendant areas can be viewed, and can be used to present clipped or scrolled material; for example, in printing applications where bleed and trim is desired. 論理値特色であるis-viewport-areaは,例えば切取りが必要な印刷アプリケーションにおいて,その子孫領域を見ることができたり,切取り又はスクロールされた素材を見せるのに適した開口を確立するかどうかを決定する。 An area for which this trait is true is called a viewport-area. この特色がtrueである領域を,表示領域と呼ぶ。 A viewport-area also has the value true for the is-reference-area trait. 表示領域もまたis-reference-area特色の値にtrueをもつ。

A common construct is a viewport/reference pair. 共通の構築は,表示域/参照のペアである。 This is a viewport-area V and a block-area reference-area R, where R is the sole child of V and where the start-edge and end-edge of the content-rectangle of R are parallel to the start-edge and end-edge of the content-rectangle of V. これは,表示領域V及びブロック領域参照領域Rである。ここで,RVの唯一の子であり,Rの内容長方形の開始辺及び終了辺は,Vの内容長方形の開始辺及び終了辺に並行になる。

Each area has the traits top-position, bottom-position, left-position, and right-position which represent the distance from the edges of its content-rectangle to the like-named edges of the nearest ancestor reference-area (or the page-viewport-area in the case of areas generated by descendants of formatting objects whose absolute-position is fixed); the left-offset and top-offset determine the amount by which a relatively-positioned area is shifted for rendering. 各領域は,特色top-positionbottom-positionleft-position及びright-positionをもち,これらは,内容長方形の辺から,最も近い先祖の参照領域(又は,絶対位置がfixedであるフォーマット化オブジェクトの子孫が生成する領域の場合は,ページ表示領域)の類似した名前をもつ辺までの距離を表示する。left-offset及びtop-offsetは,相対位置付けされた領域がレンダリングのために移動される量を決定する。 These traits receive their values during the formatting process, or in the case of absolutely positioned areas, during refinement. これらの特色は,フォーマット化の処理中にその値を受け取り,絶対配置付けした領域の場合には,洗練化中にその値を受け取る。

The block-progression-dimension and inline-progression-dimension of an area represent the extent of the content-rectangle of that area in each of the two relative directions. 領域のブロック進行寸法及び行内進行寸法は,二つの相対方向のそれぞれの領域の内容長方形の広がりを表す。

Other traits include: 他の特色を次に示す。

Unless otherwise specified, the traits of a formatting object are present on each of its generated areas, and with the same value. 特に指定がない場合は,フォーマット化オブジェクトの特色は,その生成される各領域に存在し,同一の値をもつ。 (However, see sections 4.7.2 Line-building and 4.9.4 Border, Padding, and Background.) しかし,4.7.2 行構築 及び 4.9.4 境界,パディング及び背景 を参照されたい。 The id trait is computed for formatting objects but is not present on areas. id特色はフォーマット化オブジェクトに対して計算されるが,領域には存在しない。

4.2.3 Geometric Definitions 幾何的定義

As described above, the content-rectangle is the rectangle bounding the inside of the padding and is used to describe the constraints on the positions of descendant areas. 上述のとおり,内容長方形とは,境界がパディングの内部にある長方形であり,子孫領域の位置に関する制約の記述に使用される。 It is possible that marks from descendant glyphs or other areas may appear outside the content-rectangle. 子孫グリフ又は他の領域からのマークは,内容長方形の外側に現れることもある。

Related to this is the allocation-rectangle of an area, which is used to describe the constraints on the position of the area within its parent area. 領域の割付け長方形はこれに関連している。この長方形は,親領域内にある領域の位置に関する制約の記述に使用される。 For an inline-area this is either the normal-allocation-rectangle or the large-allocation-rectangle. 行内領域の場合,これは正規割付け長方形又は大割付け長方形のいずれかとなる。 The normal-allocation-rectangle extends to the content-rectangle in the block-progression-direction and to the border-rectangle in the inline-progression-direction. 正規割付け長方形は,ブロック進行方向では内容長方形に拡張し,行内進行方向では境界長方形に拡張する。 The large-allocation-rectangle is the border-rectangle. 大割付け長方形は境界長方形である。 Unless otherwise specified, the allocation-rectangle for an area is the normal-allocation-rectangle. 特に指定がない場合は,領域の割付け長方形は正規割付け長方形である。

Normal-allocation-rectangle of an inline-area   [D]

Normal-allocation-rectangle of an inline-area 図4.2 — 行内領域の正規割付け長方形

Large-allocation-rectangle of an inline-area   [D]

Large-allocation-rectangle of an inline-area 図4.3 — 行内領域の大割付け長方形

For a block-area, the allocation-rectangle extends to the border-rectangle in the block-progression-direction and outside the content-rectangle in the inline-progression-direction by an amount equal to the end-indent, and in the opposite direction by an amount equal to the start-indent. ブロック領域では,割付け長方形は,ブロック進行方向では境界長方形に拡張し,行内進行方向では,終了字下げと同じだけ,反対方向では開始字下げと同じだけ,内容長方形の外側に拡張する。

Note:注記

The inclusion of space outside the border-rectangle of a block-area in the inline-progression-direction does not affect placement constraints, and is intended to promote compatibility with the CSS box model. 行内進行方向では,ブロック領域の境界長方形の外側に間隔があっても配置制約に影響することはない。これは,CSSボックスモデルとの互換性の促進を意図したものである。

Allocation- and content-rectangles of a block-area   [D]

Allocation- and content-rectangles of a block-area 図4.4 — ブロック領域の割付け長方形及び内容長方形

The edges of a rectangle are designated as follows: 長方形の各辺の指定を次に示す。

For purposes of this definition, the content-rectangle of an area uses the inline-progression-direction and block-progression-direction of that area; but the border-rectangle, padding-rectangle, and allocation-rectangle use the directions of its parent area. この定義の目的のために,領域の内容長方形は,その領域の行内進行方向及びブロック進行方向を使用する。しかし,境界長方形,パディング長方形,割付け長方形は,親領域の方向を使用する。 Thus the edges designated for the content-rectangle may not correspond to the same-named edges on the padding-, border-, and allocation-rectangles. そのため,内容長方形に指定された各辺が,パディング長方形,境界長方形及び割付け長方形上の同一の名前の各辺に対応しないこともある。 This is important in the case of nested areas with different writing-modes or reference-orientation. 異なる表記方法又は参照方位で組み込まれた領域の場合,これは重要である。

The following diagram shows the correspondence between the various edge names for a mixed writing-mode example: 図4.5は,表記方法が混在している場合の様々な辺の名前の間の対応を示している。

Embedded areas with different writing-modes   [D]

図4.5 — 様々な表記方向をもつ組込み領域

Each inline-area has an alignment-point determined by the formatter, on the start-edge of its allocation-rectangle; for a glyph-area, this is a point on the start-edge of the glyph on its alignment baseline (see below). 各行内領域には,割付け長方形の開始辺上に,フォーマッタが決定した配置点が存在する。グリフ領域では,この点は配置ベースライン上のグリフの開始辺に存在する(下を参照されたい)。 This is script-dependent and does not necessarily correspond to the (0,0) coordinate point used for the data describing the glyph shape. これはスクリプト依存であり,グリフの形状を記述するデータに使用する座標点 (0,0) に必ずしも一致しない。

4.2.4 Tree Ordering 木の順序付け

In the area tree, the set of areas with a given parent is ordered. 領域木では,与えられる親をもつ領域の集合は順序付けされる。 The terms initial, final, preceding, and following refer to this ordering. 最初の最後の先行する,及び後続するといった用語はこの順序付けを表す。

In any ordered tree, this sibling order extends to an ordering of the entire tree in at least two ways. 順序付けされた木はどれでも,この兄弟関係の順序付けが木全体の順序付けに拡張するが,その方法は,少なくとも二つ存在する。

"Preceding" and "following", when applied to non-siblings, will depend on the extension order used, which must be specified. “先行する”及び“後続する”が兄弟以外に適用される場合は,使用される拡張順序に依存することになり,それを指定しなければならない。 However, in either of these given orders, the leaves of the tree (nodes without children) are unambiguously ordered. しかし,これら与えられる順序のうち,いずれかでは,木の葉(子のないノード)は明確に順序付けされる。

4.2.5 Stacking Constraints スタック化制約

This section defines the notion of block-stacking constraints and inline-stacking constraints involving areas. ここでは,領域を含むブロックスタック化制約及び行内スタック化制約の概念を定義する。 These are defined as ordered relations, i.e., if A and B have a stacking constraint it does not necessarily mean that B and A have a stacking constraint. これらは,順序付けされる関係として定義される。すなわち,A及びBがスタック化制約をもつ場合,必ずしも,B及びAがスタック化制約をもつという意味ではない。 These definitions are recursive in nature and some cases may depend upon simpler cases of the same definition. これらの定義は本来再帰的であり,同一の定義のうち,より単純なケースに依存することもある。 This is not circularity but rather a consequence of recursion. これは循環ではなく,むしろ再帰の結果である。 The intention of the definitions is to identify areas at any level of the tree which may have only space between them. 定義は,領域間に間隔だけをもつことができる木のレベルを問わず,領域を識別することを意図している。

The area-class trait is an enumerated value which is xsl-normal for an area which is stacked with other areas in sequence. area-class特色は列挙値であり,他の領域と共に連続してスタックされた領域には,xsl-normalが指定される。 A normal area is an area for which this trait is xsl-normal. この特色の指定がxsl-normalである領域を正規領域という。 A page-level-out-of-line area is an area with area-class xsl-footnote, xsl-before-float, or xsl-fixed; placement of these areas is controlled by the fo:page-sequence ancestor of its generating formatting object. 行外ページレベル領域の領域クラスはxsl-footnotexsl-before-float,又はxsl-fixedである。すなわち,これらの領域の配置は,その生成フォーマット化オブジェクトのfo:page-sequenceの先祖によって制御される。 A reference-level-out-of-line area is an area with area-class xsl-side-float or xsl-absolute; placement of these areas is controlled by the formatting object generating the relevant reference-area. 行外参照レベル領域の領域クラスは,xsl-side-float又はxsl-absoluteである。これらの領域の配置は,関連する参照領域を生成するフォーマット化オブジェクトによって制御される。 An anchor area is an area with area-class xsl-anchor; placement of these areas is arbitrary and does not affect stacking. アンカ領域の領域クラスは,xsl-anchorである。これらの領域の配置は任意であり,スタック化に影響しない。 Areas with area-class equal to one of xsl-normal, xsl-footnote, or xsl-before-float are defined to be stackable, indicating that they are supposed to be properly stacked. 領域クラスがxsl-normalxsl-footnote,又はxsl-before-floatのいずれかと同じであれば,その領域はスタック可能であると定義され,領域が適正にスタックされることを示している。

Block-stacking constraints

ブロックスタック化制約

If P is a block-area, then there is a fence preceding P if P is a reference-area or if the border-before-width or padding-before-width of P are non-zero. Pがブロック領域である場合に,Pが参照領域であるか,又はPのborder-before-width又はpadding-before-widthが0以外であれば,先行フェンスPが存在する。 Similarly, there is a fence following P if P is a reference-area or if the border-after-width or padding-after-width of P are non-zero. 同様に,Pが参照領域であるか,又はPのborder-after-width又はpadding-after-widthが0以外であれば,後続フェンスPが存在する。

If A and B are stackable areas, and S is a sequence of space-specifiers (see 4.3 Spaces and Conditionality), it is defined that A and B have block-stacking constraint S if any of the following conditions holds: A及びBがスタック化可能な領域であり,Sが間隔指定子のシーケンスである場合(4.3 間隔及び条件付け を参照されたい),次の条件のいずれかが適用されるのであれば,A及びBにはブロックスタック化制約Sが存在すると定義される。

  1. B is a block-area which is the first normal child of A, and S is the sequence consisting of the space-before of B. Bがブロック領域であり,Aの最初の正規の子であり,かつSBのspace-beforeから構成されるシーケンスである。

  2. A is a block-area which is the last normal child of B, and S is the sequence consisting of the space-after of A. Aがブロック領域であり,Bの最後の正規の子であり,かつSAのspace-afterから構成されるシーケンスである。

  3. A and B are both block-areas, and either ABもブロック領域であり,かつ次のいずれかである。

    a. B is the next stackable sibling area of A, and S is the sequence consisting of the space-after of A and the space-before of B;

    b. B is the first normal child of a block-area P, B is not a line-area, there is no fence preceding P, A and P have a block-stacking constraint S', and S consists of S' followed by the space-before of B; or

    c. A is the last normal child of a block-area P, A is not a line-area, there is no fence following P, P and B have a block-stacking constraint S'', and S consists of the space-after of A followed by S''.

    d. A has a block-stacking constraint S' with a block-area E, E has a block-stacking constraint S'' with B, E is empty (i.e., it has zero border, padding, and block-progression-dimension, and no normal children), and S consists of S' followed by S''.

    1. BAの次にくるスタック可能な兄弟領域であり,かつSAのspace-after及びBのspace-beforeから構成されるシーケンスである。

    2. Bはブロック領域Pの最初の正規の子であるが,Bは行領域ではなく,先行フェンスPが存在せず,A及びPにブロックスタック化制約S'が存在し,かつSBのspace-beforeが後続するS'から構成される。

    3. Aはブロック領域Pの最後の正規の子であり,Aは行領域ではなく,後続フェンスPが存在せず,P及びBにはブロックスタック化制約S''が存在し,かつSS''が後続するAのspace-afterから構成される。

    4. Aは,ブロック領域Eのあるブロックスタック化制約S'をもち,Eは,Bのあるブロックスタック化制約S''をもつ。Eは,であり(つまり,それは,0の境界,パディング及びブロック進行寸法をもち,正規の子をもたない。),Sは,S''を後に従えたS'からなる。

Note:注記

The use of "stackable" in two places in the above definition allows block-stacking constraints to apply between areas of area-class xsl-before-float or xsl-footnote. 上の定義の二つの位置にスタック可能という語を使用することによって,ブロックスタック化制約は,領域クラスxsl-before-float又はxsl-footnoteの領域間に適用できる。

Adjacent Edges with Block-stacking   [D]

Adjacent Edges with Block-stacking 図4.6 — ブロックスタックのある隣接辺

When A and B have a block-stacking constraint, the adjacent edges of A and B are an ordered pair recursively defined as: A及びBにブロックスタック化制約が存在する場合,A及びBの隣接辺は順序付けされたペアであり,再帰的に次として定義される。

Example. In this diagram each node represents a block-area. 図4.7では,各ノードはブロック領域を表す。 Assume that all padding and border widths are zero, and none of the areas are reference-areas. パディング幅及び境界幅はすべて0であり,領域はいずれも参照領域ではないと仮定する。 Then P and A have a block-stacking constraint, as do A and B, A and C, B and C, C and D, D and B, B and E, D and E, and E and P; these are the only pairs in the diagram having block-stacking constraints. この場合,P及びAにはブロックスタック化制約が存在し,A及びBA及びCB及びCC及びDD及びBB及びED及びEE及びPにもブロックスタック化制約が存在する。これらは,ブロックスタック化制約が存在する図で考えられるすべてのペアある。 If B had non-zero padding-after, then D and E would not have any block-stacking constraint (though B and E would continue to have a block-stacking constraint). Bのpadding-afterが0以外であれば,D及びEにはブロックスタック化制約が存在しないことになる。ただし,B及びEのブロックスタック化制約は継続する。

Block-stacking constraint example   [D]

Block-stacking constraint example 図4.7 — ブロックスタック化制約の例

Inline-stacking constraints.

行内スタック化制約

This section will recursively define the inline-stacking constraints between two areas (either two inline-areas or one inline-area and one line-area), together with the notion of fence preceding and fence following; these definitions are interwoven with one another. ここでは,先行フェンス及び後続フェンスの概念と共に,二領域間の行内スタック化制約を再帰的に定義する。ここでいう二領域とは,二つの行内領域か,又は一つの行内領域と一つの行領域のいずれかを指す。これらの定義は,互いに絡みあっている。 This parallels the definition for block-stacking constraints, but with the additional complication that we may have a stacking constraint between inline-areas which are stacked in opposite inline-progression-directions. これはブロックスタック化制約の定義に一致しているが,更に複雑なのは,行内領域間のスタック化制約でも,行内進行方向の反対方向へのスタックが可能となる点である。 (This is not an issue for block-stacking constraints because a block-area which is not a reference-area may not have a block-progression-direction different from that of its parent.) 参照領域ではないブロック領域が親とは異なるブロック進行方向をもたないこともあるため,これはブロックスタック化制約の問題ではない。

If P and Q have an inline-stacking constraint, then P has a fence preceding Q if P is a reference-area or has non-zero border-width or padding-width at the first adjacent edge of P and Q. P及びQに行内スタック化制約が存在する場合に,Pが参照領域であるか,又はP及びQの最初の隣接辺の境界幅又はパディング幅が0以外であれば,Pには先行フェンスQが存在する。 Similarly, Q has a fence following P if Q is a reference-area or has non-zero border-width or padding-width at the second adjacent edge of P and Q. 同様に,Qが参照領域であるか,又はP及びQの2番目の隣接辺の境界幅又はパディング幅が0以外であれば,Qには後続フェンスPが存在する。

If A and B are normal areas, and S is a sequence of space-specifiers, it is defined that A and B have inline-stacking constraint S if any of the following conditions holds: A及びBが正規領域であり,Sが間隔指定子のシーケンスである場合に,次の条件のすべてに該当すれば,A及びBには行内スタック化制約Sが存在するものと定義される。

  1. A is an inline-area or line-area, B is an inline-area which is the first normal child of A, and S is the sequence consisting of the space-start of B. Aが行内領域又は行領域であり,BAの最初の正規の子である行内領域であり,かつSBのspace-startから構成されたシーケンスである。

  2. B is an inline-area or line-area, A is an inline-area which is the last normal child of B, and S is the sequence consisting of the space-end of A. Bが行内領域又は行領域であり,ABの最後の正規の子である行内領域であり,かつSAのspace-endから構成されたシーケンスである。

  3. A and B are each either an inline-area or a line-area, and either A及びBがそれぞれ行内領域又は行領域であり,次のいずれかに適合する。

    a. both A and B are inline-areas, B is the next normal sibling area of A, and S is the sequence consisting of the space-end of A and the space-start of B;

    b. B is an inline-area which is the first normal child of an inline-area P, P has no fence following A, A and P have an inline-stacking constraint S', the inline-progression-direction of P is the same as the inline-progression-direction of the nearest common ancestor area of A and P, and S consists of S' followed by the space-start of B.

    c. A is an inline-area which is the last normal child of an inline-area P, P has no fence preceding B, P and B have an inline-stacking constraint S'', the inline-progression-direction of P is the same as the inline-progression-direction of the nearest common ancestor area of P and B, and S consists of the space-end of A followed by S''.

    d. B is an inline-area which is the last normal child of an inline-area P, P has no fence following A, A and P have an inline-stacking constraint S', the inline-progression-direction of P is opposite to the inline-progression-direction of the nearest common ancestor area of A and P, and S consists of S' followed by the space-end of B.

    e. A is an inline-area which is the first normal child of an inline-area P, P has no fence preceding B, P and B have an inline-stacking constraint S'', the inline-progression-direction of P is opposite to the inline-progression-direction of the nearest common ancestor area of P and B, and S consists of the space-start of A followed by S''.

    1. ABも行内領域であり,BAの次にくる正規の兄弟領域であり,かつSAのspace-end及びBのspace-startから構成されるシーケンスである。

    2. Bが行内領域Pの最初の正規の子である行内領域であり,Pには後続フェンスAが存在せず,A及びPに行内スタック化制約S'が存在する。更に,Pの行内進行方向がA及びPの最も近い共通の先祖の行内進行方向と同じであり,かつSは,Bのspace-startが後続するS'から構成される。

    3. Aが行内領域Pの最後の正規の子である行内領域であり,Pには先行フェンスBが存在せず,P及びBには行内スタック化制約S''が存在する。更にPの行内進行方向がP及びBの最も近い共通の先祖の行内進行方向と同じであり,かつSS''が後続するAのspace-end から構成される。

    4. Bは行内領域Pの最後の正規の子である行内領域であり,Pには後続フェンスAがなく,A及びPには行内スタック化制約S'が存在する。更にPの行内進行方向がA及びPの最も近い共通の先祖領域の行内進行方向とは反対であり,かつSBのspace-endが後続するS'から構成される。

    5. Aが行内領域Pの最初の正規の子である行内領域であり,Pには先行フェンスBが存在せず,P及びBが行内スタック化制約S''が存在する。更にPの行内進行方向がP及びBの最も近い共通の先祖領域の行内進行方向の反対であり,かつSS''が後続するAのspace-startから構成される。

図4.8 — 行内スタックをもつ隣接辺(1)

Adjacent Edges with Inline-stacking   [D]

Adjacent Edges with Inline-stacking 図4.9 — 行内スタックをもつ隣接辺(2)

図4.10 — 行内スタックをもつ隣接辺(3a)

図4.11 — 行内スタックをもつ隣接辺(3b)

Adjacent Edges with Inline-stacking, continued   [D]

Adjacent Edges with Inline-stacking, continued 図4.12 — 行内スタックをもつ隣接辺(3c)

Adjacent Edges with Inline-stacking, continued   [D]

Mixed English and Arabic 図4.13 — 行内スタックをもつ隣接辺(3d,英語とアラビア語との混植)

Adjacent Edges with Inline-stacking, continued   [D]

Mixed English and Arabic 図4.14 — 行内スタックをもつ隣接辺(3e,英語とアラビア語との混植)

When A and B have an inline-stacking constraint, the adjacent edges of A and B are an ordered pair defined as: A及びBに行内スタック化制約が存在する場合,A及びBの隣接辺は,次に定義する順序付けされたペアである。

Two areas are adjacent if they have a block-stacking constraint or an inline-stacking constraint. 二つの領域にブロックスタック化制約又は行内スタック化制約が存在する場合,この二つの領域は隣接する。 It follows from the definitions that areas of the same type (inline or block) can be adjacent only if all their non-common ancestors are also of the same type (up to but not including their nearest common ancestor). 定義に従うと,同じ型の領域(行内又はブロック)は,最も近い共通先祖を含まないところまで遡って,それらの共通先祖以外の先祖もすべて同じ型である場合に限り,隣接することになる。 Thus, for example, two inline-areas which reside in different line-areas are never adjacent. そのため,例えば,異なる行領域に存在する二つの行内領域が隣接することはない。

An area A begins an area P if A is a descendant of P and P and A have either a block-stacking constraint or an inline-stacking constraint, provided that no descendant of P which is an ancestor of A has a space-before (in the case of a block-stacking constraint) or a space-start (in the case of an inline-stacking constraint) whose computed minimum, maximum, or optimum values are nonzero. APの子孫であり,P及びAにブロックスタック化制約又は行内スタック化制約のいずれかが存在する場合,領域Aは領域P開始しAの先祖であるPのどんな子孫にも(ブロックスタック化制約の場合における)space-beforeか,計算された最小,最大又は最適な値が非0である(行内スタック化制約の場合における)space-startが用意される。 In this case the second of the adjacent edges of P and A is defined to be a leading edge in P. この場合,P及びAの2番目の隣接辺はP前辺であると定義される。 A space-specifier which applies to the leading edge is also defined to begin P. 前辺に適用される間隔指定子もP開始すると定義される。

Similarly, An area A ends an area P if A is a descendant of P and A and P have either a block-stacking constraint or an inline-stacking constraint, provided that no descendant of P which is an ancestor of A has a space-after (in the case of a block-stacking constraint) or a space-end (in the case of an inline-stacking constraint) whose computed minimum, maximum, or optimum values are nonzero. 同様に,APの子孫であり,A及びPにブロックスタック化制約又は行内スタック化制約のいずれかが存在する場合,領域Aは領域P終了しAの先祖であるPのどんな子孫にも(ブロックスタック化制約の場合における)space-beforeか,計算された最小,最大又は最適な値が非0である(行内スタック化制約の場合における)space-startが用意される。 In this case the first of the adjacent edges of A and P is defined to be a trailing edge in P. この場合,A及びPの最初の隣接辺は,P後辺であると定義される。 A space-specifier which applies to the trailing edge is also defined to end P. 後辺に適用される間隔指定子もP終了すると定義される。

4.2.6 Font Baseline Tables フォントベースライン表

Each script has its preferred "baseline" for aligning glyphs from that script. 各スクリプトには,そのスクリプトからグリフを配置する場合に優先される“ベースライン”が存在する。 Western scripts typically use an "alphabetic" baseline that touches at or near the bottom of capital letters. 欧米のスクリプトは,通常“アルファベット”のベースラインを使用する。このベースラインは大文字の下部に触れるか又はその傍に存在する。 Further, for each font there is a preferred way of aligning embedded glyphs from different scripts, e.g., for a Western font there are separate baselines for aligning embedded ideographic or Indic glyphs. 更に,異なるスクリプトから埋込みグリフを配置する方法には,フォントごとに優先的な方法が存在する。例えば,欧米のフォントでは,埋込みの表意文字のグリフ又はインド語のグリフを配置する場合,別のベースラインが存在する。

Each block-area and inline-area has a dominant-baseline-identifier trait whose value is a baseline identifier corresponding to the type of alignment expected for inline-area descendants of that area, and each inline-area has an alignment-baseline which specifies how the area is aligned to its parent. ブロック領域及び行内領域には,それぞれdominant-baseline-identifier特色が存在する。この特色の値はベースライン識別子であり,その領域の行内領域の子孫に適用される配置の型に対応している。更に,各行内領域には配置ベースラインが存在し,その親に対する領域の配置方法を指定する。 These traits are interpreted as described in section 7.9.1 Fonts and Font Data. これらの特色については,7.9.1 フォント及びフォントデータ で解説されている。

For each font, an actual-baseline-table maps these identifiers to points on the start-edge of the area. 各フォント対して,実ベースライン表がこれらの識別子を領域の開始辺上の点に対応付ける。 By abuse of terminology, the line in the inline-progression-direction through the point corresponding to the dominant-baseline-identifier is called the "dominant baseline." 用語の乱用になるが,行内進行方向の行で,主要ベースライン識別子に対応する点の開始から終了までを主要ベースラインと呼ぶ。

4.3 Spaces and Conditionality 間隔及び条件付け

A space-specifier is a compound datatype whose components are minimum, optimum, maximum, conditionality, and precedence. 間隔指定子は複合データ型であり,最小値,最適値,最大値,条件付き及び優先順位という要素から構成されている。

Minimum, optimum, and maximum are lengths and can be used to define a constraint on a distance, namely that the distance should preferably be the optimum, and in any case no less than the minimum nor more than the maximum. 最小値最適値,及び最大値は長さに適用され,距離に関する制約を定義する場合に使用できる。言い換えれば,距離はむしろ最適値が望ましく,どのような場合であっても,最小値より小さい値の適用,又は最大値より大きい値の適用は適切ではない。 Any of these values may be negative, which can (for example) cause areas to overlap, but in any case the minimum should be less than or equal to the optimum value, and the optimum less than or equal to the maximum value. これらの値はすべて負であってもよい。例えば,これらの値が負であれば,領域が重なり合うことがあるが,いずれの場合も,最小値は最適値以下であり,最適値は最大値以下であることが望ましい。

Conditionality is an enumerated value which controls whether a space-specifier has effect at the beginning or end of a reference-area or a line-area. 条件付けは列挙値であり,間隔指定子が参照領域又は行領域の始まり又は終わりに影響するかどうかを制御する。 Possible values are retain and discard; a conditional space-specifier is one for which this value is discard. 候補となる値はretain及びdiscardである。条件間隔指定子は,値がdiscardであるものである。

Precedence has a value which is either an integer or the special token force. 優先順位の値は,整数か又は特別なトークンforceのいずれかである。 A forcing space-specifier is one for which this value is force. 強制間隔指定子は,値がforceであるものである。

Space-specifiers occurring in sequence may interact with each other. シーケンスに現れる間隔指定子は,互いに影響しあってもよい。 The constraint imposed by a sequence of space-specifiers is computed by calculating for each space-specifier its associated resolved space-specifier in accordance with their conditionality and precedence, as shown below in the space-resolution rules. 間隔指定子のシーケンスが強制する制約は,間隔指定子ごとに,条件付け及び優先順位に従って,関連する解決済み間隔指定子を計算することによって算出される。これは,後に示す間隔解決規則で記述する。

The constraint imposed on a distance by a sequence of resolved space-specifiers is additive; that is, the distance is constrained to be no less than the sum of the resolved minimum values and no larger than the sum of the resolved maximum values. 解決済み間隔指定子のシーケンスが距離に強制する制約は,加算的なものである。すなわち,距離は,解決済み最小値の和よりも大きく,解決済み最大値の和よりも小さくなる。

4.3.1 Space-resolution Rules 間隔解決規則

The resolved space-specifier of a given space-specifier S is computed as follows. 与えられる間隔指定子Sの解決済み間隔指定子の計算の方法を示す。 Consider the maximal inline-stacking constraint or block-stacking constraint S'' containing the space-specifier S as an element of the sequence (S'' is a sequence of space-specifiers; see 4.2.5 Stacking Constraints). ここに,シーケンスの要素として間隔指定子Sを含むブロックスタック化制約S''又は最大の行内スタック化制約を考える。(S''は,間隔指定子のシーケンス。4.2.5 スタック化制約 を参照されたい。) Define S' to be a subsequence of S'' as follows: S'を,S''の部分シーケンスであると定義する。

The resolved space-specifier of S is a non-conditional, forcing space-specifier computed in terms of the sequence S'. Sの解決済み間隔指定子は,そのシーケンスに関して計算される条件付きではない強制間隔指定子である。

  1. If any of the space-specifiers in S' is conditional, and begins a reference-area or line-area, then it is suppressed, which means that its resolved space-specifier is zero. S'内の間隔指定子がいずれも条件付きであり,参照領域又は行領域を開始する場合,この間隔指定子は抑制される。すなわち,その解決済み間隔指定子は0となる。 Further, any conditional space-specifiers which consecutively follow it in the sequence are also suppressed. 更に,条件付き間隔指定子がシーケンス内で連続して続く場合も,抑制される。 For purposes of this rule, a space-specifier U consecutively follows a space-specifier V if it U follows V and U and V are separated in the sequence only by conditional space-specifiers and/or space-specifiers whose computed minimum, maximum, and optimum values are zero. この規則によって,間隔指定子Uが間隔指定子Vに続き,UVが最小値,最大値,最適値が0に計算されている条件付き間隔指定子及び/又は間隔指定子だけによってシーケンス中で分離している場合,UV連続して続く

    If a conditional space-specifier ends a reference-area or line-area, then it is suppressed together with any other conditional space-specifiers which consecutively precede it in the sequence. 条件付き間隔指定子が参照領域又は行領域を終わらせる場合,シーケンス内で連続して先行する他のすべての条件付き間隔指定子と共に抑制される。 For purposes of this rule, a space-specifier U consecutively precedes a space-specifier V if it U precedes V and U and V are separated in the sequence only by conditional space-specifiers and/or space-specifiers whose computed minimum, maximum, and optimum values are zero. この規則によって,間隔指定子Uが間隔指定子Vに先行し,UVが最小値,最大値,最適値が0に計算されている条件付き間隔指定子及び/又は間隔指定子だけによってシーケンス中で分離している場合,UV連続して先行する

  2. If any of the remaining space-specifiers in S' is forcing, all non-forcing space-specifiers are suppressed, and the value of each of the forcing space-specifiers is taken as its resolved value. S'内の残りの間隔指定子がいずれも強制間隔指定子である場合は,強制以外の間隔指定子はすべて抑制され,強制間隔指定子の各値は,その解決済み値として与えられる。

  3. Alternatively if all of the remaining space-specifiers in S' are non-forcing, then the resolved space-specifier is defined in terms of those non-suppressed space-specifiers whose precedence is numerically highest, and among these those whose optimum value is the greatest. 代わりに,S'内の残りの間隔指定子が強制ではない場合は,抑制されない解決済み間隔指定子は,その優先順位が数字上最も高く,これらのうち,最適値が最も大きいものによって定義される。 All other space-specifiers are suppressed. 他の間隔指定子はすべて抑制される。 If there is only one of these then its value is taken as its resolved value. これらが一つしか存在しない場合は,その値が解決済み値として与えられる。

    Otherwise, follow these rules when there are two or more space-specifiers all of the same highest precedence and the same (largest) optimum: そうでない場合に,次は,同一の最高の優先順位かつ同一の(最大の)最適値である二つ以上の間隔指定子が存在するときの規則である。 The resolved space-specifier of the last space-specifier in the sequence is derived from these spaces by taking their common optimum value as its optimum. The greatest of their minimum values is its minimum. The least of their maximum values is its maximum. All other space-specifiers are suppressed.

    • シーケンス中の解決済み間隔指定子又は最後の間隔指定子は,最適条件としてのそれらの一般的な最適値をとることによってこれらの間隔から導かれる。

    • それらの最小値のうち最大のものがその最小値である。

    • それらの最大値のうち最小のものがその最大値である。

    • すべての他の間隔指定子は,抑制される。

  4. If S is subject to overconstrainment relaxing, then its maximum value is set to the actual block-progression-dimension of the containing block-area. Sが過制約緩和の対象である場合,その最大値は,包含ブロック領域の実際のブロック進行寸法に設定される。 See 4.3.2 Overconstrained space-specifiers 4.3.2 過制約の間隔指定子 を参照されたい。

Example. Suppose the sequence of space values occurring at the beginning of a reference-area is: first, a space with value 10 points (that is minimum, optimum, and maximum all equal to 10 points) and conditionality discard; second, a space with value 4 points and conditionality retain; and third, a space with value 5 points and conditionality discard; all three spaces having precedence zero.

例を示す。参照領域の先頭に現れる間隔値のシーケンスを次と仮定する。

  • 最初に,値が10ポイント(すなわち最小値,最適値及び最大値がすべて10ポイント)であり,条件がdiscardの間隔。
  • 2番目に,値が4ポイントで,条件がretainの間隔。
  • 3番目に,値が5ポイントで,条件がdiscardの間隔。
  • これらの間隔の優先順位はすべて0である。

Then the first (10 point) space is suppressed under rule 1, and the second (4 point) space is suppressed under rule 3. 最初の10ポイントの間隔は,規則1 a) に従って抑制され,2番目の4ポイントの間隔は規則3 c) によって抑制される。 The resolved value of the third space is a non-conditional 5 points, even though it originally came from a conditional space. 3番目の間隔が本来条件付き間隔から生じたとしても,その解決済み値は5ポイントであり,条件は付かない。

The padding of a block-area does not interact with any space-specifier (except that by definition, the presence of padding at the before- or after-edge prevents areas on either side of it from having a stacking constraint.) ブロック領域のパディングはどのような間隔指定子とも相互作用しない。ただし,定義によって前辺又は後辺にパディングが存在するため,その両側の領域にスタック化制約が存在できない場合は例外である。

The border or padding at the before-edge or after-edge of a block-area B may be specified as conditional. ブロック領域Bの前辺又は後辺の境界又はパディングは,条件どおりに指定されてもよい。 If so, then it is set to zero if its associated edge is a leading edge in a reference-area, and the is-first trait of B is false, or if its associated edge is a trailing edge in a reference-area, and the is-last trait of B is false. その場合,関連する辺が参照領域の前辺でBのis-first特色がfalseであるか又は関連する辺が参照領域の後辺でBのis-last特色がfalseであれば,その値は0に設定される。 In either of these cases, the border or padding is taken to be zero for purposes of the stacking constraint definitions. このとき,境界又はパディングについては,スタック化制約定義によってその値は0となる。

The border or padding at the start-edge or end-edge of an inline-area I may be specified as conditional. 行内領域Iの開始辺又は終了辺の境界又はパディングは,条件どおりに指定されてもよい。 If so, then it is set to zero if its associated edge is a leading edge in a line-area, and the is-first trait of I is false, or if its associated edge is a trailing edge in a line-area, and the is-last trait of I is false. その場合,関連する辺が行領域の前辺でIのis-first特色がfalseであるか又は関連する辺が行領域の後辺でIのis-last特色がfalseであれば,その値は0に設定される。 In either of these cases, the border or padding is taken to be zero for purposes of the stacking constraint definitions. このとき,境界又はパディングは,スタック化制約定義によってその値は0となる。

4.3.2 Overconstrained space-specifiers 過制約の間隔指定子

When an area P is generated by a formatting object whose block-progression-dimension is "auto", then the constraints involving the before-edge and after-edge of the content-rectangle of P, together with the constraints between the various descendants of P, result in a constraint on the actual value of the block-progression-dimension. 領域Pが,ブロック進行寸法が“auto”であるフォーマット化オブジェクトによって生成される場合,Pの内容長方形の前辺及び後辺を伴う制約は,Pの様々な子孫の間の制約と共に,ブロック進行寸法の実際値への制約に帰着する。 If the block-progression-dimension is instead specified as a length, then this might result in an overconstrained area tree, for example an incompletely-filled fo:block with a specified size. ブロック進行寸法が代わりに長さとして指定されると,これは,指定サイズをもつ不完全に満たされたfo:blockなどの過制約領域木に帰着してよい。 In that case some constraints between P and its descendants should be relaxed; those that are eligible for this treatment are said to be subject to overconstrainment relaxing, and treated as in the previous section. その場合,Pとその子孫との間の幾つかの制約は緩和されることが望ましい。この扱いを受ける資格のあるものは,過制約緩和の対象であるといわれ,前述のとおり扱われる。

4.4 Block-areas ブロック領域

Block-areas have several traits which typically affect the placement of their children. ブロック領域には複数の特色が存在し,通常,それらの特色は子の配置に影響する。 The line-height is used in line placement calculations. line-heightは,行配置計算で使用される。 The line-stacking-strategy trait controls what kind of allocation is used for descendant line-areas and has an enumerated value (either font-height, max-height, or line-height). line-stacking-strategy特色は,子孫の行領域にどの割付けが使用されるかを制御し,font-heightmax-height,又はline-heightのいずれかの列挙値をもつ。 This is all rigorously described below. これはすべて後に厳密に記述する。 All areas have these traits, but they only have relevance for areas which have stacked line-area children. すべての領域にこれらの特色が存在するが,関係するのはスタック行領域の子をもつ領域に限られる。

The space-before and space-after traits determine the distance between the block-area and surrounding block-areas. space-before特色及びspace-after特色は,ブロック領域とその周囲のブロック領域との間の距離を決定する。

A block-area which is not a line-area typically has its size in the inline-progression-direction determined by its start-indent and end-indent and by the size of its nearest ancestor reference-area. 行領域ではないブロック領域のサイズは,通常,その字下げ並びに開始字下げ,及び最も近い先祖の参照領域のサイズによって,行内進行方向に決定される。 A block-area which is not a line-area must be properly stacked (as defined in 4.4.1 Stacked Block-areas below) unless otherwise specified in the description of its generating formatting object. 行領域ではないブロック領域は,別の方法でそのフォーマット化オブジェクトの生成方法が指定されている場合を除いて,適正にスタックされなければならない(下の 4.4.1 スタックブロック領域 で定義される)。 In this case its block-progression-dimension will be subject to constraints based on the block-progression-dimensions and space-specifiers of its descendants. この場合,そのブロック進行方向は子孫のブロック進行方向及び間隔指定子に基づく制約を受けることがある。 See 4.3.2 Overconstrained space-specifiers 4.3.2 過制約の間隔指定子 を参照されたい。

4.4.1 Stacked Block-areas スタックブロック領域

Block-area children of an area are typically stacked in the block-progression-direction within their parent area, and this is the default method of positioning block-areas. 領域のブロック領域の子は,通常,その親領域内でブロック進行方向にスタックされる。これは,ブロック領域の位置を特定するデフォルトメソッドである。 However, formatting objects are free to specify other methods of positioning child areas of areas which they generate, for example list-items or tables. しかし,フォーマット化オブジェクトは,リスト項目又は表など,生成領域の子領域の位置を特定する他のメソッドを自由に指定することができる。

For a parent area P whose children are block-areas, P is defined to be properly stacked if all of the following conditions hold: 親領域Pの子がブロック領域である場合に,次の条件のすべてに該当すれば,Pスタックは適正であると定義される。

  1. For each block-area B which is a descendant of P, the following hold: 各ブロック領域BPの子孫である場合には,次の条件に該当することになる。

    • the before-edge and after-edge of its allocation-rectangle are parallel to the before-edge and after-edges of the content-rectangle of P, 割付け長方形の前辺及び後辺はPの内容長方形の前辺及び後辺に一致する。

    • the start-edge of its allocation-rectangle is parallel to the start-edge of the content-rectangle of R (where R is the closest ancestor reference-area of B), and offset from it inward by a distance equal to the block-area's start-indent plus its start-intrusion-adjustment (as defined below), minus its border-start, padding-start, and space-start values, and 割付け長方形の開始辺は,Rの内容長方形の開始辺に一致し,オフセットは,それから,ブロック領域の開始字下げに,開始詰め調整(後に定義する)を加算し,そのborder-start値,padding-start値,及びspace-start値を減じたのと同じ距離だけ内側となる。この場合,RBの参照領域のうち,最も近い先祖である。

    • the end-edge of its allocation-rectangle is parallel to the end-edge of the content-rectangle of R, and offset from it inward by a distance equal to the block-area's end-indent plus its end-intrusion-adjustment (as defined below), minus its border-end, padding-end, and space-end values. 割付け長方形はRの内容長方形の終了辺に一致し,オフセットは,それからブロック領域の終了字下げにその終了詰め調整(後に定義する)を加え,border-end値,padding-end値,及びspace-end値を減じたのと同じ距離だけ内側となる。

    Metrics of a block area   [D]

    Content Rectangle of Reference Area図4.15 — 参照領域の内容長方形

    Note:注記

    The notion of indent is intended to apply to the content-rectangle, but the constraint is written in terms of the allocation-rectangle, because as noted earlier (4.2.3 Geometric Definitions) the edges of the content-rectangle may not correspond to like-named edges of the allocation-rectangle. 字下げの概念は,内容長方形への適用を意図したものである。しかし,先の 4.2.3 幾何的定義 で述べたとおり,内容長方形の各辺が割付け長方形の名前が類似した各辺に対応しない場合もあるため,制約は割付け長方形によって書き込まれる。

    The start-intrusion-adjustment and end-intrusion-adjustment are traits used to deal with intrusions from floats in the inline-progression-direction. 開始詰め調整特色及び終了詰め調整特色は,行内進行方向での浮動体からの割込みを扱うために使用される。

    See also section 5.3.2 Margin, Space, and Indent Properties for how the margin properties affect the indents. どのようにマージン特性が字下げに効果があるかは,5.3.2 マージン特性,間隔特性及び字下げ特性 を参照されたい。

  2. For each pair of normal areas B and B' in the subtree below P, if B and B' have a block-stacking constraint S and B is not empty (see 4.2.5 Stacking Constraints), then the distance between the adjacent edges of B and B' is consistent with the constraint imposed by the resolved values of the space-specifiers in S. Pの下の部分木にある正規領域B及びB'の各ペアについては,B及びB'にブロックスタック化制約Sが存在しBが空でない場合(4.2.5 スタック化制約 を参照されたい),Bの隣接辺とB'との間の距離は,Sの間隔指定子の解決済み値が強制する制約に一致する。

    Example of stacked areas   [D]

    図4.16 — スタック領域の例

    Example. In the diagram, if area A has a space-after value of 3 points, B a space-before of 1 point, and C a space-before of 2 points, all with precedence of force, and with zero border and padding, then the constraints will place B's allocation-rectangle 4 points below that of A, and C's allocation-rectangle 6 points below that of A. 図4.16では,領域Aのspace-after値が3ポイントであり,Bのspace-before値が1ポイントであり,更にCのspace-before値が2ポイントとなっている。これらの優先順位はすべてforceであり,境界及びパディングは0である。この場合,制約は,Bの割付け長方形が,Aの割付け長方形の4ポイント下に配置され,Cの割付け長方形が,A割付け長方形の6ポイント下に配置されることになる。 Thus the 4-point gap receives the background color from P, and the 2-point gap before C receives the background color from B. そのため,4ポイントのギャップはPの背景色となり,Cの前にある2ポイントのギャップはBの背景色となる。

4.4.2 Intrusion Adjustments 詰め調整

Intrusion adjustments (both start- and end-) are defined to account for the indentation that occurs as the result of side floats. 開始及び終了の両方の詰め調整は,側浮動体の結果として生じる字下げを説明するために定義される。

If A and B are areas which have the same nearest reference area ancestor, then A and B are defined to be inline-overlapping if there is some line parallel to the inline-progression-direction, which intersects both the allocation-rectangle of A and the allocation-rectangle of B. A及びBが,同じ最も近い参照領域の先祖をもつ領域である場合,行内進行方向に平行で,Aの割付け長方形にもBの割付け長方形にも交差する行が幾つか存在すれば,A及びB行内重複であると定義される。

If A is an area of class xsl-side-float with float="start", and B is a block-area, and A and B have the same nearest reference area ancestor, then A is defined to encroach upon B if A and B are inline-overlapping and the start-indent of B is less than the sum of the start-indent of A and the inline-progression-dimension of A. Afloat="start"をもつクラスxsl-side-floatの領域であり,Bがブロック領域であり,A及びBの最も近い参照領域の先祖が同一である場合に,A及びBが行内重複であって,Bの開始字下げが,Aの開始字下げとAの行内進行寸法との合計より小さいとき,AB食い込むと定義される。 The start-encroachment of A on B is then defined to be amount by which the start-indent of B is less than the sum of the start-indent of A and the inline-progression-dimension of A. そこで,ABへの開始食い込みは,Bの開始字下げが,Aの開始字下げとAの行内進行寸法との合計より小さい量であると定義される。

If A is an area of class xsl-side-float with float="end", and B is a block-area, and A and B have the same nearest reference area ancestor, then A is defined to encroach upon B if A and B are inline-overlapping and the end-indent of B is less than the sum of the end-indent of A and the inline-progression-dimension of A. Afloat="end"をもつクラスxsl-side-floatの領域であり,Bがブロック領域であり,A及びBの最も近い参照領域の先祖が同一である場合に,A及びBが行内重複であって,Bの終了字下げが,Aの終了字下げとAの行内進行寸法との合計より小さいとき,AB食い込むと定義される。 The end-encroachment of A on B is then defined to be amount by which the end-indent of B is less than the sum of the end-indent of A and the inline-progression-dimension of A. そこで,ABへの終了食い込みは,Bの終了字下げが,Aの終了字下げとAの行内進行寸法との合計より小さい量であると定義される。

If B is a block-area which is not a line-area, then its local-start-intrusion-adjustment is computed as the maximum of the following lengths: Bが行領域でないブロック領域である場合,その局所開始詰め調整は,次の長さの最大として計算される。

  1. zero; 0。

  2. if the parent of B is not a reference area: the start-intrusion-adjustment of the parent of B; and Bの親が参照領域でないときは,Bの親の開始詰め調整。

  3. if B has intrusion-displace="block", then for each area A of class xsl-side-float with float="start" such that the generating formatting object of A is not a descendant of the generating formatting object of B, and such that A encroaches upon some line-area child of B: the start-encroachment of A on B; and Bintrusion-displace="block"をもつとき,Aの生成フォーマット化オブジェクトがBの生成フォーマット化オブジェクトの子孫でなく,ABのある行領域の子に食い込むような,float="start"をもつクラスxsl-side-floatの各領域Aに関しては,Bに対するAの開始食い込み。

  4. if B has intrusion-displace = "block", then for each area A of class xsl-side-float with float="start" such that A and B are inline-overlapping, and for each block-area ancestor B' of B which is a descendant of the nearest reference area ancestor of B, such that A encroaches on a line-area child of B': the start-encroachment of A on B'. Bintrusion-displace="block"をもつとき,A及びBが行内重複であるような,float="start"をもつクラスxsl-side-floatの各領域Aに関して,並びにAB'の行領域の子に食い込むような,Bの最も近い参照領域先祖の子孫であるBの各ブロック領域の先祖B'に関しては,B'に対するAの開始食い込み。

The start-intrusion-adjustment of a block-area B is then defined to be the maximum of the local-start-intrusion-adjustments of the normal block-areas generated and returned by the generating formatting object of B. ブロック領域Bの開始詰め調整は,Bの生成フォーマット化オブジェクトによって生成され返却される正規ブロック領域の局所開始詰め調整の最大であると定義される。

If L is a line-area, then its start-intrusion-adjustment is computed as the maximum of the following lengths: Lが行領域である場合,その開始詰め調整は,次の長さの最大として計算される。

  1. the start-intrusion-adjustment of the parent of L; Lの親の開始詰め調整。

  2. for each area A of class xsl-side-float with float="start" such that A encroaches upon L: the start-encroachment of A on L; and ALに食い込むような,float="start"をもつクラスxsl-side-floatの各領域Aに関しては,Lに対するAの開始食い込み。

  3. if the parent of L has intrusion-displace = "indent", then for each area A of class xsl-side-float with float="start" such that A and L are inline-overlapping, and for each block-area ancestor B' of L which is a descendant of the nearest reference area ancestor of L, such that A encroaches on some line-area child L' of B': the start-encroachment of A on B'. Lの親がintrusion-displace="indent"をもつとき,A及びLが行内重複であるような,float="start"をもつクラスxsl-side-floatの各領域Aに関して,並びにAB'のある行領域の子L'に食い込むように,Lの最も近い参照領域の先祖の子孫であるLの各ブロック領域の先祖B'に関しては,B'に対するAの開始食い込み。

The end-intrusion-adjustment for a block-area is computed in a precisely analogous manner. ブロック領域の終了詰め調整は,厳密に同様の方法で計算される。 That is:

If B is a block-area which is not a line-area, then its local-end-intrusion-adjustment is computed as the maximum of the following lengths: Bが行領域でないブロック領域である場合,その局所終了詰め調整は,次の長さの最大として計算される。

  1. zero; 0。

  2. if the parent of B is not a reference area: the end-intrusion-adjustment of the parent of B; and Bの親が参照領域でないときは,Bの親の終了詰め調整。

  3. if B has intrusion-displace="block", then for each area A of class xsl-side-float with float="end" such that the generating formatting object of A is not a descendant of the generating formatting object of B, and such that A encroaches upon some line-area child of B: the end-encroachment of A on B; and Bintrusion-displace="block"をもつとき,Aの生成フォーマット化オブジェクトがBの生成フォーマット化オブジェクトの子孫でなく,ABのある行領域の子に食い込むような,float="end"を伴うクラスxsl-side-floatの各領域Aに関しては,Bに対するAの終了食い込み。

  4. if B has intrusion-displace = "block", then for each area A of class xsl-side-float with float="end" such that A and B are inline-overlapping, and for each block-area ancestor B' of B which is a descendant of the nearest reference area ancestor of B, such that A encroaches on a line-area child of B': the end-encroachment of A on B'. Bintrusion-displace="block"をもつとき,A及びBが行内重複であるような,float="end"を伴うクラスxsl-side-floatの各領域Aに関して,並びにAB'の行領域の子に食い込むような,Bの最も近い参照領域先祖の子孫であるBの各ブロック領域の先祖B'に関しては,B'に対するAの終了食い込み。

The end-intrusion-adjustment of a block-area B is then defined to be the maximum of the local-end-intrusion-adjustments of the normal block-areas generated and returned by the generating formatting object of B. ブロック領域Bの終了詰め調整は,Bの生成フォーマット化オブジェクトによって生成され返却される正規ブロック領域の局所終了詰め調整の最大であると定義される。

If L is a line-area, then its end-intrusion-adjustment is computed as the maximum of the following lengths: Lが行領域である場合,その終了詰め調整は,次の長さの最大として計算される。

  1. the end-intrusion-adjustment of the parent of L; Lの親の終了詰め調整。

  2. for each area A of class xsl-side-float with float="end" such that A encroaches upon L: the end-encroachment of A on L; and ALに食い込むような,float="end"を伴うクラスxsl-side-floatの各領域Aに関しては,Lに対するAの終了食い込み。

  3. if the parent of L has intrusion-displace = "indent", then for each area A of class xsl-side-float with float="end" such that A and L are inline-overlapping, and for each block-area ancestor B' of L which is a descendant of the nearest reference area ancestor of L, such that A encroaches on some line-area child L' of B': the end-encroachment of A on B'. Lの親がintrusion-displace="indent"をもつとき,A及びLが行内重複であるような,float="end"を伴うクラスxsl-side-floatの各領域Aに関して,並びにAB'のある行領域の子L'に食い込むように,Lの最も近い参照領域の先祖の子孫であるLの各ブロック領域の先祖B'に関しては,B'に対するAの終了食い込み。

4.5 Line-areas 行領域

A line-area is a special type of block-area, and is generated by the same formatting object which generated its parent. 行領域は特別な種類のブロック領域であり,親領域を生成した同一のフォーマット化オブジェクトによって生成される。 Line-areas do not have borders and padding, i.e., border-before-width, padding-before-width, etc. are all zero. 行領域には境界及びパディングが存在しない。すなわち, border-before幅,padding-before幅などは0である。 Inline-areas are stacked within a line-area relative to a baseline-start-point which is a point determined by the formatter, on the start-edge of the line area's content-rectangle. 行内領域は,ベースライン開始点に関連する行領域内にスタックされる。ベースライン開始点は,フォーマッタによって決定され,行領域の内容長方形の開始辺上の点に存在する。

The allocation-rectangle of a line is determined by the value of the line-stacking-strategy trait: if the value is font-height, the allocation-rectangle is the nominal-requested-line-rectangle, defined below; if the value is max-height, the allocation-rectangle is the maximum-line-rectangle, defined below; and if the value is line-height, the allocation-rectangle is the per-inline-height-rectangle, defined below. 行の割付け長方形は,line-stacking-strategy特色の値によって決定される。値がfont-heightである場合,割付け長方形は,後に定義する定格要求行長方形である。値がmax-heightである場合,割付け長方形は後に定義する最大行長方形である。更に,値がline-heightである場合,割付け長方形は,後に定義する行内高さ長方形である。 If the line-stacking-strategy trait is font-height or max-height the space-before and space-after are both set to the half-leading value; otherwise they are both set to zero. line-stacking-strategy特色がfont-height又はmax-heightである場合,space-before及びspace-afterは両者共半リーディング値に設定される。それ以外の場合は,両者共0に設定される。

The nominal-requested-line-rectangle for a line-area is the rectangle whose start-edge is parallel to the start-edge of the content-rectangle of the nearest ancestor reference-area and offset from it by the sum of the start-indent and the start-intrusion-adjustment of the line area, whose end-edge is parallel to the end-edge of the content-rectangle of the nearest ancestor reference-area and offset from it by the sum of the end-indent and the end-intrusion-adjustment of the line area, whose before-edge is separated from the baseline-start-point by the text-altitude of the parent block-area, and whose after-edge is separated from the baseline-start-point by the text-depth of the parent block-area. 行領域の定格要求行長方形は,開始辺が最も近い先祖の参照領域の内容領域の開始辺と平行で行領域の開始字下げと開始詰め調整の合計だけ離れており,終了辺が最も近い先祖の参照領域の内容領域の終了辺と平行で行領域の終了字下げと終了詰め調整の合計だけ離れており,前辺が親のブロック領域のテキストの高さによるベースライン開始点から分離しており,後辺が親のブロック領域のテキストの深さによるベースライン開始点から分離している長方形である。 It has the same block-progression-dimension for each line-area child of a block-area. ブロック領域の各行領域の子については,ブロック進行寸法は同一となる。

The maximum-line-rectangle for a line-area is the rectangle whose start-edge and end-edge are parallel to and coincident with the start-edge and end-edge of the nominal-requested-line-rectangle, and whose extent in the block-progression-direction is the minimum required to enclose both the nominal-requested-line-rectangle and the allocation-rectangles of all the inline-areas stacked within the line-area; this may vary depending on the descendants of the line-area. 行領域の最大行長方形の開始辺及び終了辺は,定格要求行長方形の開始辺及び終了辺に平行し,一致する。ブロック進行方向での広がりは,定格要求行長方形,及び,行領域内にスタックされたすべての行内領域の割付け長方形の両方を囲むことが必須となるもののうち,最小のものとなる。これは,行領域の子孫に応じて変化してもよい。

Nominal and Maximum Line Rectangles   [D]

Nominal and Maximum Line Rectangles 図4.17 — 定格行長方形及び最大行長方形

The per-inline-height-rectangle for a line-area is the rectangle whose start-edge and end-edge are parallel to and coincident with the start-edge and end-edge of the nominal-requested-line-rectangle, and whose extent in the block-progression-dimension is determined as follows. 行領域の行内高さ長方形の開始辺及び終了辺は,定格要求行長方形の開始辺及び終了辺に平行し,一致する。ブロック進行寸法の広がりの決定方法を次に示す。

The expanded-rectangle of an inline-area is the rectangle with start-edge and end-edge coincident with those of its allocation-rectangle, and whose before-edge and after-edge are outside those of its allocation-rectangle by a distance equal to either (a.) the half-leading, when the area's allocation-rectangle is specified to be the normal-allocation-rectangle by the description of the generating formatting object , or (b.) the space-before and space-after (respectively), when the area's allocation-rectangle is specified to be the large-allocation-rectangle.

The expanded-nominal-requested-line-rectangle is the rectangle with start-edge and end-edge coincident with those of the nominal-requested-line-rectangle, and whose before-edge and after-edge are outside those of the nominal-requested-line-rectangle by a distance equal to the half-leading.

  1. 行内領域の展開長方形は,その開始辺及び終了辺が割付け長方形の開始辺及び終了辺と一致しており,その前辺及び後辺は次のいずれかの距離だけ,割付け長方形の前辺及び後辺から外側に離れている。

    1. 領域の割付け長方形が生成フォーマット化オブジェクトの記述によって定格割付け長方形であると指定される場合は,半リーディング。

    2. 領域の割付け長方形が大割付け長方形であると指定される場合は,それぞれspace-before及びspace-after。

  2. 展開定格要求行長方形の開始辺及び終了辺は,定格要求行長方形のものと一致し,その前辺及び後辺は,定格要求行長方形の前辺及び後辺から外側に半リーディングと等しい距離だけ離れている。

The extent of the per-inline-height-rectangle in the block-progression-direction is then defined to be the minimum required to enclose both the expanded-nominal-requested-line-rectangle and the expanded-rectangles of all the inline-areas stacked within the line-area; this may vary depending on the descendants of the line-area. ブロック進行方向で行内高さ長方形の広がりは,展開定格要求行長方形も,行領域内にスタックされたすべての行内領域の展開長方形も囲むことが必須である長方形のうち最小のものになると定義される。これは行領域の子孫に応じて変わってもよい。

Note:注記

Using the nominal-requested-line-rectangle allows equal baseline-to-baseline spacing. 定格要求行長方形を使用すると,ベースラインからベースラインまでの間隔を等しくすることができる。 Using the maximum-line-rectangle allows constant space between line-areas. 最大行長方形を使用すると,行領域間の間隔を一定にすることができる。 Using the per-inline-height-rectangle and zero space-before and space-after allows CSS-style line box stacking. 行内高さ長方形を使用し,space-before及びspace-afterを0とすると,CSSスタイル行ボックススタック化を使用することができる。 Also, the value of half-leading is included in the expanded-rectangle regardless of conditionality, and thus a line-height conditionality of "discard" does not have effect in this case. 同様に,半リーディングの値は,条件にかかわらず,展開長方形に含まれる。そのため,この場合,行の高さの条件が“discard”であれば,影響はない。

4.6 Inline-areas 行内領域

An inline-area has its own line-height trait, which may be different from the line-height of its containing block-area. 行内領域には,それ自体のline-height特色が存在し,これは包含ブロック領域の行の高さとは異なる。 This may affect the placement of its ancestor line-area when the line-stacking-strategy is line-height. line-stacking-strategy特色の値がline-heightの場合,これは先祖の行領域の配置に影響することがある。 An inline-area has an actual-baseline-table for its nominal-font. 行内領域には,その定格フォントについて実ベースライン表が存在する。 It has a dominant-baseline-identifier trait which determines how its stacked inline-area descendants are to be aligned. 行内領域は,スタック行内領域の子孫がどのように配置されるかを決定するdominant-baseline-identifier特色をもつ。

An inline-area may or may not have child areas, and if so it may or may not be a reference-area. 行内領域には子領域があってもよいし,なくてもよい。その場合,行内領域は参照領域であってもよいし,なくてもよい。 The dimensions of the content-rectangle for an inline-area without children is computed as specified by the generating formatting object, as are those of an inline-area with block-area children. 子をもたない行内領域の内容長方形の寸法を計算する場合は,ブロック領域の子をもつ行内領域の場合と同様,生成フォーマット化オブジェクトが指定する。

An inline-area with inline-area children has a content-rectangle which extends from its dominant baseline (see 4.2.6 Font Baseline Tables) by its text-depth in the block-progression-direction, and in the opposite direction by its text-altitude; in the inline-progression-direction it extends from the start-edge of the allocation-rectangle of its first child to the end-edge of the allocation-rectangle of its last child. 行内領域が行内領域の子をもつ場合,主要ベースラインから拡張される内容長方形が存在する(4.2.6 フォントベースライン表 を参照されたい)。この場合,ブロック進行方向にはテキストの深さの分だけ拡張され,反対方向にはテキストの高さの分だけ拡張される。すなわち,行内進行方向には,最初の子の割付け長方形の開始辺から最後の子の割付け長方形の終了辺まで拡張されることになる。 The allocation-rectangle of such an inline-area is the same as its content-rectangle. このような行内領域の割付け長方形は,その内容長方形と同一である。

The allocation-rectangle of an inline-area without children is either the normal-allocation-rectangle or the large-allocation-rectangle, as specified in the description of the generating formatting object. 子をもたない行内領域の割付け長方形は,生成フォーマット化オブジェクトの記述で指定されるとおり,正規割付け長方形又は大割付け長方形のいずれかである。

Note:注記

When the line-stacking-strategy is line-height, allocation is done with respect to the expanded-rectangle. line-stacking-strategy特色の値がline-heightである場合,割付けは展開長方形に関して実行される。

Examples of inline-areas with children might include portions of inline mathematical expressions or areas arising from mixed writing systems (left-to-right within right-to-left, for example). 子をもつ行内領域の例は,行内数式の一部又は混合表記システムから生じる領域を含んでもよい。混合表記システムとは,左向きの書込み中に右向きの書込みが存在する場合などをいう。

4.6.1 Stacked Inline-areas スタック行内領域

Inline-area children of an area are typically stacked in the inline-progression-direction within their parent area, and this is the default method of positioning inline-areas. 領域の行内領域の子は,通常,その親領域内で行内進行方向にスタックされる。これは,行内領域の位置を特定するデフォルトメソッドである。

Inline-areas are stacked relative to the dominant baseline, as defined above (4.2.6 Font Baseline Tables). 行内領域は,先の 4.2.6 フォントベースライン表 で定義されたとおり,主要ベースラインに関連してスタックされる。

For a parent area P whose children are inline-areas, P is defined to be properly stacked if all of the following conditions hold: 親領域Pの子が行内領域である場合に,次のすべての条件に該当すれば,Pスタックは適正であると定義される。

  1. For each inline-area descendant I of P, the start-edge, end-edge, before-edge and after-edge of the allocation-rectangle of I are parallel to corresponding edges of the content-rectangle of the nearest ancestor reference-area of I. Pの各行内領域の子孫Iについては,Iの割付け長方形の開始辺,終了辺,前辺及び後辺は,Iの最も近い先祖参照領域の内容長方形の辺と対応している。

  2. For each pair of normal areas I and I' in the subtree below P, if I and I' have an inline-stacking constraint S, then the distance between the adjacent edges of I and I' is consistent with the constraint imposed by the resolved values of the space-specifiers in S. Pの下の部分木にある正規領域I及びI'の各ペアについては,I及びI'に行内スタック化制約Sが存在すれば,II'の隣接辺間の距離は,Sの間隔指定子の解決済み値が強制する制約に一致する。

  3. For any inline-area descendant I of P, the distance in the shift-direction from the dominant baseline of Pthe parent Q of I, to the alignment-point of I equals the offset between the dominant baseline of PQ and the baseline of PQ corresponding to the alignment-baseline trait of I, plus the sum of the baseline-shifts for I and all of its ancestors which are descendants of P. the baseline-shift for I. Pの行内領域の子孫Iはいずれについても,PIの親Qの主要ベースラインからIの配置点までのシフト方向の距離は,PQの主要ベースラインとIのalignment-baseline特色に対応するPQのベースラインとの間のオフセットに,Iのベースライン移動Pの子孫であるそのすべての先祖との和を加算した距離に等しい。

    The first summand is computed to compensate for mixed writing systems with different baseline types, and the other summands involve deliberate baseline shifts for things like superscripts and subscripts. 最初の加数は,ベースラインの型が異なる場合の混合表記システム補正するために計算される。その他の加数には,上付き文字及び下付き文字などについての微妙なベースライン移動が含まれる。

4.6.2 Glyph-areas グリフ領域

The most common inline-area is a glyph-area, which contains the representation for a character (or characters) in a particular font. グリフ領域は最も一般的な行内領域であり,特定のフォントで一つ又は複数の文字を表現する。

A glyph-area has an associated nominal-font, determined by the area's typographic traits, which apply to its character data, and a glyph-orientation determined by its writing-mode and reference-orientation, which determine the orientation of the glyph when it is rendered. グリフ領域には関連する定格フォントが存在する。定格フォントは,文字データに適用される領域の印刷特色によって決定される。グリフ方位は表記方法及び参照方位によって決定され,レンダリングの際のグリフの方向を決定する。

The alignment-point and dominant-baseline-identifier of a glyph-area are assigned according to the writing-system in use (e.g., the glyph baseline in Western languages), and are used to control placement of inline-areas descendants of a line-area. グリフ領域の配置点及び主要ベースライン識別子は,欧米言語のグリフベースラインなど,使用する表記システムに従って割り当てられ,行領域の行内領域子孫の配置を制御するために,使用される。 The formatter may generate inline-areas with different inline-progression-directions from their parent to accommodate correct inline-area stacking in the case of mixed writing systems. 混合表記システムの場合,フォーマッタが親とは異なる行内進行方向の行内領域を生成して,適正な行内領域スタックを収容してもよい。

A glyph-area has no children. グリフ領域には子が存在しない。 Its block-progression-dimension and actual-baseline-table are the same for all glyphs in a font. グリフ領域のブロック進行寸法及び実ベースライン表は,フォントのすべてのグリフについて同一である。 Conforming implementations may choose to compute the block-progression-dimension for a glyph area based on the actual glyph size rather than using a common size for all glyphs in a font. 適合実装は,すべてのフォント中のグリフで一般的なサイズを使用するよりむしろ実際のグリフサイズに基づくグリフ領域にブロック進行方向を計算することを選んでもよい。

4.7 Ordering Constraints 順序付け制約

4.7.1 General Ordering Constraints 一般的順序付け制約

A subset S of the areas returned to a formatting object is called properly ordered if the areas in that subset have the same order as their generating formatting objects. 部分集合内の領域の順序が生成フォーマット化オブジェクトと同じである場合,フォーマット化オブジェクトに返される領域の部分集合S適正に順序付けされているという。 Specifically, if A1 and A2 are areas in S, returned by child formatting objects F1 and F2 where F1 precedes F2, then A1 must precede A2 in the pre-order traversal order of the area tree. 特に, A1及びA2Sに存在し,子のフォーマット化オブジェクトF1及びF2によって返され,F1F2に優先する場合,A1は,領域木の昇順たどりでは,A2に優先しなければならない。 If F1 equals F2 and A1 is returned prior to A2, then A1 must precede A2 in the pre-order-traversal of the area tree. F1F2に等しく,A1A2に優先して返される場合,領域木の昇順たどりでは,A1A2に優先しなければならない。

For each formatting object F and each area-class C, the subset consisting of the areas returned to F with area-class C must be properly ordered, except where otherwise specified. 各フォーマット化オブジェクトF及び各領域クラスCについては,領域クラスがCであるFに返される領域から構成される部分集合は,適正に順序付けされなければならない。ただし,別に指定がある場合を除く。

4.7.2 Line-building 行構築

This section describes the ordering constraints that apply to formatting an fo:block or similar block-level object. ここでは,fo:blockのフォーマット化又は類似するブロックレベルオブジェクトに適用される順序付け制約を記述する。

A block-level formatting object F which constructs lines does so by constructing block-areas which it returns to its parent formatting object, and placing normal areas and/or anchor areas returned to F by its child formatting objects as children of those block-areas or of line-areas which it constructs as children of those block-areas. ブロックレベルフォーマット化オブジェクトFは,親フォーマット化オブジェクトに返されるブロック領域を構築し,正規領域及び/又はアンカ領域を配置することによって,行を構築する。この場合,子フォーマット化オブジェクトは,ブロック領域の子又はブロック領域の子として構築される行領域の子として,正規領域及び/又はアンカ領域をFに返す。

For each such formatting object F, it must be possible to form an ordered partition P consisting of ordered subsets S1, S2, ..., Sn of the normal areas and anchor areas returned by the child formatting objects, such that the following are all satisfied: このような各フォーマット化オブジェクトFでは,順序付けされた区分Pを形成できなければならない。このPは,子フォーマット化オブジェクトが返す正規領域又はアンカ領域の順序付けされた部分集合S1S2,…,Snから構成され,これによって,次の条件がすべて満たされることになる。

  1. Each subset consists of a sequence of inline-areas, or of a single block-area. 各部分集合は,行内領域のシーケンス又は単一のブロック領域から構成される。

  2. The ordering of the partition follows the ordering of the formatting object tree. 区分の順序付けは,フォーマット化オブジェクト木の順序付けに従う。 Specifically, if A is in Si and B is in Sj with i < j, or if A and B are both in the same subset Si with A before B in the subset order, then either A is returned by a preceding sibling formatting object of B, or A and B are returned by the same formatting object with A being returned before B. 特に,ASi内にあり,BSj内にあり,i < jの関係が成立している場合,又はABも同じ 部分集合Si内にあり,部分集合の順序付けでABに先行する場合は,ABの先行する兄弟フォーマット化オブジェクトによって返されるか,又はA及びBは,ABの前に返される同一のフォーマット化オブジェクトによって返されるかのいずれかである。

  3. The partitioning occurs at legal line-breaks. 区分化は正当な行分割で現れる。 Specifically, if A is the last area of Si and B is the first area of Si+1, then the rules of the language, script and hyphenation constraints (7.10 Common Hyphenation Properties, 7.16.1 hyphenation-keep, and 7.16.2 hyphenation-ladder-count) in effect must permit a line-break between A and B, within the context of all areas in Si and Si+1. 特に,ASiの最後の領域であり,BSi+1の最初の領域である場合, Si及びSi+1の全領域の文脈内では,実質上,言語,スクリプト及びハイフネーション制約の規則(7.10 一般的なハイフン付け特性7.16.1 hyphenation-keep 及び 7.16.2 hyphenation-ladder-count)がABとの間の行分割を許容しなければならない。

  4. Forced line-breaks are respected. 強制行分割は優先される。 Specifically, if C is a descendant of F, and C is an fo:character whose Unicode character is U+000A, and A is the area generated by C, then either C is a child of F and A is the last area in a subset Si, or C is a descendant of a child C' of F, and A ends (in the sense of 4.2.5) an area A' returned by C', such that A' is the last area in a subset Si. 特に,CFの子孫であり,CがUnicode文字U+000Aである最後の領域のfo:characterであり,ACによって生成される領域である場合,CFの子であり,AC'によって戻された領域A'で(4.2.5 スタック化制約 の意味において)終わる。そのようなA'は部分集合Siの最後の領域である。

  5. The partition follows the ordering of the area tree, except for certain glyph substitutions and deletions. 区分は,一定のグリフ置換及び削除を除き,領域木の順序付けに従う。 Specifically, if B1, B2, ..., Bp are the normal child areas of the area or areas returned by F, (ordered in the pre-order traversal order of the area tree), then there is a one-to-one correspondence between these child areas and the partition subsets (i.e. n = p), and for each i, 特に, B1B2,…,Bpが領域の正規の子領域であるか,又はFによってが返される領域である場合に,領域木の昇順たどりで順序付けされると,これらの子領域と区分の部分集合との間(例えばn = pなど)に,1対1の対応が成立する。更に各iについて,次がいえる。

    • Si consists of a single block-area and Bi is that block-area, or Siが単一のブロック領域から構成される場合,Biはブロック領域である。又は

    • Si consists of inline-areas and Bi is a line-area whose child areas are the same as the inline-areas in Si, and in the same order, except that where the rules of the language and script in effect call for glyph-areas to be substituted, inserted, or deleted, then the substituted or inserted glyph-areas appear in the area tree in the corresponding place, and the deleted glyph-areas do not appear in the area tree. Siが行内領域から構成され,Biが子領域がSiの行内領域と同じ行領域であり,順序が同じであり,実質的に,言語及びスクリプトの規則が置換,挿入又は削除されるグリフ領域を呼出す場合は以外では,置換又は挿入されるグリフ領域は,対応する位置で領域木に現れ,削除されるグリフ領域は領域木には現れない。 For example, insertions and substitutions may occur because of addition of hyphens or spelling changes due to hyphenation, or glyph image construction from syllabification, or ligature formation. 例えば,挿入及び置換は,ハイフンの追加,ハイフン付けによるつづりの変更,音節区切りからのグリフ像の構築,リガチャ形成などによって,現れることもある。 Deletions occur as specified in 6., below. 削除は,6.f) で指定されるように現れる。

  6. white-space-treatment is enforced. white-space-treatmentは強要される。 In particular, deletions in 5. occur when there is a glyph area G such that 特に,グリフ領域Gがある場合には 5.e) の削除が現れる。

    (a.) the white-space-treatment of G is "ignore" and the character of G is classified as white space in XML; or

    (b.) the white-space-treatment of G is "ignore-if-before-linefeed" or "ignore-if-surrounding-linefeed", the suppress-at-line-break of G is "suppress", and G would end a line-area; or

    (c.) the white-space-treatment of G is "ignore-if-after-linefeed" or "ignore-if-surrounding-linefeed", the suppress-at-line-break of G is "suppress", and G would begin a line-area.

    1. Gのwhite-space-treatmentが“ignore”でありGの文字がXMLの空白に分類されるとき,又は

    2. Gのwhite-space-treatmentが“ignore-if-before-linefeed”又は“ignore-if-surrounding-linefeed”であり,Gのsuppress-at-line-breakが“suppress”であり,Gが行領域の最後であるか,又は

    3. Gのwhite-space-treatmentが“ignore-if-after-linefeed”又は“ignore-if-surrounding-linefeed”であり,Gのsuppress-at-line-breakが“suppress”であり,Gが行領域の最初である。

    In these cases the area G is deleted; this may cause the condition in clauses (b.) or (c.) to become true and lead to further deletions. 領域Gが削除される場合,これは b.2) 又は c.3) の状態が真になることによって更に削除が引き起こされる原因となることがある。

Substitutions that replace a sequence of glyph-areas with a single glyph-area should only occur when the margin, border, and padding in the inline-progression-direction (start- and end-), baseline-shift, and letter-spacing values are zero, treat-as-word-space is false, and the values of all other relevant traits match (i.e., alignment-adjust, alignment-baseline, color trait, background traits, dominant-baseline-identifier, font traits, text-depth, text-altitude, glyph-orientation-horizontal, glyph-orientation-vertical, line-height, line-height-shift-adjustment, text-decoration, text-shadow). 置換とは,グリフ領域のシーケンスを単一のグリフ領域に置き換えることであり,行内進行方向での余白,境界及びパディング(start- 及び end-),ベースライン移動,文字間隔値が0であり,treat-as-word-spaceがfalseであり,かつその他すべての関連特色,すなわち,alignment-adjust,alignment-baseline,color,background,dominant-baseline-identifier,フォント特色,text-depth,text-altitude,glyph-orientation-horizontal,glyph-orientation-vertical,line-height,line-height-shift-adjustment,text-decoration,text-shadowの各特色がマッチする場合に限り,現れるのが望ましい。

Note:注記

Line-areas do not receive the background traits or text-decoration of their generating formatting object, or any other trait that requires generation of a mark during rendering. 行領域は,その生成フォーマット化オブジェクトの背景特色若しくはテキスト装飾,又はレンダリング中にマークの生成が必須であるその他の特色を受け入れない。

4.7.3 Inline-building 行内構築

This section describes the ordering constraints that apply to formatting an fo:inline or similar inline-level object. ここでは,fo:inlineのフォーマット化又は類似する行内レベルオブジェクトに適用される順序付け制約を記述する。

An inline-level formatting object F which constructs one or more inline-areas does so by placing normal inline-areas and/or anchor inline-areas returned to F by its child formatting objects as children of inline-areas which it generates. 行内レベルフォーマット化オブジェクトFは,子フォーマット化オブジェクトが生成される行内領域の子としてFに返す正規の行領域及び/又はアンカ行内領域を配置することによって,一つ以上の行内領域を構築する。

For each such formatting object F, it must be possible to form an ordered partition P consisting of ordered subsets S1, S2, ..., Sn of the normal and/or anchor inline-areas and normal block-areas returned by the child formatting objects, such that the following are all satisfied: このような各フォーマット化オブジェクトFについては,順序付けされた区分Pの形成が可能でなければならない。区分Pは,子フォーマット化オブジェクトが返す正規の行内領域及び/又はアンカ行内領域及び正規のブロック領域の順序付けされた部分集合 S1S2,…,Snから構成され,それによって,次の条件がすべて満たされることになる。

  1. Each subset consists of a sequence of inline-areas, or of a single block-area. 各部分集合は,行内領域のシーケンス,又は単一のブロック領域から構成される。

  2. The ordering of the partition follows the ordering of the formatting object tree, as defined above. 区分の順序付けは,上で定義されるとおり,フォーマット化オブジェクトの順序付けに従う。

  3. The partitioning occurs at legal line-breaks, as defined above. 区分化は,上で定義されるとおり,正当な行分割で現れる。

  4. Forced line-breaks are respected, as defined above. 強制行分割は,上で定義されるとおり,優先される。

  5. The partition follows the ordering of the area tree, except for certain glyph substitutions and deletions, as defined above. 上で定義されるとおり,一定のグリフ置換及び削除を除き,区分は領域木の順序付けに従う。

4.8 Keeps and Breaks 保持及び分割

Keep and break conditions apply to a class of areas, which are typically page-reference-areas, column-areas, and line-areas. 保持条件及び区切り条件は,領域のクラスに適用される。この場合の領域とは,通常,ページ参照領域,段領域及び行領域である。 The appropriate class for a given condition is referred to as a context and an area in this class is a context-area. 一定の条件に対応する適切なクラスは,文脈として参照され,このクラスの領域を文脈領域という。 As defined in Section 6.4.1 Introduction, page-reference-areas are areas generated by an fo:page-sequence using the specifications in an fo:page-master, and column-areas are normal-flow-reference-areas generated from a region-body, or region-reference-areas generated from other types of region-master. 6.4.1 導入 で定義されるとおり,ページ参照領域は,fo:page-masterの規定を使用してfo:page-sequenceが生成する領域であり,段領域は,区画本体から生成される正規流し込み参照領域,又はその他の型の区画マスタから生成される区画参照領域である。

A keep or break condition is an open statement about a formatting object and the tree relationships of the areas it generates with the relevant context-areas. 保持条件又は区切り条件は,フォーマット化オブジェクト及び関連する文脈領域を用いて生成する領域の木関係についての開始文である。 These tree relationships are defined mainly in terms of leading or trailing areas. これらの木関係は,主に,先行領域又は後続領域によって定義される。 If A is a descendant of P, then A is defined to be leading in P if A has no preceding sibling which is a normal area, nor does any of its ancestor areas up to but not including P. APの子孫である場合に,Aに正規の領域である先行兄弟がないか,又はPまでだが,Pを含まない領域まで遡って,その先祖領域が存在しなければ,APにおいて先行していると定義される。 Similarly, A is defined to be trailing in P if A has no following sibling which is a normal area, nor does any of its ancestor areas up to but not including P. 同様に,Aに正規の領域である後続兄弟がないか,又はPまでだが,Pを含まない領域まで遡って,その先祖領域が存在しなければ,APにおいて後続していると定義される。 For any given formatting object, the next formatting object in the flow is the first formatting object following (in the pre-order traversal order) which is not a descendant of the given formatting object and which generates and returns normal areas. 与えられるフォーマット化オブジェクトはいずれについても,昇順たどりでは,流し込み内の次のフォーマット化オブジェクトが最初の後続するフォーマット化オブジェクトであり,正規領域を生成し,返す。

Break conditions are either break-before or break-after conditions. 区切り条件は,break-before条件又はbreak-after条件のいずれかである。 A break-before condition is satisfied if the first area generated and returned by the formatting object is leading within a context-area. フォーマット化オブジェクトが生成し,返す最初の領域が文脈領域内で先行する場合,break-before条件が満たされる A break-after condition depends on the next formatting object in the flow; the condition is satisfied if either there is no such next formatting object, or if the first normal area generated and returned by that formatting object is leading in a context-area. break-after条件は,流し込み内の次のフォーマット化オブジェクトに依存する。すなわち,このような次のフォーマット化オブジェクトが存在しないか,又は,そのフォーマット化オブジェクトが生成し,返す最初の正規領域が文脈領域内で先行するかのいずれかの場合に,break-after条件は満たされる。

Break conditions are imposed by the break-before and break-after properties. 区切り条件は,break-before特性及びbreak-after特性によって強制される。 A refined value of page for these traits imposes a break condition with a context consisting of the page-reference-areas; a value of even-page or odd-page imposes a break condition with a context of even-numbered page-reference-areas or odd-numbered page-reference-areas, respectively; a value of column imposes a break condition with a context of column-areas. これらの特色の洗練化された値がpageであれば,文脈がページ参照領域から構成される区切り条件が強制され,値がeven-page又はodd-pageであれば,偶数の番号付けをしたページ参照領域又は奇数の番号付けをしたページ参照領域の文脈をもつ区切り条件をそれぞれ強制する。値がcolumnであれば,文脈が段領域である区切り条件を強制する。 A value of auto in a break-before or break-after trait imposes no break condition. break-before特色又はbreak-after特色の値がautoの場合,区切り条件を強制しない。

Keep conditions are either keep-with-previous, keep-with-next, or keep-together conditions. 保持条件とは,keep-with-previous,keep-with-next,又はkeep-together条件のいずれかをいう。 A keep-with-previous condition on an object is satisfied if the first area generated and returned by the formatting object is not leading within a context-area, or if there are no preceding areas in a post-order traversal of the area tree. オブジェクト上のkeep-with-previous条件は,フォーマット化オブジェクトが生成し,返す最初の領域が文脈領域内で先行しない場合,又は,領域木の降順たどりで先行する領域が存在しない場合に満たされる。 A keep-with-next condition is satisfied if the last area generated and returned by the formatting object is not trailing within a context-area, or if there are no following areas in a pre-order traversal of the area tree. keep-with-next条件は,フォーマット化オブジェクトが生成し,返す最後の領域が文脈領域内で後続しない場合,又は,領域木の昇順たどりで後続する領域が存在しない場合に満たされる。 A keep-together condition is satisfied if all areas generated and returned by the formatting object are descendants of a single context-area. keep-together条件は,フォーマット化オブジェクトが生成し,返すすべての領域が単一の文脈領域の子孫である場合に満たされる。

Keep conditions are imposed by the "within-page", "within-column", and "within-line" components of the "keep-with-previous", "keep-with-next", and "keep-together" properties. 保持条件は,“keep-with-previous”特性,“keep-with-next”特性及び“keep-together”特性の構成要素である“within-page”,“within-column”及び“within-line”によって強制される。 The refined value of each component specifies the strength of the keep condition imposed, with higher numbers being stronger than lower numbers and the value always being stronger than all numeric values. 各構成要素の洗練化された値は,強制される保持条件の強さを指定する。すなわち,数値が高いほうが低いほうより強く,値alwaysの強さは最大である。 A component with value auto does not impose a keep condition. 構成要素に値autoが指定されている場合,保持条件は強制されない。 A "within-page" component imposes a keep-condition with context consisting of the page-reference-areas; "within-column", with context consisting of the column-areas; and "within-line" with context consisting of the line-areas. “within-page”構成要素は,文脈がページ参照領域から構成される保持条件を強制する。“within-column”構成要素は,段領域から構成される文脈をもつ保持条件を,“within-line”構成要素は,文脈が行領域から構成される保持条件を強制する。

The area tree is constrained to satisfy all break conditions imposed. 領域木は,強制される区切り条件をすべて満たすために制約される。 Each keep condition must also be satisfied, except when this would cause a break condition or a stronger keep condition to fail to be satisfied. 各保持条件も満たされなければならない。ただし,これによって,区切り条件又はより強い保持条件を満たすことができない場合は例外である。 If not all of a set of keep conditions of equal strength can be satisfied, then some maximal satisfiable subset of conditions of that strength must be satisfied (together with all break conditions and maximal subsets of stronger keep conditions, if any). 同じ強さの保持条件の集合をすべて満たすことができない場合は,その強さの条件のうち,満たすことが可能な最大の部分集合を幾つか満たさなければならない。存在する場合は,すべての区切り条件及びより強い保持条件のうちの最大の部分集合も満たさなければならない。

4.9 Rendering Model レンダリングモデル

This section makes explicit the relationship between the area tree and visually rendered output. ここでは,領域木と視覚レンダリング出力との関係を明らかにする。

Areas generate three types of marks: 領域は次の3種類のマークを生成する。 (1) the area background, if any, (2) the marks intrinsic to the area (a glyph, image, or decoration) if any, and (3) the area border, if any.

  1. もしあれば,領域の背景。
  2. もしあれば,グリフ,画像,又は装飾など領域に固有のマーク。
  3. もしあれば,領域の境界。

An area tree is rendered by causing marks to appear on an output medium in accordance with the areas in the area tree. 領域木は,領域木内の領域に従って,出力メディア上にマークを出現させることによって,レンダリングされる。 This section describes the geometric location of such marks, and how conflicts between marks are to be resolved. ここでは,このようなマークの幾何的な位置,及び,マーク間の競合の解決方法を記述する。

4.9.1 Geometry 幾何

Each area is rendered in a particular location. 各領域は,特定の位置でレンダリングされる。 Formatting object semantics describe the location of intrinsic marks relative to the object's location, i.e., the left, right, top, and bottom edges of its content-rectangle. フォーマット化オブジェクトのセマンティクスは,内容長方形の左辺,右辺,上辺,及び下辺など,オブジェクトの位置に関連する基本のマークの位置を記述する。 This section describes how the area's location is determined, which determines the location of its intrinsic marks. ここでは,領域の位置の決定方法を記述し,領域の基本のマークの位置を決定する。

For each page, the page-viewport-area corresponds isometrically to the output medium. 各ページについては,ページ表示領域は,出力メディアに等大に対応する。

The page-reference-area is offset from the page-viewport-area as described below in section 4.9.2 Viewport Geometry. ページ参照領域は 4.9.2 表示域幾何 で後に記述されるとおり,ページ表示領域からのオフセットである。

All areas in the tree with an area-class of xsl-fixed are positioned such that the left-, right-, top-, and bottom-edges of its content-rectangle are offset inward from the content-rectangle of its ancestor page-viewport-area by distances specified by the left-position, right-position, top-position, and bottom-position traits, respectively. 領域のクラスがxsl-fixedである木内のすべての領域は,内容長方形の左辺,右辺,上辺及び下辺が,left-positionright-positiontop-position,及びbottom-positionの各特色が指定する距離だけ,先祖のページ表示領域の内容長方形から内側に相対的にずれるように位置決めされる。

Any area in the tree which is the child of a viewport-area is rendered as described in section 4.9.2 Viewport Geometry. すべての領域が表示領域の子である木内に存在する場合は,4.9.2 表示域幾何 で記述されるとおりにレンダリングされる

All other areas in the tree are positioned such that the left-, right-, top-, and bottom-edges of its content-rectangle are offset inward from the content-rectangle of its nearest ancestor reference-area by distances specified by the left-position, right-position, top-position, and bottom-position traits, respectively. 木内のその他のすべての領域は,内容長方形の左辺,右辺,上辺及び下辺が,left-positionright-positiontop-position,及びbottom-positionの各特色が指定する距離だけ,最も近い先祖の参照領域の内容長方形から内側に相対的にずれるように位置決めされる。 These are shifted down and left by the values of the top-offset and left-offset traits, respectively, if the area has a relative-position of relative. 領域の相対位置relativeに指定されている場合,これらは,top-offset特色及びleft-offset特色によって,左下にシフトされる。

4.9.2 Viewport Geometry 表示域幾何

A reference-area which is the child of a viewport-area is positioned such that the start-edge and end-edge of its content-rectangle are parallel to the start-edge and end-edge of the content-rectangle of its parent viewport-area. 表示領域の子である参照領域は,内容長方形の開始辺及び終了辺が親表示領域の内容長方形の開始辺及び終了辺と対応して位置決めされる。 The start-edge of its content-rectangle is offset from the start-edge of the content-rectangle of its parent viewport-area by an inline-scroll-amount, and the before-edge of its content-rectangle is offset from the before-edge of the content-rectangle of its parent viewport-area by a block-scroll-amount. 内容長方形の開始辺は行内スクロール量だけ,親表示領域の内容長方形の開始辺から相対的にずれ,内容長方形の前辺は,ブロックスクロール量だけ,親表示領域の内容長方形の前辺から相対的にずれる。

If the block-progression-dimension of the reference-area is larger than that of the viewport-area and the overflow trait for the reference-area is scroll, then the inline-scroll-amount and block-scroll-amount are determined by a scrolling mechanism, if any, provided by the user agent. 参照領域のブロック進行寸法は表示領域のブロック進行寸法よりも大きく,参照領域のoverflow特色がscrollに指定される場合,行内スクロール量及びブロックスクロール量はスクロール機構によって決定されるが,利用者エージェントが存在する場合は,利用者エージェントによって提供される。 Otherwise, both are zero. それ以外の場合は,両者共0となる。

4.9.3 Visibility 可視性

The visibility of marks depends upon the location of the marks, the visibility of the area, and the overflow of any ancestor viewport-areas. マークの可視性はマークの位置,領域の可視性及び任意の先祖表示領域のオーバフローに依存する。

If an area has visibility hidden it generates no marks. 領域の可視性がhiddenに指定される場合,領域はマークを生成しない。

If an area has an overflow of hidden, or when the environment is non-dynamic and the overflow is scroll then the area determines a clipping rectangle, which is defined to be the rectangle determined by the value of the clip trait of the area, and for any mark generated by one of its descendant areas, portions of the mark lying outside the clipping rectangle do not appear. 領域のオーバフローhiddenに指定される場合,又は,環境が動的ではなく,オーバフローscrollに指定される場合,領域は切取り長方形を決定する。この長方形の定義は,領域のclip特色の値によって決定され,その子孫領域の一つが生成する任意のマークについて,切取り長方形外にマークの一部が存在する場合は,マークは現れない。

4.9.4 Border, Padding, and Background 境界,パディング及び背景

The border- and padding-rectangles are determined relative to the content-rectangle by the values of the common padding and border width traits (border-before-width, etc.). 境界長方形及びパディング長方形は,border-before-widthなど,一般的なパディング幅特色及び境界幅特色の値によって,内容長方形に相対して決定される。

For any area, which is not a child of a viewport-area, the border is rendered between the border-rectangle and the padding-rectangle in accordance with the common border color and style traits. 任意の領域について,その領域が表示領域の子でなければ,一般的な境界の色及びスタイル特色に従って,境界は境界長方形とパディング長方形との間にレンダリングされる。 For a child of a viewport-area, the border is not rendered. 表示領域の子の場合,境界はレンダリングされない。

For an area, which is not part of a viewport/reference pair, the background is rendered. 領域が表示域/参照のペアの一部ではなければ,背景がレンダリングされる。 For an area that is either a viewport-area or a reference-area in a viewport/reference pair, if the refined value of background-attachment is scroll and the block-progression-dimension of the reference-area is larger than that of the viewport-area, then the background is rendered on the reference-area and not the viewport-area, and otherwise it is rendered on the viewport-area and not the reference-area. 領域が,表示域/参照のペアの表示領域か参照領域のいずれかである場合に,background-attachmentの洗練化された値がscrollであり,参照領域のブロック進行寸法が表示領域のブロック進行寸法よりも大きければ,背景は表示領域ではなく,参照領域にレンダリングされる。それ以外の場合,背景は参照領域ではなく,表示領域にレンダリングされる。

The background, if any, is rendered in the padding-rectangle, in accordance with the background-image, background-color, background-repeat, background-position-vertical, and background-position-horizontal traits. パディング長方形が存在する場合,背景はbackground-imagebackground-colorbackground-repeatbackground-position-vertical,及びbackground-position-horizontalの各特色に従って,パディング長方形にレンダリングされる。

4.9.5 Intrinsic Marks 基本のマーク

For each class of formatting objects, the marks intrinsic to its generated areas are specified in the formatting object description. フォーマット化オブジェクトの各クラスについては,生成領域に基本のマークは,フォーマット化オブジェクトの記述で指定される。 For example, an fo:character object generates a glyph-area, and this is rendered by drawing a glyph within that area's content-rectangle in accordance with the area's font traits and glyph-orientation and blink traits. 例えば,fo:characterオブジェクトはグリフ領域を生成する。これは,領域のフォント特色,グリフ方位特色及びblink特色に従って,その領域の内容長方形内にグリフを描くことによって,レンダリングされる。

In addition, other traits (for example the various score and score-color traits) specify other intrinsic marks. 更に,様々なスコア及びスコア色特色など,他の特色は他の基本のマークを指定する。 In the case of score traits (underline-score, overline-score and through-score), the score thickness and position are specified by the nominal-font in effect; where the font fails to specify these quantities, they are implementation-dependent. underline-scoreoverline-score及びthrough-scoreなどのスコア特色の場合は,スコアの太さ及び位置は,実質的に,定格フォントによって指定される。フォントがこれらの数量を指定できない場合は,実装依存である。

4.9.6 Layering and Conflict of Marks マークの階層化及び競合

Marks are layered as described below, which defines a partial ordering of which marks are beneath which other marks. マークは,後に記述されるとおり,階層化され,どのマークがどのマークの下にくるかについて,部分的な順序付けを定義する。

Two marks are defined to conflict if they apply to the same point in the output medium. 二つのマークが出力メディアの同じ点に適用される場合,これらのマークは競合すると定義される。 When two marks conflict, the one which is beneath the other does not affect points in the output medium where they both apply. 二つのマークが競合する場合,一方のマークの下にあるマークは,両者が適用される出力メディアの点に影響しない。

Marks generated by the same area are layered as follows: the area background is beneath the area's intrinsic marks, and the intrinsic marks are beneath the border. Layering among the area's intrinsic marks is defined by the semantics of the area's generating formatting object and its properties. For example, a glyph-area's glyph drawing comes beneath the marks generated for text-decoration.

The stacking layer of an area is defined by its stacking context and its z-index value. The stacking layer of an area A is defined to be less than that of an area B if some ancestor-or-self A' of A and B' of B have the same stacking context and the z-index of A' is less than the z-index of B'. If neither stacking layer is less than the other then they are defined to have the same stacking layer.

If A and B are areas, and the stacking layer of A is less than the stacking layer of B, then all marks generated by A are beneath all marks generated by B.

If A and B are areas with the same stacking layer, the backgrounds of A and B come beneath all other marks generated by A and B. Further, if A is an ancestor of B (still with the same stacking layer), then the background of A is beneath all the areas of B, and all the areas of B are beneath the intrinsic areas (and border) of A.

If A and B have the same stacking layer and neither is an ancestor of the other, then it is an error if either their backgrounds conflict or if a non-background mark of A conflicts with a non-background mark of B. An implementation may recover by proceeding as if the marks from the first area in the pre-order traversal order are beneath those of the other area.

同じ領域が生成するマークの階層化を次に示す。

  • まず,領域背景は,領域の基本のマークの下にくる。組込みマークは境界の下にくる。 領域の基本のマーク間の階層化は,領域の生成フォーマット化オブジェクト及びその特性のセマンティクスによって定義される。 例えば,グリフ領域のグリフ描画は,テキスト装飾のために生成されるマークの下にくる。

  • 領域のスタック階層は,スタック化文脈及びそのz指標値によって定義される。 領域Aの先祖又は自身A'及びBB'のスタック化文脈が同じであり,A'のz指標がB'のz指標より小さい場合,領域Aのスタック階層はBスタック階層よりも小さいと定義される。 スタック階層が他のスタック階層ほど小さくない場合は,両者のスタック階層は同じであると定義される。

  • A及びBが領域であり,Aのスタック階層がBのスタック階層よりも小さい場合,Aが生成するマークはすべて,Bが生成するすべてのマークの下に存在する。

  • A及びBが同じ階層をもつ領域である場合,A及びBの背景は,A及びBが生成する他のすべてのマークの下にくる。 更に,ABの先祖であり,両者のスタック階層が同じ場合,Aの背景はBのすべての領域の下に存在し,Bのすべての領域はAの基本の領域及び境界の下に存在する。

  • A及びBのスタック階層が同じであり,いずれも他の領域の先祖ではない場合,それらの背景が競合するか,Aの背景以外のマークがBの背景以外のマークと競合するかのいずれかであれば,誤りとなる。 実装は,木の昇順たどりにおいて,最初の領域からのマークが他の領域のマークの下に存在するものとして進むことによって,回復してもよい。

4.10 Sample Area Tree サンプル領域木

A typical area tree   [D]

A Typical Area Tree 図4.18 — 典型的な領域木