> 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/sv/kommandon/02-environments.md).

# Miljöer

LaTeX-miljöer används för att tillämpa specifika sättningseffekter på ett avsnitt av innehållet i ditt dokument. Den här artikeln förklarar hur du använder befintliga miljöer och definierar nya.

## Introduktion

En miljö börjar med `\begin{name}` och slutar med `\end{name}`:

```
\begin{name}
Ditt innehåll här...
...kommer här...
\end{name}
```

där “`namn`” är namnet på den miljö som används—som i följande exempel med “`center`” för att formatera ett stycke text (centrera) :

```latex
\documentclass{article}
\begin{document}
\begin{center}
Detta är en demonstration av miljön \texttt{center}.
Detta stycke text kommer att vara \textit{centrerat} eftersom det är
innehållet inom en särskild miljö. Miljöer erbjuder
ett effektivt sätt att modifiera textblock i ditt dokument.
\end{center}
\end{document}
```

[Öppna detta exempel 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)

Det här exemplet ger följande utdata:

![Bild som visar den centrerade justeringen](/files/f0a4d7400b235abb24337aede50724a96891b59f)

## Miljöer

Följande exempel använder `tabular` miljön för att sätta en liten tabell. `tabular` tar ett extra argument `{ c c c }` som definierar cellernas justering—se [Tabeller](/latex/sv/figurer-och-tabeller/01-tables.md) artikeln för mer information.

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

[Öppna detta exempel 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)

Det här exemplet ger följande utdata:

![Exempel på tabular-miljön](/files/01cc35ea128b7556e32c6ca8c7183bdc43d5aff6)

Vissa miljöer accepterar valfria argument som vanligtvis anges inom hakparenteser (`[...]`).

## Definiera en ny miljö

För att definiera en ny miljö använder du `\newenvironment` kommandot som har den allmänna formen:

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

där:

* `namn` är namnet på detta användardefinierade argument;
* `numarg` är antalet argument, från 1 till 9, som denna miljö accepterar. Om `[numarg]` utelämnas accepterar miljön inga argument—som i [`boxed` miljön som definieras i nästa exempel](#defining-simple-environments);
* `optarg_default` gör det första argumentet valfritt och tillhandahåller ett standardvärde—dvs. det värde som används om inget värde för det valfria argumentet anges;
* `begin_def` är LaTeX-kod som körs när miljön startar (öppnas), dvs. när du skriver `\begin{name}`. Inom denna kod kan du använda argument som miljön accepterar—observera att det valfria argumentet är #1 och att de återstående argumenten nås med #2 till #numarg;
* `end_def` är LaTeX-kod som körs när miljön avslutas (stängs); dvs. när du skriver `\end{name}`. Du kan inte använda något av argumenten i detta kodavsnitt.

### Definiera enkla miljöer

I detta första exempel definierar vi `boxed` miljön som inte tar några argument. Den ritar en ruta runt text som finns inom miljön:

```latex
\documentclass{article}
%Vi kan definiera miljön i preamblen
\newenvironment{boxed}
    {\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
%
\begin{document}
Nu kan vi använda miljön \texttt{boxed} i vårt dokument:

\begin{boxed}
Denna text formateras inom miljön \texttt{boxed}.
\end{boxed}

Denna text sätts utanför miljön \texttt{boxed}.
\end{document}
```

[Öppna detta exempel 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)

Det här exemplet ger följande utdata:

![Demonstration av en anpassad LaTeX-miljö](/files/d569cd9e10fde370ce7f078a105e1676bf92617e)

Om vi jämför vår definition av `boxed` med den allmänna formen av `\newenvironment` kan vi se:

* `namn` är `boxed`;
* varken `[numarg]` eller `[optarg_default]` anges eftersom denna miljö inte tar några argument;
* `begin_def` är LaTeX-koden—angiven mellan ett par klamrar `{...}`—som körs när miljön *startar* (öppnas):

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

* `end_def` är LaTeX-koden—angiven mellan ett par klamrar `{...}`—som körs när miljön *avslutas* (stängs):

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

I exemplet, `begin_def` startar en `center` miljö och inom den en `tabular` miljö öppnas för att rita vertikala linjer och en horisontell linje runt texten som vi placerar i miljön. `end_def` ritar ytterligare en horisontell linje och stänger sedan `tabular` och `center` miljöerna.

### Definiera miljöer som tar argument

Låt oss förbättra det föregående exemplet så att det gör följande:

* använd ett valfritt argument för att sätta en titel. Om ingen titel anges, använd standardvärdet `Detta är en ruta`;
* använd ett andra argument som innehåller material som ska sättas före texten vi anger inom själva miljön.

Så vi har 2 argument:

* det första (argument 1) är valfritt;
* det andra (argument 2) är det inte.

Detta betyder `numarg`=2.

Vi kan använda följande definition av vår uppdaterade `boxed` miljön:

```latex
\newenvironment{boxed}[2][Detta är en ruta]
    {\begin{center}
    Argument 1 (\#1)=#1\\[1ex]
    \begin{tabular}{{{!}}p{0.9\textwidth}{{!}}}
    \hline\\
    Argument 2 (\#2)=#2\\[2ex]
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
```

Denna förbättrade version skiljer sig från originalet på följande sätt:

* \[numarg] finns med och har värdet 2;
* \[optarg\_default] finns också med, vilket gör det första argumentet valfritt med ett standardvärde `Detta är en ruta`.

Följande exempel visar några användningar av vår uppgraderade `boxed` miljön:

```latex
\documentclass{article}
% Observera standardvärdet för det första
% argumentet tillhandahålls av [Detta är en ruta]
\newenvironment{boxed}[2][Detta är en ruta]
    {\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{Exempel 1}: Använd standardvärdet för det första argumentet:

\begin{boxed}{Någon inledande text}
Denna text är \textit{inne i} miljön.
\end{boxed}

Denna text är \textit{utanför} miljön.

\vskip12pt

\textbf{Exempel 2}: Ange ett värde för det första argumentet:

\begin{boxed}[Detta är inte standardvärdet]{Någon mer inledande text}
Denna text är fortfarande \textit{inne i} miljön.
\end{boxed}

Denna text är också \textit{utanför} miljön.
\end{document}
```

[Öppna detta exempel 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)

Det här exemplet ger följande utdata:

![Miljö med en valfri parameter](/files/c17a9852b541252e71f754c51597679dc8ecf25c)

### Numrerade miljöer

Numrerade miljöer kan skapas antingen manuellt eller direkt med kommandot `\newtheorem`, som demonstreras av följande exempel:

```latex
\documentclass{article}
% Definiera vår numrerade miljö i preamblen
\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \noindent \textbf{Exempel~\theexample. #1} \rmfamily}{\medskip}

% En annan numrerad miljö definierad med \newtheorem
\usepackage{amsmath} % För kommandot \newtheorem
\newtheorem{SampleEnv}{Exempelmiljö}[section]
\begin{document}

\section{Användardefinierade numrerade miljöer}

\begin{example}
Första användardefinierade numrerade miljön (nummer \theexample).
\end{example}

\begin{example}
Andra användardefinierade numrerade miljön (nummer \theexample).
\end{example}

\section{Fler användardefinierade numrerade miljöer}
Lägg märke till hur numreringen av exemplen har börjat om från 1:

\begin{example}
Första användardefinierade numrerade miljön (nummer \theexample).
\end{example}

\begin{SampleEnv}
Användardefinierad miljö skapad med kommandot \verb|\newtheorem|.
\end{SampleEnv}
\end{document}
```

[Öppna detta exempel 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)

Det här exemplet ger följande utdata:

![Exempel som visar användardefinierade numrerade miljöer](/files/546258cef659ea49c82660160bc225c5d36603a7)

#### Några anmärkningar

* I den manuellt definierade `exempel` miljön använder kommandot `\newcounter{example}[section]` skapar en räknare, även kallad `exempel`. Paketet `exempel` räknaren är:
  * ökas med 1 genom att använda `\refstepcounter{example}` inom miljödefinitionen;
  * återställs varje gång en ny `\section{...}` påbörjas;
  * en variabel vars aktuella värde kan sättas med `\theexample`. Se [artikeln om räknare](/latex/sv/formatering/10-counters.md) för att läsa mer.
* Kommandot `\newtheorem` skapar direkt en numrerad miljö och tar tre parametrar:
  * namnet på den nya miljön: `SampleEnv` i vårt exempel;
  * texten som ska skrivas i fet stil i början av raden: `Exempelmiljö` i vårt exempel;
  * en valfri parameter som avgör när räknaren återställs; och om den används föregås räknaren av värdet på den återställande räknaren: `section` i vårt exempel.

Den [`amsthm` paketet](https://ctan.org/pkg/amsthm?lang=en), tillsammans med `amsmath`, tillhandahåller användbara extra definitioner tillsammans med `\newtheorem`; se [Satser och bevis](/latex/sv/faltspecifikt/01-theorems-and-proofs.md) för ytterligare detaljer.

## Omdefiniera befintliga miljöer

Miljöer kan omdefinieras med `\renewenvironment` vars syntax är densamma som `\newenvironment`—se avsnittet [Definiera en ny miljö](#defining-a-new-environment) för en förklaring av de olika parametrarna:

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

Nästa exempel omdefinierar `itemize` miljön—detta är bara ett exempel för att illustrera processen, det bör inte användas i ett verkligt dokument. Den nya `itemize` miljön skapar inte längre en punktlista; i stället centrerar och betonar den (kursiverar) texten inom den (med hjälp av `\em` kommandot).

```latex
\documentclass{article}
% Omdefiniera miljön i preamblen
\renewenvironment{itemize}
{\begin{center}\em}
{\end{center}}
\begin{document}

\begin{itemize}
Vi har omdefinierat miljön \texttt{itemize} så att all text
inom den är centrerad och betonas (kursiverad). Den skapar inte längre
en punktlista---detta är bara ett exempel och inte avsett för användning
i riktiga dokument!
\end{itemize}
\end{document}
```

[Öppna detta exempel 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)

Det här exemplet ger följande utdata:

![Exempel med en omdefinierad itemize-miljö](/files/96c6bb4e7b4f756aa5103795db9e2e0f7f8e6e20)

## Vidare läsning

För mer information, se:

* [Kommandon](/latex/sv/kommandon/01-commands.md)
* [Förstå paket och klassfiler](/latex/sv/klassfiler/01-understanding-packages-and-class-files.md)
* [Skriv ditt eget paket](/latex/sv/klassfiler/03-writing-your-own-package.md)
* [Skriv din egen klass](/latex/sv/klassfiler/04-writing-your-own-class.md)
* [Längder i LaTeX](/latex/sv/formatering/01-lengths-in-latex.md)
* [Använda färger i LaTeX](/latex/sv/formatering/13-using-colors-in-latex.md)
* [Sidstorlek och marginaler](/latex/sv/formatering/07-page-size-and-margins.md)
* [Lista över paket och klassfiler](/latex/sv/klassfiler/02-overleaf-and-tex-live.md)
* [Den inte så korta introduktionen till LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Skapa\_paket 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/sv/kommandon/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.
