メインコンテンツへスキップ
便宜上、要素およびその親 Group element について、Search Constraints タブと Relations タブで検索制約が指定されていないとします。この場合、プログラムが Advanced pre-search relations セクションの制約を適用する前は、その要素の検索領域はページの矩形と一致します。Advanced タブにも追加の制約がなければ、プログラムはページ全体でその要素を検索します。

制約が検索領域をどのように形成するか

Search constraints で説明されている型 1、2、4 の制約を適用すると、複数の矩形から成る検索領域が作成されます。プログラムは、この検索領域を配列全体を外接する 1 つの矩形と見なし、そこから指定された矩形の集合 (除外矩形) を除外します。 Search constraints で説明されている型 3 の検索制約を適用すると、仮説の各境界 (left、right、top、bottom) について、許可される座標の範囲が作成されます。各 境界 は、対応する軸上の座標範囲 (たとえば [x1, x2] や [y1, y2]) で表されます。ここで x1 と x2 は XCoordinate 型、y1 と y2 は YCoordinate 型です。軸上の区間は、X 座標では x1 <= x2、Y 座標では y1 <= y2 という条件を満たさなければなりません。 複数の制約が 1 つの 境界 に連続して適用される場合、各制約によってその 境界 の許可される座標範囲が変化します。

例: LeftBound 制約の適用

Advanced pre-search relations セクションに次の制約が含まれているとします。
LeftBound > 5mm;
LeftBound < 15mm;
LeftBound < 10mm;
これらの制約を実行する前に検索領域が指定されていないとします。この場合、1 ページの FlexiLayout (ドキュメント内で許可される最小ページ数と最大ページ数が 1) の場合、検索領域はページの矩形 [PageRect.Left, PageRect.Top, PageRect.Right, PageRect.Bottom] と一致します。複数ページの FlexiLayout の場合、検索領域は最大サイズの [-INF, -INF, INF, INF] になります。要素の各 境界 の座標範囲は次のようになります。
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 境界 だけです。その取り得る値の範囲は、1 ページ FlexiLayout では [5mm, PageRect.Right]、複数ページ FlexiLayout では [5mm, INF] という区間になります。 LeftBound < 15mm 制約が適用された後、left 境界 の許可される座標範囲は [5mm, 15mm] になります。 LeftBound < 10mm 制約が適用された後、left 境界 の許可される座標範囲は [5mm, 10mm] になります。 同様に、要素の他の 境界 に対しても制約を設定できます。 検索領域の指定された境界によって fuzzy rectangle が形成されます。