> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/nl/opdrachten/02-environments.md).

# Omgevingen

LaTeX-omgevingen worden gebruikt om specifieke zetopmaak-effecten toe te passen op een gedeelte van de inhoud van je document. Dit artikel legt uit hoe je bestaande omgevingen gebruikt en nieuwe definieert.

## Inleiding

Een omgeving begint met `\begin{name}` en eindigt met `\end{name}`:

```
\begin{name}
Jouw inhoud hier...
...komt hier...
\end{name}
```

waarbij “`naam`” de naam is van de gebruikte omgeving—zoals in het volgende voorbeeld met “`center`” om een alinea tekst op te maken (gecentreerd):

```latex
\documentclass{article}
\begin{document}
\begin{center}
Dit is een demonstratie van de \texttt{center}-omgeving.
Deze alinea tekst zal \textit{gecentreerd} zijn omdat hij
zich binnen een speciale omgeving bevindt. Omgevingen bieden
een efficiënte manier om tekstblokken binnen je document aan te passen.
\end{center}
\end{document}
```

[Open dit voorbeeld in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Simple+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bcenter%7D%0AThis+is+a+demonstration+of+the+%5Ctexttt%7Bcenter%7D+environment.+%0AThis+paragraph+of+text+will+be+%5Ctextit%7Bcentred%7D+because+it+is+%0Acontained+within+a+special+environment.+Environments+provide+%0Aan+efficient+way+to+modify+blocks+of+text+within+your+document.%0A%5Cend%7Bcenter%7D%0A%5Cend%7Bdocument%7D)

Dit voorbeeld levert de volgende uitvoer op:

![Afbeelding die de centrering toont](/files/0228ea6f9b465992edf5ae4effede4f5f8d4d128)

## Omgevingen

Het volgende voorbeeld gebruikt het `tabular` omgeving om een kleine tabel op te maken. `tabular` neemt een extra argument `{ c c c }` dat de uitlijning van de cellen bepaalt—zie het [Tabellen](/latex/nl/afbeeldingen-en-tabellen/01-tables.md) artikel voor meer informatie.

```latex
\documentclass{article}
\begin{document}
\begin{tabular}{ c c c }
  cell1 & cell2 & cell3 \\
  cell4 & cell5 & cell6 \\
  cell7 & cell8 & cell9 \\
 \end{tabular}
\end{document}
```

[Open dit voorbeeld in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Simple+tabular+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btabular%7D%7B+c+c+c+%7D+%0A++cell1+%26+cell2+%26+cell3+%5C%5C+%0A++cell4+%26+cell5+%26+cell6+%5C%5C+%0A++cell7+%26+cell8+%26+cell9+%5C%5C+%0A+%5Cend%7Btabular%7D%0A%5Cend%7Bdocument%7D)

Dit voorbeeld levert de volgende uitvoer op:

![Voorbeeld van de tabular-omgeving](/files/d085aac9d7e9f80deee2517b73e955a8db9bad82)

Sommige omgevingen accepteren optionele argumenten die meestal tussen haakjes worden geplaatst (`[...]`).

## Een nieuwe omgeving definiëren

Om een nieuwe omgeving te definiëren gebruik je het `\newenvironment` commando dat de algemene vorm heeft:

```
\newenvironment{name}[numarg][optarg_default]{begin_def}{end_def}
```

waarbij:

* `naam` de naam is van dit door de gebruiker gedefinieerde argument;
* `numarg` is het aantal argumenten, van 1 tot 9, dat deze omgeving accepteert. Als `[numarg]` wordt weggelaten dan accepteert de omgeving geen argumenten—zoals de [`boxed` omgeving die in het volgende voorbeeld is gedefinieerd](#defining-simple-environments);
* `optarg_default` maakt het eerste argument optioneel en geeft een standaardwaarde—oftewel, het is de waarde die wordt gebruikt als er geen waarde voor het optionele argument wordt opgegeven;
* `begin_def` is LaTeX-code die wordt uitgevoerd wanneer de omgeving begint (opent), d.w\.z. wanneer je schrijft `\begin{name}`. Binnen deze code kun je de argumenten gebruiken die door de omgeving worden geaccepteerd—merk op dat het optionele argument #1 is en de overige argumenten worden benaderd met #2 tot #numarg;
* `end_def` is LaTeX-code die wordt uitgevoerd wanneer de omgeving eindigt (sluit); d.w\.z. wanneer je schrijft `\end{name}`. Je kunt binnen dit codegedeelte geen van de argumenten gebruiken.

### Eenvoudige omgevingen definiëren

In dit eerste voorbeeld definiëren we de `boxed` omgeving die geen argumenten accepteert. Deze omgeving tekent een kader rond de tekst die binnen de omgeving staat:

```latex
\documentclass{article}
%We kunnen de omgeving in de preambule definiëren
\newenvironment{boxed}
    {\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
%
\begin{document}
Nu kunnen we de \texttt{boxed}-omgeving in ons document gebruiken:

\begin{boxed}
Deze tekst is opgemaakt binnen de \texttt{boxed}-omgeving.
\end{boxed}

Deze tekst staat buiten de \texttt{boxed}-omgeving.
\end{document}
```

[Open dit voorbeeld in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+new+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%25We+can+define+the+environment+in+the+preamble%0A%5Cnewenvironment%7Bboxed%7D%0A++++%7B%5Cbegin%7Bcenter%7D%0A++++%5Cbegin%7Btabular%7D%7B%7Cp%7B0.9%5Ctextwidth%7D%7C%7D%0A++++%5Chline%5C%5C%0A++++%7D%0A++++%7B+%0A++++%5C%5C%5C%5C%5Chline%0A++++%5Cend%7Btabular%7D+%0A++++%5Cend%7Bcenter%7D%0A++++%7D%0A%25%0A%5Cbegin%7Bdocument%7D%0ANow+we+can+use+the+%5Ctexttt%7Bboxed%7D+environment+in+our+document%3A%0A%0A%5Cbegin%7Bboxed%7D%0AThis+text+is+formatted+within+the+%5Ctexttt%7Bboxed%7D+environment.%0A%5Cend%7Bboxed%7D%0A%0AThis+text+is+typeset+outside+the+%5Ctexttt%7Bboxed%7D+environment.%0A%5Cend%7Bdocument%7D)

Dit voorbeeld levert de volgende uitvoer op:

![Een aangepaste LaTeX-omgeving demonstreren](/files/8f743112b45581ecc1da7452b6db4e77a51cdf89)

Als we onze definitie van `boxed` vergelijken met de algemene vorm van `\newenvironment` kunnen we zien:

* `naam` is `boxed`;
* noch `[numarg]` of `[optarg_default]` worden opgegeven omdat deze omgeving geen argumenten accepteert;
* `begin_def` is de LaTeX-code—tussen een paar accolades `{...}`—die wordt uitgevoerd wanneer de omgeving *begint* (opent):

```latex
\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
```

* `end_def` is de LaTeX-code—tussen een paar accolades `{...}`—die wordt uitgevoerd wanneer de omgeving *stopt* (sluit):

```latex
    \\\\\hline
    \end{tabular}
    \end{center}
```

In het voorbeeld, `begin_def` start een `center` omgeving en daarin wordt een `tabular` omgeving geopend om verticale lijnen en een horizontale lijn rond de tekst die we in de omgeving plaatsen te tekenen. `end_def` tekent nog een horizontale lijn en sluit vervolgens de `tabular` en `center` omgevingen.

### Omgevingen definiëren die argumenten accepteren

Laten we het vorige voorbeeld uitbreiden om het volgende te doen:

* een optioneel argument gebruiken om een titel op te maken. Als geen titel wordt opgegeven, gebruik dan de standaardwaarde `Dit is een kader`;
* een tweede argument gebruiken dat materiaal bevat om op te maken vóór de tekst die we binnen de omgeving zelf plaatsen.

Dus hebben we 2 argumenten:

* het eerste (argument 1) is optioneel;
* het tweede (argument 2) niet.

Dit betekent `numarg`=2.

We kunnen de volgende definitie van onze bijgewerkte `boxed` omgeving:

```latex
\newenvironment{boxed}[2][This is a box]
    {\begin{center}
    Argument 1 (\#1)=#1\\[1ex]
    \begin{tabular}{{{!}}p{0.9\textwidth}{{!}}}
    \hline\\
    Argument 2 (\#2)=#2\\[2ex]
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
```

Deze verbeterde versie verschilt op de volgende manieren van de oorspronkelijke:

* \[numarg] is aanwezig en heeft de waarde 2;
* \[optarg\_default] is ook aanwezig, waardoor het eerste argument optioneel is met een standaardwaarde `Dit is een kader`.

Het volgende voorbeeld demonstreert enkele toepassingen van onze geüpgradede `boxed` omgeving:

```latex
\documentclass{article}
% Let op de standaardwaarde voor het eerste
% argument wordt geleverd door [This is a box]
\newenvironment{boxed}[2][This is a box]
    {\begin{center}
    Argument 1 (\#1)=#1\\[1ex]
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    Argument 2 (\#2)=#2\\[2ex]
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
\begin{document}
\textbf{Voorbeeld 1}: Gebruik de standaardwaarde voor het eerste argument:

\begin{boxed}{Some preliminary text}
Deze tekst staat \textit{binnen} de omgeving.
\end{boxed}

Deze tekst staat \textit{buiten} de omgeving.

\vskip12pt

\textbf{Voorbeeld 2}: Geef een waarde op voor het eerste argument:

\begin{boxed}[This is not the default value]{Some more preliminary text}
Deze tekst staat nog steeds \textit{binnen} de omgeving.
\end{boxed}

Deze tekst staat ook \textit{buiten} de omgeving.
\end{document}
```

[Open dit voorbeeld in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Environment+with+an+optional+argument\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Note+the+default+value+for+the+first%0A%25+argument+is+provided+by+%5BThis+is+a+box%5D%0A%5Cnewenvironment%7Bboxed%7D%5B2%5D%5BThis+is+a+box%5D%0A++++%7B%5Cbegin%7Bcenter%7D%0A++++Argument+1+%28%5C%231%29%3D%231%5C%5C%5B1ex%5D%0A++++%5Cbegin%7Btabular%7D%7B%7Cp%7B0.9%5Ctextwidth%7D%7C%7D%0A++++%5Chline%5C%5C%0A++++Argument+2+%28%5C%232%29%3D%232%5C%5C%5B2ex%5D%0A++++%7D%0A++++%7B+%0A++++%5C%5C%5C%5C%5Chline%0A++++%5Cend%7Btabular%7D+%0A++++%5Cend%7Bcenter%7D%0A++++%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctextbf%7BExample+1%7D%3A+Use+the+default+value+for+the+first+argument%3A%0A+%0A%5Cbegin%7Bboxed%7D%7BSome+preliminary+text%7D%0AThis+text+is+%5Ctextit%7Binside%7D+the+environment.%0A%5Cend%7Bboxed%7D%0A%0AThis+text+is+%5Ctextit%7Boutside%7D+the+environment.%0A%0A%5Cvskip12pt%0A%0A%5Ctextbf%7BExample+2%7D%3A+Provide+a+value+for+the+first+argument%3A%0A+%0A%5Cbegin%7Bboxed%7D%5BThis+is+not+the+default+value%5D%7BSome+more+preliminary+text%7D%0AThis+text+is+still+%5Ctextit%7Binside%7D+the+environment.%0A%5Cend%7Bboxed%7D%0A%0AThis+text+is+also+%5Ctextit%7Boutside%7D+the+environment.%0A%5Cend%7Bdocument%7D)

Dit voorbeeld levert de volgende uitvoer op:

![Omgeving met een optionele parameter](/files/ae4f2d7b60964dbe70e9a9d2af963e3f8368a756)

### Genummerde omgevingen

Genummerde omgevingen kunnen handmatig worden gemaakt of rechtstreeks met het commando `\newtheorem`, zoals het volgende voorbeeld laat zien:

```latex
\documentclass{article}
% Definieer onze genummerde omgeving binnen de preambule
\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \noindent \textbf{Example~\theexample. #1} \rmfamily}{\medskip}

% Nog een genummerde omgeving gedefinieerd met \newtheorem
\usepackage{amsmath} % Voor het commando \newtheorem
\newtheorem{SampleEnv}{Sample Environment}[section]
\begin{document}

\section{User-defined numbered environments}

\begin{example}
Eerste door de gebruiker gedefinieerde genummerde omgeving (nummer \theexample).
\end{example}

\begin{example}
Tweede door de gebruiker gedefinieerde genummerde omgeving (nummer \theexample).
\end{example}

\section{Meer door de gebruiker gedefinieerde genummerde omgevingen}
Merk op hoe de nummering van het voorbeeld opnieuw is begonnen bij 1:

\begin{example}
Eerste door de gebruiker gedefinieerde genummerde omgeving (nummer \theexample).
\end{example}

\begin{SampleEnv}
Door de gebruiker gedefinieerde omgeving gemaakt met het \verb|\newtheorem|-commando.
\end{SampleEnv}
\end{document}
```

[Open dit voorbeeld in Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+numbered+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Define+our+numbered+environment+within+the+preamble%0A%5Cnewcounter%7Bexample%7D%5Bsection%5D%0A%5Cnewenvironment%7Bexample%7D%5B1%5D%5B%5D%7B%5Crefstepcounter%7Bexample%7D%5Cpar%5Cmedskip%0A+++%5Cnoindent+%5Ctextbf%7BExample%7E%5Ctheexample.+%231%7D+%5Crmfamily%7D%7B%5Cmedskip%7D%0A%0A%25+Another+numbered+environment+defined+with+%5Cnewtheorem%0A%5Cusepackage%7Bamsmath%7D+%25+For+the+%5Cnewtheorem+command%0A%5Cnewtheorem%7BSampleEnv%7D%7BSample+Environment%7D%5Bsection%5D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Csection%7BUser-defined+numbered+environments%7D%0A%0A%5Cbegin%7Bexample%7D%0AFirst+user-defined+numbered+environment+%28number+%5Ctheexample%29.%0A%5Cend%7Bexample%7D%0A%0A%5Cbegin%7Bexample%7D%0ASecond+user-defined+numbered+environment+%28number+%5Ctheexample%29.%0A%5Cend%7Bexample%7D%0A%0A%5Csection%7BMore+user-defined+numbered+environments%7D%0ANote+how+the+example+numbering+has+restarted+at+1%3A%0A%0A%5Cbegin%7Bexample%7D%0AFirst+user-defined+numbered+environment+%28number+%5Ctheexample%29.%0A%5Cend%7Bexample%7D%0A%0A%5Cbegin%7BSampleEnv%7D%0AUser-defined+environment+created+with+the+%5Cverb%7C%5Cnewtheorem%7C+command.%0A%5Cend%7BSampleEnv%7D%0A%5Cend%7Bdocument%7D)

Dit voorbeeld levert de volgende uitvoer op:

![Voorbeeld dat door de gebruiker gedefinieerde genummerde omgevingen toont](/files/b88dfd9ac4ad7e759b3c5ff9b17862803ddd9fd5)

#### Enkele opmerkingen

* In de handmatig gedefinieerde `voorbeeld` omgeving maakt het commando `\newcounter{example}[section]` maakt ook een teller aan, ook wel `voorbeeld`. Het `voorbeeld` de teller is:
  * verhoogd met 1 door gebruik van `\refstepcounter{example}` binnen de definitie van de omgeving;
  * opnieuw ingesteld telkens wanneer een nieuwe `\section{...}` wordt gestart;
  * een variabele waarvan de huidige waarde kan worden opgemaakt met `\theexample`. Zie [het artikel over tellers](/latex/nl/opmaak/10-counters.md) om meer te leren.
* Het commando `\newtheorem` maakt rechtstreeks een genummerde omgeving aan en neemt drie parameters:
  * de naam van de nieuwe omgeving: `SampleEnv` in ons voorbeeld;
  * de tekst die vetgedrukt aan het begin van de regel wordt afgedrukt: `Sample Environment` in ons voorbeeld;
  * een optionele parameter die bepaalt wanneer de teller wordt gereset; en als deze wordt gebruikt, wordt voorafgegaan door de waarde van die reset-teller: `section` in ons voorbeeld.

De [`amsthm` pakket](https://ctan.org/pkg/amsthm?lang=en), samen met `amsmath`, bieden nuttige extra definities naast `\newtheorem`; zie [Stellingen en bewijzen](/latex/nl/vakspecifiek/01-theorems-and-proofs.md) voor meer details.

## Bestaande omgevingen opnieuw definiëren

Omgevingen kunnen opnieuw worden gedefinieerd met `\renewenvironment` waarvan de syntaxis hetzelfde is als die van `\newenvironment`—zie de sectie [Een nieuwe omgeving definiëren](#defining-a-new-environment) voor een uitleg van de verschillende parameters:

```
\newenvironment{name}[numarg][optarg_default]{begin_def}{end_def}
```

Het volgende voorbeeld herdefinieert de `itemize` omgeving—dit is alleen een voorbeeld om het proces te illustreren, het mag niet in een echt document worden gebruikt. De nieuwe `itemize` omgeving maakt geen opsommingstekens meer; in plaats daarvan centreert en benadrukt (cursiveert) het de tekst erin (met het `\em` commando).

```latex
\documentclass{article}
% Herdefinieer de omgeving in de preambule
\renewenvironment{itemize}
{\begin{center}\em}
{\end{center}}
\begin{document}

\begin{itemize}
We hebben de \texttt{itemize}-omgeving opnieuw gedefinieerd zodat alle tekst
erin gecentreerd en benadrukt (cursief) wordt weergegeven. Het maakt geen
opsommingstekens meer aan---dit is slechts een voorbeeld en niet bedoeld voor gebruik
in echte documenten!
\end{itemize}
\end{document}
```

[Open dit voorbeeld in Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Redefining+an+existing+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Redefine+the+environment+in+the+preamble%0A%5Crenewenvironment%7Bitemize%7D%0A%7B%5Cbegin%7Bcenter%7D%5Cem%7D%0A%7B%5Cend%7Bcenter%7D%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bitemize%7D%0AWe+have+redefined+the+%5Ctexttt%7Bitemize%7D+environment+so+that+any+text+%0Awithin+it+is+centred+and+emphasised+%28italicized%29.+It+no+longer+creates%0Aa+bulleted+list---this+is+only+an+example+and+not+intended+for+use+%0Ain+real+documents%21%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Dit voorbeeld levert de volgende uitvoer op:

![Voorbeeld met een opnieuw gedefinieerde itemize-omgeving](/files/b785164b7724c5f4d7c58ffead240471c80d4f12)

## Verder lezen

Voor meer informatie zie:

* [Commando's](/latex/nl/opdrachten/01-commands.md)
* [Packages en klassebestanden begrijpen](/latex/nl/class-bestanden/01-understanding-packages-and-class-files.md)
* [Je eigen package schrijven](/latex/nl/class-bestanden/03-writing-your-own-package.md)
* [Je eigen klasse schrijven](/latex/nl/class-bestanden/04-writing-your-own-class.md)
* [Lengtes in LaTeX](/latex/nl/opmaak/01-lengths-in-latex.md)
* [Kleuren gebruiken in LaTeX](/latex/nl/opmaak/13-using-colors-in-latex.md)
* [Paginagrootte en marges](/latex/nl/opmaak/07-page-size-and-margins.md)
* [Lijst van packages en klassebestanden](/latex/nl/class-bestanden/02-overleaf-and-tex-live.md)
* [De niet zo korte inleiding tot LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Creating\_Packages op Wikibooks](http://en.wikibooks.org/wiki/LaTeX/Creating_Packages)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/nl/opdrachten/02-environments.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
