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

# Miljøer

LaTeX-miljøer brukes til å anvende spesifikke typografiske effekter på en del av dokumentets innhold. Denne artikkelen forklarer hvordan du bruker eksisterende miljøer og definerer nye.

## Innledning

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

```
\begin{name}
Innholdet ditt her...
...plasseres her...
\end{name}
```

der «`navn`» er navnet på miljøet som brukes — som i følgende eksempel med «`center`» for å formatere et avsnitt med tekst (midtplassere):

```latex
\documentclass{article}
\begin{document}
\begin{center}
Dette er en demonstrasjon av \texttt{center}-miljøet.
Dette avsnittet med tekst vil bli \textit{sentrert} fordi det er
inneholdt i et spesielt miljø. Miljøer gir
en effektiv måte å endre tekstblokker i dokumentet ditt på.
\end{center}
\end{document}
```

[Åpne dette eksemplet 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 eksemplet gir følgende resultat:

![Bilde som viser sentrering](/files/c782679cbca8c3eae65d6c667119b3c8fa9b04bf)

## Miljøer

Følgende eksempel bruker `tabular` miljø for å sette opp en liten tabell. `tabular` tar et ekstra argument `{ c c c }` som definerer justeringen av cellene — se [Tabeller](/latex/no/figurer-og-tabeller/01-tables.md) artikkelen for mer informasjon.

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

[Åpne dette eksemplet 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 eksemplet gir følgende resultat:

![Eksempel på tabular-miljøet](/files/146083dd6df904ab11ae366613853f3e149b32db)

Noen miljøer godtar valgfrie argumenter som vanligvis sendes inn i hakeparenteser (`[...]`).

## Definere et nytt miljø

For å definere et nytt miljø bruker du `\newenvironment` kommandoen som har den generelle formen:

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

der:

* `navn` er navnet på dette brukerdefinerte argumentet;
* `numarg` er antallet argumenter, fra 1 til 9, som dette miljøet aksepterer. Hvis `[numarg]` utelates, tar miljøet ikke imot noen argumenter — slik som [`boxed` miljøet definert i neste eksempel](#defining-simple-environments);
* `optarg_default` gjør det første argumentet valgfritt og gir en standardverdi — dvs. verdien som brukes hvis en valgfri argumentverdi ikke er oppgitt;
* `begin_def` er LaTeX-kode som kjøres når miljøet starter (åpner), dvs. når du skriver `\begin{name}`. Innenfor denne koden kan du bruke argumenter som miljøet godtar — merk at det valgfrie argumentet er #1 og de gjenværende argumentene nås med #2 til #numarg;
* `end_def` er LaTeX-kode som kjøres når miljøet avsluttes (lukkes); dvs. når du skriver `\end{name}`. Du kan ikke bruke noen av argumentene i denne kodeblokken.

### Definere enkle miljøer

I dette første eksemplet definerer vi `boxed` miljøet som ikke tar noen argumenter. Det tegner en ramme rundt tekst som er i miljøet:

```latex
\documentclass{article}
%Vi kan definere miljøet i preamblen
\newenvironment{boxed}
    {\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
%
\begin{document}
Nå kan vi bruke \texttt{boxed}-miljøet i dokumentet vårt:

\begin{boxed}
Denne teksten er formatert innenfor \texttt{boxed}-miljøet.
\end{boxed}

Denne teksten er satt utenfor \texttt{boxed}-miljøet.
\end{document}
```

[Åpne dette eksemplet 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 eksemplet gir følgende resultat:

![Demonstrasjon av et tilpasset LaTeX-miljø](/files/70f95abdffaf509b3fecf6c68f2d3e221767ac5f)

Hvis vi sammenligner definisjonen vår av `boxed` med den generelle formen for `\newenvironment` kan vi se:

* `navn` er `boxed`;
* verken `[numarg]` eller `[optarg_default]` er oppgitt fordi dette miljøet ikke tar noen argumenter;
* `begin_def` er LaTeX-koden — gitt mellom et par krøllparenteser `{...}`— som kjøres når miljøet *starter* (åpnes):

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

* `end_def` er LaTeX-koden — gitt mellom et par krøllparenteser `{...}`— som kjøres når miljøet *stopper* (lukkes):

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

I eksemplet, `begin_def` starter et `center` miljø, og innenfor det åpnes et `tabular` miljø for å tegne vertikale linjer og en horisontal linje rundt teksten vi plasserer i miljøet. `end_def` tegner en annen horisontal linje og lukker deretter `tabular` og `center` miljøene.

### Definere miljøer som tar argumenter

La oss utvide det forrige eksemplet til å gjøre følgende:

* bruk et valgfritt argument for å sette en tittel. Hvis ingen tittel er oppgitt, bruk standardverdien `Dette er en boks`;
* bruk et andre argument som inneholder materiale som skal settes før teksten vi selv legger inn i miljøet.

Så vi har 2 argumenter:

* det første (argument 1) er valgfritt;
* det andre (argument 2) er det ikke.

Dette betyr `numarg`=2.

Vi kan bruke følgende definisjon av vårt oppdaterte `boxed` -miljøet:

```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 versjonen skiller seg fra originalen på følgende måter:

* \[numarg] er til stede og har verdien 2;
* \[optarg\_default] er også til stede, noe som gjør det første argumentet valgfritt med en standardverdi `Dette er en boks`.

Følgende eksempel demonstrerer noen bruksområder for vårt oppgraderte `boxed` -miljøet:

```latex
\documentclass{article}
% Merk at standardverdien for det første
% argumentet er gitt av [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}: Bruk standardverdien for det første argumentet:

\begin{boxed}{Some preliminary text}
Denne teksten er \textit{inni} miljøet.
\end{boxed}

Denne teksten er \textit{utenfor} miljøet.

\vskip12pt

\textbf{Eksempel 2}: Oppgi en verdi for det første argumentet:

\begin{boxed}[This is not the default value]{Some more preliminary text}
Denne teksten er fortsatt \textit{inni} miljøet.
\end{boxed}

Denne teksten er også \textit{utenfor} miljøet.
\end{document}
```

[Åpne dette eksemplet 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 eksemplet gir følgende resultat:

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

### Nummererte miljøer

Nummererte miljøer kan opprettes enten manuelt eller direkte med kommandoen `\newtheorem`, som demonstrert av følgende eksempel:

```latex
\documentclass{article}
% Definer vårt nummererte miljø i preamblen
\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \noindent \textbf{Example~\theexample. #1} \rmfamily}{\medskip}

% Et annet nummerert miljø definert med \newtheorem
\usepackage{amsmath} % For \newtheorem-kommandoen
\newtheorem{SampleEnv}{Sample Environment}[section]
\begin{document}

\section{Brukerdefinerte nummererte miljøer}

\begin{example}
Første brukerdefinerte nummererte miljø (nummer \theexample).
\end{example}

\begin{example}
Andre brukerdefinerte nummererte miljø (nummer \theexample).
\end{example}

\section{Flere brukerdefinerte nummererte miljøer}
Legg merke til hvordan nummereringen av eksemplene har startet på nytt ved 1:

\begin{example}
Første brukerdefinerte nummererte miljø (nummer \theexample).
\end{example}

\begin{SampleEnv}
Brukerdefinert miljø opprettet med \verb|\newtheorem|-kommandoen.
\end{SampleEnv}
\end{document}
```

[Åpne dette eksemplet 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 eksemplet gir følgende resultat:

![Eksempel som viser brukerdefinerte nummererte miljøer](/files/768a7b73ddc081677387552707545cac8d3a4a20)

#### Noen merknader

* I det manuelt definerte `eksempel` miljøet `\newcounter{example}[section]` oppretter kommandoen `eksempel`. `eksempel` en teller, også kalt
  * telleren er: `økes med 1 ved å bruke` innenfor miljødefinisjonen;
  * tilbakestilles hver gang en ny `\section{...}` starter;
  * en variabel hvis nåværende verdi kan settes med `\theexample`. Se [artikkelen om tellere](/latex/no/formatering/10-counters.md) for å lære mer.
* Kommandoen `\newtheorem` oppretter direkte et nummerert miljø og tar tre parametere:
  * navnet på det nye miljøet: `SampleEnv` i vårt eksempel;
  * teksten som skal skrives med fet skrift i starten av linjen: `Eksempelmiljø` i vårt eksempel;
  * en valgfri parameter som avgjør når telleren tilbakestilles; og hvis den brukes, får telleren verdien til den telleren som brukes til tilbakestilling foran seg: `seksjon` i vårt eksempel.

Den [`amsthm` pakken](https://ctan.org/pkg/amsthm?lang=en), sammen med `amsmath`, gir nyttige ekstra definisjoner sammen med `\newtheorem`; se [Teoremer og bevis](/latex/no/fagspesifikt/01-theorems-and-proofs.md) for flere detaljer.

## Omdisponere eksisterende miljøer

Miljøer kan omdefineres ved å bruke `\renewenvironment` hvis syntaks er den samme som `\newenvironment`— se seksjonen [Definere et nytt miljø](#defining-a-new-environment) for en forklaring av de ulike parameterne:

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

Det neste eksemplet omdefinerer `itemize` miljøet — dette er bare et eksempel for å illustrere prosessen, det bør ikke betraktes som noe i et reelt dokument. Det nye `itemize` miljøet produserer ikke lenger en punktliste; i stedet sentrerer og uthever (kursiverer) teksten i det (ved å bruke `\em` kommandoen).

```latex
\documentclass{article}
% Omdefiner miljøet i preamblen
\renewenvironment{itemize}
{\begin{center}\em}
{\end{center}}
\begin{document}

\begin{itemize}
Vi har omdefinert \texttt{itemize}-miljøet slik at all tekst
i det er sentrert og uthevet (kursivert). Det oppretter ikke lenger
en punktliste --- dette er bare et eksempel og er ikke ment for bruk
i ekte dokumenter!
\end{itemize}
\end{document}
```

[Åpne dette eksemplet 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 eksemplet gir følgende resultat:

![Eksempel med et omdefinert itemize-miljø](/files/fdd4789824cdfcaf21fc73b0cba6b1b76c114de2)

## Videre lesning

For mer informasjon, se:

* [Kommandoer](/latex/no/kommandoer/01-commands.md)
* [Forstå pakker og klassefiler](/latex/no/klassefiler/01-understanding-packages-and-class-files.md)
* [Skrive din egen pakke](/latex/no/klassefiler/03-writing-your-own-package.md)
* [Skrive din egen klasse](/latex/no/klassefiler/04-writing-your-own-class.md)
* [Lengder i LaTeX](/latex/no/formatering/01-lengths-in-latex.md)
* [Bruke farger i LaTeX](/latex/no/formatering/13-using-colors-in-latex.md)
* [Sidestørrelse og marger](/latex/no/formatering/07-page-size-and-margins.md)
* [Liste over pakker og klassefiler](/latex/no/klassefiler/02-overleaf-and-tex-live.md)
* [Den ikke helt korte introduksjonen 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/no/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.
