> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 検索範囲を制限する関数

> LeftOf、RightOf、Above、Below、Exclude、RestrictSearchArea 関数を使用して、FlexiLayout の高度な事前検索リレーションで要素の検索範囲を制限します。

以下のテーブルに示す関数は、**Advanced pre-search relations** セクションでのみ使用できます。各関数では、検索範囲に対してあいまいな矩形を指定するか、除外する矩形の配列に矩形を追加します。

| 定義                                                                                            | 説明                                                                                    |
| --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `Void LeftOf( XInterval x, Distance offset = 0 )`                                             | 検索領域を、ページの矩形と、点 `x.End - offset` の左側にある垂直半平面との共通部分である矩形に制限します。                        |
| `Void LeftOf( FuzzyRect fuzzyRect, Distance offset = 0 )`                                     | 点 `fuzzyRect.Left.End - offset` の左側にある垂直半平面で検索領域を制限します。                               |
| `Void LeftOf( Hypothesis hyp, Distance offset = 0 )`                                          | 検索領域を、ページの矩形と、点 `hyp.Left.End - offset` の左側にある垂直半平面との共通部分である矩形に制限します。                 |
| `Void LeftOf( HypothesisInstances hyps, Distance offset = 0 )`                                | 点 `hyps.Left.End - offset` の左側にある垂直半平面で検索領域を制限します。グローバル座標を使用します。                      |
| `Void RightOf( XInterval x, Distance offset = 0 )`                                            | 検索領域を、ページの矩形と、点 `x.Start + offset` の右側にある垂直半平面との共通部分である矩形に制限します。                      |
| `Void RightOf( FuzzyRect fuzzyRect, Distance offset = 0 )`                                    | 点 `fuzzyRect.Right.Start + offset` の右側にある垂直半平面で検索領域を制限します。                            |
| `Void RightOf( Hypothesis hyp, Distance offset = 0 )`                                         | 検索領域を、ページの矩形と、点 `hyp.Right.Start + offset` の右側にある垂直半平面との共通部分である矩形に制限します。              |
| `Void RightOf( HypothesisInstances hyps, Distance offset = 0 )`                               | 点 `hyps.Right.Start + offset` の右側にある垂直半平面で検索領域を制限します。グローバル座標を使用します。                   |
| `Void Above( YInterval y, Distance offset = 0 )`                                              | 検索領域を、ページの矩形と、点 `y.End - offset` の上側にある水平半平面との共通部分である矩形に制限します。                        |
| `Void Above( FuzzyRect fuzzyRect, Distance offset = 0 )`                                      | 点 `fuzzyRect.Top.End - offset` の上側にある水平半平面で検索領域を制限します。                                |
| `Void Above( Hypothesis hyp, Distance offset = 0 )`                                           | 検索領域を、ページの矩形と、点 `hyp.Top.End - offset` の上側にある水平半平面との共通部分である矩形に制限します。                  |
| `Void Above( HypothesisInstances hyps, Distance offset = 0 )`                                 | 点 `hyps.Top.End - offset` の上側にある水平半平面で検索領域を制限します。グローバル座標を使用します。                       |
| `Void Below( YInterval y, Distance offset = 0 )`                                              | 検索領域を、ページの矩形と、点 `y.Start + offset` の下側にある水平半平面との共通部分である矩形に制限します。                      |
| `Void Below( FuzzyRect fuzzyRect, Distance offset = 0 )`                                      | 点 `fuzzyRect.Bottom.Start + offset` の下側にある水平半平面で検索領域を制限します。                           |
| `Void Below( Hypothesis hyp, Distance offset = 0 )`                                           | 検索領域を、ページの矩形と、点 `hyp.Bottom.Start + offset` の下側にある水平半平面との共通部分である矩形に制限します。             |
| `Void Below( HypothesisInstances hyps, Distance offset = 0 )`                                 | 点 `hyps.Bottom.Start + offset` の下側にある水平半平面で検索領域を制限します。グローバル座標を使用します。                  |
| `Void Exclude( Hypothesis hyp )`                                                              | `hyp` 仮説の領域を検索領域から除外します。`hyp` 仮説が見つからない場合は、`hyp` 仮説の検索領域の内部矩形を除外します。                  |
| `Void Exclude( Rect rect )`                                                                   | `rect` 矩形を検索領域から除外します。                                                                |
| `Void Exclude( RectArray rectArray )`                                                         | `rectArray` の矩形配列を検索領域から除外します。                                                        |
| `Void ExcludeRect( XInterval left, YInterval top, XInterval right, YInterval bottom )`        | `left`、`top`、`right`、`bottom` の各範囲で記述されるファジー矩形を検索領域から除外します。                           |
| `Void ExcludeSet( ImageObjectSet set )`                                                       | `set` オブジェクトセットの矩形配列を検索領域から除外します。                                                     |
| `Void Exclude( HypothesisInstances )`                                                         | 仮説インスタンスの領域を検索領域から除外します。                                                              |
| `Void RestrictSearchArea( FuzzyRect fuzzyRect )`                                              | 検索領域をファジー矩形 `fuzzyRect` に制限します。グローバル座標を使用します。                                         |
| `Void RestrictSearchArea( FuzzyRect, IntArray pages )`                                        | 検索領域をファジー矩形 `fuzzyRect` に制限します。ローカル座標とページ範囲 `pages` を指定します。                           |
| `Void RestrictSearchArea( FuzzyRect, SearchAreaPageSetType )`                                 | 検索領域をファジー矩形 `fuzzyRect` に制限します。ローカル座標と、型 `SearchAreaPageSetType` のページ範囲を指定します。        |
| `Void RestrictSearchArea( RectArray rectArray )`                                              | 検索領域を矩形配列 `rectArray` に制限します。グローバル座標を使用します。                                           |
| `Void RestrictSearchArea( RectArray, IntArray pages )`                                        | 検索領域を矩形配列 `rectArray` に制限します。ローカル座標とページ範囲 `pages` を指定します。                             |
| `Void RestrictSearchArea( RectArray, SearchAreaPageSetType )`                                 | 検索領域を矩形配列 `rectArray` に制限します。ローカル座標と、型 `SearchAreaPageSetType` のページ範囲を指定します。          |
| `Void RestrictSearchArea( Region region )`                                                    | 検索領域を Region `region` に制限します。グローバル座標を使用します。                                           |
| `Void RestrictSearchArea( Region, IntArray pages )`                                           | 検索領域を Region に制限します。ローカル座標とページ範囲 `pages` を指定します。                                      |
| `Void RestrictSearchArea( Region, SearchAreaPageSetType )`                                    | 検索領域を指定した領域に制限します。`SearchAreaPageSetType` 型のローカル座標とページ範囲を指定します。                       |
| `Void RestrictSearchArea( SearchAreaPageRestriction pageRestriction, IntArray pages )`        | 各ページ内の検索領域は制限せず、検索対象のページ範囲のみを制限します。`pageRestriction` パラメーターに指定できる値は `WholePage` のみです。 |
| `Void RestrictSearchArea( SearchAreaPageRestriction pageRestriction, SearchAreaPageSetType )` | 各ページ内の検索領域は制限せず、検索対象のページ範囲のみを制限します。`pageRestriction` パラメーターに指定できる値は `WholePage` のみです。 |

<Tip>
  完全な名前 `RestrictSearchArea` の代わりに、別名 `RSA` を使用できます。
</Tip>

<Note>
  同じページに対する異なる制約は組み合わせて使用され、異なるページに対する制約はそれぞれ独立して使用されます。 (検索は、少なくとも 1 つの制約が指定されているページに対して実行されます。)
</Note>

<div id="examples-of-limiting-the-search-area">
  ## 検索範囲を制限する例
</div>

要素の検索範囲を、`Element1` と `Element2` の あいまいな矩形 によって形成される交差領域の右側に配置するよう指定できます。

```text theme={null}
FuzzyRect intersection = Element1.FuzzyRect AND Element2.FuzzyRect;
RightOf: intersection;
```

現在の要素の検索範囲の境界を、`ElementName1`、`ElementName2`、および `ElementName3` 要素の矩形の境界で定義するよう指定できます。いずれかの要素が検出されなかった場合、この関数を呼び出すと、現在の要素の検索範囲は対応する要素の検索範囲の境界によって定義されます。

```text theme={null}
RestrictSearchArea: RectArray(ElementName1.Rect or ElementName2.Rect or ElementName3.Rect);
```

現在の要素の検索範囲を、`ElementName` 要素の領域内に限定できます。

```text theme={null}
RestrictSearchArea: ElementName.Region;
```

偶数ページでは、検索範囲内で要素を検索するよう指定できます:

```text theme={null}
RestrictSearchArea: searchArea, EvenPages;
```

要素を2、4、7～9ページで検索するよう指定できます。

```text theme={null}
RestrictSearchArea: WholePage, 2 << 4 << 7 << 8 << 9;
```

要素をLast Pageで検索対象とするよう指定できます:

```text theme={null}
RestrictSearchArea: WholePage, LastPage;
```

<div id="auxiliary-functions-that-define-the-search-area">
  ## 検索範囲を定義する補助関数
</div>

| 定義                 | 説明                                                                               |
| ------------------ | -------------------------------------------------------------------------------- |
| `Rect PageRect()`  | 現在のページのグローバル座標における矩形です。ページに応じた検索範囲を指定するために使用します。`PageRect` 構文は、検索範囲の指定にのみ使用できます。 |
| `Int PageNumber()` | 現在のページ番号です。ページに応じた検索範囲を指定するために使用します。                                             |

要素がページの下半分にあることを指定するには (対象のページは事前には不明な場合) 、次のように記述します。

```text theme={null}
Below: PageRect.Top + PageRect.Height / 2;
```

それ以外の場合は、ページ番号 `N` の矩形を取得するには `Page( N ).Rect` 構文を使用し、文書全体の矩形を取得するには `DocumentRect` を使用します。ページに応じて変化する検索範囲を指定するには、`PageNumber` 関数を使用することもできます。

繰り返し要素 `SearchElements.PageHeader` があるとします。各ページでこの要素の出現箇所の下を検索するには、次のように記述します。

```text theme={null}
Below: SearchElements.PageHeader.AllInstances.PageAreaGlobal( PageNumber ).FuzzyRect, 0 * dot;
```
