> ## 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.

# Funktionen zur Einschränkung des Suchbereichs

> Begrenzen Sie die Suchbereiche von Elementen in den erweiterten Beziehungen für die Vorabsuche von FlexiLayout mit den Funktionen LeftOf, RightOf, Above, Below, Exclude und RestrictSearchArea.

Die in der folgenden Tabelle aufgeführten Funktionen können nur im Abschnitt **Erweiterte Beziehungen für die Vorabsuche** verwendet werden. Jede Funktion definiert entweder ein Fuzzy Rectangle für den Suchbereich oder fügt einem Array ausgeschlossener Rechtecke Rechtecke hinzu.

| Definition                                                                                    | Beschreibung                                                                                                                                                                                  |
| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Void LeftOf( XInterval x, Distance offset = 0 )`                                             | Begrenzt den Suchbereich auf ein Rechteck, das sich aus der Schnittmenge des Seitenrechtecks mit der vertikalen Halbebene links vom Punkt `x.End - offset` ergibt.                            |
| `Void LeftOf( FuzzyRect fuzzyRect, Distance offset = 0 )`                                     | Begrenzt den Suchbereich durch die vertikale Halbebene links vom Punkt `fuzzyRect.Left.End - offset`.                                                                                         |
| `Void LeftOf( Hypothesis hyp, Distance offset = 0 )`                                          | Begrenzt den Suchbereich auf ein Rechteck, das sich aus der Schnittmenge des Seitenrechtecks mit der vertikalen Halbebene links vom Punkt `hyp.Left.End - offset` ergibt.                     |
| `Void LeftOf( HypothesisInstances hyps, Distance offset = 0 )`                                | Begrenzt den Suchbereich durch die vertikale Halbebene links vom Punkt `hyps.Left.End - offset`. Es werden globale Koordinaten verwendet.                                                     |
| `Void RightOf( XInterval x, Distance offset = 0 )`                                            | Begrenzt den Suchbereich auf ein Rechteck, das sich aus der Schnittmenge des Seitenrechtecks mit der vertikalen Halbebene rechts vom Punkt `x.Start + offset` ergibt.                         |
| `Void RightOf( FuzzyRect fuzzyRect, Distance offset = 0 )`                                    | Begrenzt den Suchbereich durch die vertikale Halbebene rechts vom Punkt `fuzzyRect.Right.Start + offset`.                                                                                     |
| `Void RightOf( Hypothesis hyp, Distance offset = 0 )`                                         | Begrenzt den Suchbereich auf ein Rechteck, das sich aus der Schnittmenge des Seitenrechtecks mit der vertikalen Halbebene rechts vom Punkt `hyp.Right.Start + offset` ergibt.                 |
| `Void RightOf( HypothesisInstances hyps, Distance offset = 0 )`                               | Begrenzt den Suchbereich durch die vertikale Halbebene rechts vom Punkt `hyps.Right.Start + offset`. Es werden globale Koordinaten verwendet.                                                 |
| `Void Above( YInterval y, Distance offset = 0 )`                                              | Begrenzt den Suchbereich auf ein Rechteck, das sich aus der Schnittmenge des Seitenrechtecks mit der horizontalen Halbebene oberhalb des Punkts `y.End - offset` ergibt.                      |
| `Void Above( FuzzyRect fuzzyRect, Distance offset = 0 )`                                      | Begrenzt den Suchbereich durch die horizontale Halbebene oberhalb des Punkts `fuzzyRect.Top.End - offset`.                                                                                    |
| `Void Above( Hypothesis hyp, Distance offset = 0 )`                                           | Begrenzt den Suchbereich auf ein Rechteck, das sich aus der Schnittmenge des Seitenrechtecks mit der horizontalen Halbebene oberhalb des Punkts `hyp.Top.End - offset` ergibt.                |
| `Void Above( HypothesisInstances hyps, Distance offset = 0 )`                                 | Begrenzt den Suchbereich durch die horizontale Halbebene oberhalb des Punkts `hyps.Top.End - offset`. Es werden globale Koordinaten verwendet.                                                |
| `Void Below( YInterval y, Distance offset = 0 )`                                              | Begrenzt den Suchbereich auf ein Rechteck, das sich aus der Schnittmenge des Seitenrechtecks mit der horizontalen Halbebene unterhalb des Punkts `y.Start + offset` ergibt.                   |
| `Void Below( FuzzyRect fuzzyRect, Distance offset = 0 )`                                      | Begrenzt den Suchbereich durch die horizontale Halbebene unterhalb des Punkts `fuzzyRect.Bottom.Start + offset`.                                                                              |
| `Void Below( Hypothesis hyp, Distance offset = 0 )`                                           | Begrenzt den Suchbereich auf ein Rechteck, das sich aus der Schnittmenge des Seitenrechtecks mit der horizontalen Halbebene unterhalb des Punkts `hyp.Bottom.Start + offset` ergibt.          |
| `Void Below( HypothesisInstances hyps, Distance offset = 0 )`                                 | Begrenzt den Suchbereich durch die horizontale Halbebene unterhalb des Punkts `hyps.Bottom.Start + offset`. Es werden globale Koordinaten verwendet.                                          |
| `Void Exclude( Hypothesis hyp )`                                                              | Schließt die Region der Hypothese `hyp` aus dem Suchbereich aus. Wenn die Hypothese `hyp` nicht gefunden wird, wird das interne Rechteck des Suchbereichs der Hypothese `hyp` ausgeschlossen. |
| `Void Exclude( Rect rect )`                                                                   | Schließt das Rectangle `rect` aus dem Suchbereich aus.                                                                                                                                        |
| `Void Exclude( RectArray rectArray )`                                                         | Schließt das Array `rectArray` von Rechtecken aus dem Suchbereich aus.                                                                                                                        |
| `Void ExcludeRect( XInterval left, YInterval top, XInterval right, YInterval bottom )`        | Schließt das durch die Bereiche `left`, `top`, `right` und `bottom` beschriebene Fuzzy-Rechteck aus dem Suchbereich aus.                                                                      |
| `Void ExcludeSet( ImageObjectSet set )`                                                       | Schließt das Rechteck-Array der Objektmenge `set` aus dem Suchbereich aus.                                                                                                                    |
| `Void Exclude( HypothesisInstances )`                                                         | Schließt die Region der HypothesisInstances aus dem Suchbereich aus.                                                                                                                          |
| `Void RestrictSearchArea( FuzzyRect fuzzyRect )`                                              | Begrenzt den Suchbereich auf das Fuzzy-Rechteck `fuzzyRect`. Es werden globale Koordinaten verwendet.                                                                                         |
| `Void RestrictSearchArea( FuzzyRect, IntArray pages )`                                        | Begrenzt den Suchbereich auf das Fuzzy-Rechteck `fuzzyRect`. Geben Sie die lokalen Koordinaten und den Seitenbereich `pages` an.                                                              |
| `Void RestrictSearchArea( FuzzyRect, SearchAreaPageSetType )`                                 | Begrenzt den Suchbereich auf das Fuzzy-Rechteck `fuzzyRect`. Geben Sie die lokalen Koordinaten und den Seitenbereich vom Typ `SearchAreaPageSetType` an.                                      |
| `Void RestrictSearchArea( RectArray rectArray )`                                              | Begrenzt den Suchbereich auf das Rechteck-Array `rectArray`. Es werden globale Koordinaten verwendet.                                                                                         |
| `Void RestrictSearchArea( RectArray, IntArray pages )`                                        | Begrenzt den Suchbereich auf das Rechteck-Array `rectArray`. Geben Sie die lokalen Koordinaten und den Seitenbereich `pages` an.                                                              |
| `Void RestrictSearchArea( RectArray, SearchAreaPageSetType )`                                 | Begrenzt den Suchbereich auf das Rechteck-Array `rectArray`. Geben Sie die lokalen Koordinaten und den Seitenbereich vom Typ `SearchAreaPageSetType` an.                                      |
| `Void RestrictSearchArea( Region region )`                                                    | Begrenzt den Suchbereich auf die Region `region`. Es werden globale Koordinaten verwendet.                                                                                                    |
| `Void RestrictSearchArea( Region, IntArray pages )`                                           | Begrenzt den Suchbereich auf die Region. Geben Sie die lokalen Koordinaten und den Seitenbereich `pages` an.                                                                                  |
| `Void RestrictSearchArea( Region, SearchAreaPageSetType )`                                    | Begrenzt den Suchbereich auf die Region. Geben Sie die lokalen Koordinaten und den Seitenbereich vom Typ `SearchAreaPageSetType` an.                                                          |
| `Void RestrictSearchArea( SearchAreaPageRestriction pageRestriction, IntArray pages )`        | Begrenzt den Seitenbereich, in dem gesucht wird, ohne den Suchbereich auf den Seiten selbst einzuschränken. Der Parameter `pageRestriction` akzeptiert nur einen Wert: `WholePage`.           |
| `Void RestrictSearchArea( SearchAreaPageRestriction pageRestriction, SearchAreaPageSetType )` | Begrenzt den Seitenbereich, in dem gesucht wird, ohne den Suchbereich auf den Seiten selbst einzuschränken. Der Parameter `pageRestriction` akzeptiert nur einen Wert: `WholePage`.           |

<Tip>
  Sie können statt des vollständigen Namens `RestrictSearchArea` den Alias `RSA` verwenden.
</Tip>

<Note>
  Unterschiedliche Einschränkungen für dieselbe Seite werden gemeinsam angewendet, für verschiedene Seiten hingegen unabhängig voneinander. (Die Suche wird auf den Seiten durchgeführt, für die mindestens eine Einschränkung angegeben wurde.)
</Note>

<div id="examples-of-limiting-the-search-area">
  ## Beispiele für das Einschränken des Suchbereichs
</div>

Sie können angeben, dass der Suchbereich des Elements rechts vom Schnittbereich liegt, der durch die Fuzzy-Rectangle `Element1` und `Element2` gebildet wird:

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

Sie können festlegen, dass die Begrenzungen des Suchbereichs des aktuellen Elements durch die Begrenzungen der Rechtecke der Elemente `ElementName1`, `ElementName2` und `ElementName3` definiert werden. Wenn eines der Elemente nicht erkannt wird, legt der Aufruf dieser Funktion den Suchbereich des aktuellen Elements anhand der Begrenzungen der Suchbereiche der entsprechenden Elemente fest:

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

Sie können angeben, dass der Suchbereich des aktuellen Elements auf die Region des Elements `ElementName` beschränkt ist:

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

Sie können festlegen, dass das Element im Suchbereich auf geraden Seiten gesucht wird:

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

Sie können festlegen, dass auf den Seiten 2, 4 und 7–9 nach dem Element gesucht wird:

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

Sie können festlegen, dass nach dem Element auf der letzten Seite gesucht werden muss:

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

<div id="auxiliary-functions-that-define-the-search-area">
  ## Hilfsfunktionen zum Definieren des Suchbereichs
</div>

| Definition         | Beschreibung                                                                                                                                                                                                        |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Rect PageRect()`  | Das Rechteck der aktuellen Seite in globalen Koordinaten, das zum Angeben eines seitenabhängigen Suchbereichs verwendet wird. Die `PageRect`-Konstruktion kann nur zum Angeben eines Suchbereichs verwendet werden. |
| `Int PageNumber()` | Die Nummer der aktuellen Seite. Verwenden Sie sie, um einen seitenabhängigen Suchbereich anzugeben.                                                                                                                 |

Um anzugeben, dass sich das Element in der unteren Hälfte einer Seite befindet (die genaue Seite ist im Voraus nicht bekannt), schreiben Sie:

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

Verwenden Sie in allen anderen Fällen die Konstruktion `Page( N ).Rect`, um das Rechteck der Seite mit der Nummer `N` abzurufen, oder `DocumentRect`, um das Rechteck des gesamten Dokuments abzurufen. Sie können auch die Funktion `PageNumber` verwenden, um einen Suchbereich anzugeben, der von der jeweiligen Seite abhängt.

Angenommen, Sie haben ein wiederholtes Element `SearchElements.PageHeader`. Um auf jeder Seite unter den Instanzen dieses Elements zu suchen, schreiben Sie:

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