> 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/da/kommandoer/02-environments.md).

# Miljøer

LaTeX-miljøer bruges til at anvende bestemte satsningseffekter på en del af dit dokuments indhold. Denne artikel forklarer, hvordan man bruger eksisterende miljøer og definerer nye.

## Introduktion

Et miljø starter med `\begin{name}` og slutter med `\end{name}`:

```
\begin{name}
Dit indhold her...
...kommer her...
\end{name}
```

hvor “`navn`” er navnet på det miljø, der bruges—som i det følgende eksempel med “`center`” til at formatere et afsnit tekst (centrere det):

```latex
\documentclass{article}
\begin{document}
\begin{center}
Dette er en demonstration af \texttt{center}-miljøet.
Dette afsnit tekst vil blive \textit{centreret}, fordi det er
indeholdt i et særligt miljø. Miljøer giver
en effektiv måde at ændre tekstblokke i dit dokument på.
\end{center}
\end{document}
```

[Åbn dette eksempel i 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)

Dette eksempel giver følgende output:

![Billede, der viser centrering](/files/9e32607c8d152a313066d86a1445f67bb0094b90)

## Miljøer

Følgende eksempel bruger `tabular` -miljø til at sætte en lille tabel. `tabular` tager et ekstra argument `{ c c c }` som definerer cellernes justering—se [Tabeller](/latex/da/figurer-og-tabeller/01-tables.md) artiklen for mere information.

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

[Åbn dette eksempel i 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)

Dette eksempel giver følgende output:

![Eksempel på tabular-miljøet](/files/38ec5162ba2117c222642082d8d060b9bd963cc5)

Nogle miljøer accepterer valgfrie argumenter, som normalt gives inde i klammer (`[...]`).

## Definition af et nyt miljø

For at definere et nyt miljø bruger man kommandoen `\newenvironment` som har den generelle form:

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

hvor:

* `navn` er navnet på dette brugerdefinerede argument;
* `numarg` er antallet af argumenter, fra 1 til 9, som dette miljø accepterer. Hvis `[numarg]` udelades, accepterer miljøet ikke nogen argumenter—som f.eks. det [`boxed` -miljø, der er defineret i det næste eksempel](#defining-simple-environments);
* `optarg_default` gør det første argument valgfrit og angiver en standardværdi—dvs. det er den værdi, der bruges, hvis der ikke angives en værdi for det valgfrie argument;
* `begin_def` er LaTeX-kode, der udføres, når miljøet starter (åbnes), dvs. når du skriver `\begin{name}`. Inden for denne kode kan du bruge argumenter, som miljøet accepterer—bemærk, at det valgfrie argument er #1, og de resterende argumenter tilgås med #2 til #numarg;
* `end_def` er LaTeX-kode, der udføres, når miljøet slutter (lukkes); dvs. når du skriver `\end{name}`. Du kan ikke bruge nogen af argumenterne i denne kodesection.

### Definition af simple miljøer

I dette første eksempel definerer vi `boxed` -miljøet, som ikke tager nogen argumenter. Det tegner en ramme omkring tekst, der er indeholdt i miljøet:

```latex
\documentclass{article}
%Vi kan definere miljøet i præamblen
\newenvironment{boxed}
    {\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
%
\begin{document}
Nu kan vi bruge \texttt{boxed}-miljøet i vores dokument:

\begin{boxed}
Denne tekst er formateret i \texttt{boxed}-miljøet.
\end{boxed}

Denne tekst er sat uden for \texttt{boxed}-miljøet.
\end{document}
```

[Åbn dette eksempel i 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)

Dette eksempel giver følgende output:

![Demonstration af et brugerdefineret LaTeX-miljø](/files/9ab49d6194c2dc11fa878179cc5a363767435efd)

Hvis vi sammenligner vores definition af `boxed` med den generelle form af `\newenvironment` kan vi se:

* `navn` er `boxed`;
* hverken `[numarg]` eller `[optarg_default]` er angivet, fordi dette miljø ikke tager nogen argumenter;
* `begin_def` er LaTeX-koden—givet mellem et par klammer `{...}`—som udføres, når miljøet *starter* (åbnes):

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

* `end_def` er LaTeX-koden—givet mellem et par klammer `{...}`—som udføres, når miljøet *stopper* (lukkes):

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

I eksemplet `begin_def` starter et `center` -miljø og inden i det åbnes et `tabular` -miljø for at tegne lodrette linjer og en vandret linje omkring den tekst, vi placerer i miljøet. `end_def` tegner endnu en vandret linje og lukker derefter `tabular` og `center` miljøerne.

### Definition af miljøer, der tager argumenter

Lad os forbedre det forrige eksempel til at gøre følgende:

* bruge et valgfrit argument til at sætte en titel. Hvis der ikke angives en titel, bruges standardværdien `Dette er en boks`;
* bruge et andet argument, som indeholder materiale, der skal sættes før den tekst, vi angiver i selve miljøet.

Så vi har 2 argumenter:

* det første (argument 1) er valgfrit;
* det andet (argument 2) er det ikke.

Det betyder `numarg`=2.

Vi kan bruge følgende definition af vores opdaterede `boxed` miljø:

```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}
    }
```

Denne forbedrede version adskiller sig fra den oprindelige på følgende måder:

* \[numarg] er til stede og har værdien 2;
* \[optarg\_default] er også til stede, hvilket gør det første argument valgfrit med en standardværdi `Dette er en boks`.

Det følgende eksempel demonstrerer nogle anvendelser af vores opgraderede `boxed` miljø:

```latex
\documentclass{article}
% Bemærk standardværdien for det første
% argument er angivet af [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{Eksempel 1}: Brug standardværdien for det første argument:

\begin{boxed}{Some preliminary text}
Denne tekst er \textit{inde} i miljøet.
\end{boxed}

Denne tekst er \textit{uden for} miljøet.

\vskip12pt

\textbf{Eksempel 2}: Angiv en værdi for det første argument:

\begin{boxed}[This is not the default value]{Some more preliminary text}
Denne tekst er stadig \textit{inde} i miljøet.
\end{boxed}

Denne tekst er også \textit{uden for} miljøet.
\end{document}
```

[Åbn dette eksempel i 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)

Dette eksempel giver følgende output:

![Miljø med en valgfri parameter](/files/4cc4a2be414dd124618ffabad3b6adadd3549dc8)

### Numrerede miljøer

Numrerede miljøer kan oprettes enten manuelt eller direkte med kommandoen `\newtheorem`, som vist i følgende eksempel:

```latex
\documentclass{article}
% Definér vores nummererede miljø i præamblen
\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \noindent \textbf{Eksempel~\theexample. #1} \rmfamily}{\medskip}

% Et andet nummereret miljø defineret med \newtheorem
\usepackage{amsmath} % Til kommandoen \newtheorem
\newtheorem{SampleEnv}{Sample Environment}[section]
\begin{document}

\section{Brugerdefinerede nummererede miljøer}

\begin{example}
Første brugerdefinerede nummererede miljø (nummer \theexample).
\end{example}

\begin{example}
Andet brugerdefinerede nummererede miljø (nummer \theexample).
\end{example}

\section{Flere brugerdefinerede nummererede miljøer}
Bemærk, hvordan eksempelnummereringen er begyndt forfra ved 1:

\begin{example}
Første brugerdefinerede nummererede miljø (nummer \theexample).
\end{example}

\begin{SampleEnv}
Brugerdefineret miljø oprettet med kommandoen \verb|\newtheorem|.
\end{SampleEnv}
\end{document}
```

[Åbn dette eksempel i 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)

Dette eksempel giver følgende output:

![Eksempel, der viser brugerdefinerede nummererede miljøer](/files/eb1eea0ca83fbef87ccf1ed74134700b77280ad4)

#### Nogle bemærkninger

* I det manuelt definerede `eksempel` -miljøet `\newcounter{example}[section]` opretter kommandoen en tæller, også kaldet `eksempel`. `eksempel` tælleren er:
  * forøget med 1 ved hjælp af `\refstepcounter{example}` inden for miljødefinitionen;
  * nulstillet hver gang en ny `\section{...}` startes;
  * en variabel, hvis aktuelle værdi kan sættes med `\theexample`. Se [artiklen om tællere](/latex/da/formatering/10-counters.md) for at lære mere.
* Kommandoen `\newtheorem` opretter direkte et nummereret miljø og tager tre parametre:
  * navnet på det nye miljø: `SampleEnv` i vores eksempel;
  * den tekst, der skal skrives med fed skrift i begyndelsen af linjen: `Sample Environment` i vores eksempel;
  * en valgfri parameter, som afgør, hvornår tælleren nulstilles; og hvis den bruges, foranstilles tælleren af den nulstillingsværdis værdi: `section` i vores eksempel.

Den [`amsthm` pakken](https://ctan.org/pkg/amsthm?lang=en), sammen med `amsmath`, giver nyttige ekstra definitioner sammen med `\newtheorem`; se [Sætninger og beviser](/latex/da/fag-specifikt/01-theorems-and-proofs.md) for yderligere detaljer.

## Omdefinering af eksisterende miljøer

Miljøer kan omdefineres ved hjælp af `\renewenvironment` hvis syntaks er den samme som `\newenvironment`—se afsnittet [Definition af et nyt miljø](#defining-a-new-environment) for en forklaring af de forskellige parametre:

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

Det næste eksempel omdefinerer `itemize` -miljøet—dette er kun et eksempel for at illustrere processen; det bør ikke betragtes som noget, der bruges i et rigtigt dokument. Det nye `itemize` -miljø producerer ikke længere en punktopstilling; i stedet centrerer det og fremhæver (kursiverer) teksten i det (ved hjælp af `\em` -kommandoen).

```latex
\documentclass{article}
% Omdefinér miljøet i præamblen
\renewenvironment{itemize}
{\begin{center}\em}
{\end{center}}
\begin{document}

\begin{itemize}
Vi har omdefineret \texttt{itemize}-miljøet, så enhver tekst
i det er centreret og fremhævet (kursiveret). Det opretter ikke længere
en punktopstilling---dette er kun et eksempel og ikke beregnet til brug
i rigtige dokumenter!
\end{itemize}
\end{document}
```

[Åbn dette eksempel i 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)

Dette eksempel giver følgende output:

![Eksempel med et omdefineret itemize-miljø](/files/a21586ec758466e24f4083e715d9929a9048890e)

## Yderligere læsning

For mere information se:

* [Kommandoer](/latex/da/kommandoer/01-commands.md)
* [Forstå pakker og klassefiler](/latex/da/klassefiler/01-understanding-packages-and-class-files.md)
* [Skriv din egen pakke](/latex/da/klassefiler/03-writing-your-own-package.md)
* [Skriv din egen klasse](/latex/da/klassefiler/04-writing-your-own-class.md)
* [Længder i LaTeX](/latex/da/formatering/01-lengths-in-latex.md)
* [Brug af farver i LaTeX](/latex/da/formatering/13-using-colors-in-latex.md)
* [Sidestørrelse og margener](/latex/da/formatering/07-page-size-and-margins.md)
* [Liste over pakker og klassefiler](/latex/da/klassefiler/02-overleaf-and-tex-live.md)
* [Den ikke helt korte introduktion til LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Creating\_Packages på 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/da/kommandoer/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.
