メインコンテンツへスキップ
便宜上、要素およびその親 Group element について、Search Constraints タブと Relations タブで検索制約が指定されていないとします。この場合、プログラムが Advanced pre-search relations セクションの制約を適用する前は、その要素の検索領域はページの矩形と一致します。Advanced タブにも追加の制約がなければ、プログラムはページ全体でその要素を検索します。 上記の Search Constraints で説明されている型 1、2、4 の制約を適用すると、複数の矩形から成る検索領域が作成されます。プログラムは、この検索領域を配列全体を外接する 1 つの矩形と見なし、そこから指定された矩形の集合 (除外矩形) を除外します。 上記の Search Constraints で説明されている型 3 の検索制約を適用すると、仮説の各境界 (left、right、top、bottom) について、許可される座標の範囲が作成されます。各 boundary は、対応する軸上の座標範囲 (たとえば [x1, x2] や [y1, y2]) で表されます。ここで x1 と x2 は XCoordinate 型、y1 と y2 は YCoordinate 型です。軸上の区間は、X 座標では x1 <= x2、Y 座標では y1 <= y2 という条件を満たさなければなりません。 複数の制約が 1 つの boundary に連続して適用される場合、各制約によってその boundary の許可される座標範囲が変化します。 Advanced pre-search relations セクションに次の制約が含まれているとします。
  • LeftBound > 5mm;
  • LeftBound < 15mm;
  • LeftBound < 10mm;
上記の制約が適用される前に、検索領域がページの矩形、すなわち [PageRect.Left, PageRect.top, PageRect.Right, PageRect.Bottom] と一致しているとします。このとき、要素の各 boundary の座標範囲は次のようになります。 これらの制約を実行する前に検索領域が指定されていないとします。この場合、1 ページの FlexiLayout (ドキュメント内で許可される最小ページ数と最大ページ数が 1) の場合、検索領域はページの矩形 [PageRect.Left, PageRect.Top, PageRect.Right, PageRect.Bottom] と一致します。複数ページの FlexiLayout の場合、検索領域は最大サイズの [-INF, -INF, INF, INF] になります。要素の各 boundary の座標範囲は次のようになります。
Boundary1 ページ FlexiLayout の範囲複数ページ FlexiLayout の範囲
LeftBound[PageRect.Left, PageRect.Right][-INF, INF]
TopBound[PageRect.Top, PageRect.Bottom][-INF, INF]
RightBound[PageRect.Left, PageRect.Right][-INF, INF]
BottomBound[PageRect.Top, PageRect.Bottom][-INF, INF]
制約 LeftBound > 5mm が実行されると、変化するのは left boundary だけです。その取り得る値の範囲は、1 ページ FlexiLayout では [5mm, PageRect.Right]、複数ページ FlexiLayout では [5mm, INF] という区間になります。 LeftBound > 5mm 制約が適用された後は、left boundary だけが変化し、その許可される座標は [5mm, PageRect.Right] になります。 LeftBound < 15mm 制約が適用された後、left boundary の許可される座標範囲は [5mm, 15mm] になります。 LeftBound < 10mm 制約が適用された後、left boundary の許可される座標範囲は [5mm, 10mm] になります。 同様に、要素の他の boundary に対しても制約を設定できます。 検索領域の指定された境界は、いわゆる fuzzy rectangle から設定されます。