> 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/cs/prikazy/02-environments.md).

# Prostředí

Prostředí LaTeXu se používají k použití specifických typografických efektů na část obsahu vašeho dokumentu. Tento článek vysvětluje, jak používat existující prostředí a definovat nová.

## Úvod

Prostředí začíná `\begin{name}` a končí na `\end{name}`:

```
\begin{name}
Váš obsah zde...
...patří sem...
\end{name}
```

kde „`název`“ je název používaného prostředí — například v následujícím příkladu s „`center`“ pro formátování (na střed) odstavce textu:

```latex
\documentclass{article}
\begin{document}
\begin{center}
Toto je ukázka prostředí \texttt{center}.
Tento odstavec textu bude \textit{zarovnán na střed}, protože je
obsažen ve speciálním prostředí. Prostředí poskytují
efektivní způsob, jak upravovat bloky textu v dokumentu.
\end{center}
\end{document}
```

[Otevřít tento příklad v Overleafu.](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)

Tento příklad vytvoří následující výstup:

![Obrázek zobrazující zarovnání na střed](/files/08d01cfafd37a55d1ce8b6e9dea2f9c87e4d3fac)

## Prostředí

Následující příklad používá `tabular` prostředí pro sazbu malé tabulky. `tabular` vyžaduje další argument `{ c c c }` který definuje zarovnání buněk — viz [Tabulky](/latex/cs/obrazky-a-tabulky/01-tables.md) článek pro více informací.

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

[Otevřít tento příklad v Overleafu.](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)

Tento příklad vytvoří následující výstup:

![Příklad prostředí tabular](/files/767a82e75d424539be770b21cea64f35b5247751)

Některá prostředí přijímají volitelné argumenty, které se obvykle předávají v hranatých závorkách (`[...]`).

## Definování nového prostředí

Chcete-li definovat nové prostředí, použijte `\newenvironment` příkaz, který má obecný tvar:

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

kde:

* `název` je název tohoto uživatelsky definovaného argumentu;
* `numarg` je počet argumentů, od 1 do 9, které toto prostředí přijímá. Pokud `[numarg]` je vynecháno, prostředí nepřijímá žádné argumenty — například [`boxed` prostředí definované v dalším příkladu](#defining-simple-environments);
* `optarg_default` činí první argument volitelným a poskytuje výchozí hodnotu — tj. hodnotu použitou, pokud není zadána hodnota volitelného argumentu;
* `begin_def` je kód LaTeXu spuštěný při startu prostředí (otevření), tj. když napíšete `\begin{name}`. V tomto kódu můžete použít argumenty přijímané prostředím — všimněte si, že volitelný argument je #1 a zbývající argumenty se přistupují pomocí #2 až #numarg;
* `end_def` je kód LaTeXu spuštěný při ukončení prostředí (uzavření); tj. když napíšete `\end{name}`. V této části kódu nemůžete použít žádný z argumentů.

### Definování jednoduchých prostředí

V tomto prvním příkladu definujeme `boxed` prostředí, které nebere žádné argumenty. Kolem textu uvnitř prostředí nakreslí rámeček:

```latex
\documentclass{article}
%Můžeme definovat prostředí v preambuli
\newenvironment{boxed}
    {\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
%
\begin{document}
Nyní můžeme použít prostředí \texttt{boxed} v našem dokumentu:

\begin{boxed}
Tento text je formátován uvnitř prostředí \texttt{boxed}.
\end{boxed}

Tento text je sazebně umístěn mimo prostředí \texttt{boxed}.
\end{document}
```

[Otevřít tento příklad v Overleafu.](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)

Tento příklad vytvoří následující výstup:

![Ukázka vlastního prostředí LaTeXu](/files/351dc53ab2ad7d85b41f0d99a6fad62a0288a893)

Když porovnáme naši definici `boxed` s obecným tvarem `\newenvironment` vidíme:

* `název` je `boxed`;
* ani `[numarg]` nebo `[optarg_default]` nejsou uvedeny, protože toto prostředí nebere žádné argumenty;
* `begin_def` je kód LaTeXu — uvedený mezi dvojicí složených závorek `{...}`— který se spustí, když prostředí *začíná* (otevírá se):

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

* `end_def` je kód LaTeXu — uvedený mezi dvojicí složených závorek `{...}`— který se spustí, když prostředí *končí* (uzavírá se):

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

V příkladu, `begin_def` začíná `center` prostředí a v něm se otevře `tabular` prostředí, aby se kolem textu, který vložíme do prostředí, nakreslily svislé čáry a vodorovná čára. `end_def` nakreslí další vodorovnou čáru a poté uzavře `tabular` a `center` prostředí.

### Definování prostředí, která přijímají argumenty

Pojďme předchozí příklad rozšířit takto:

* použít volitelný argument k sazbě názvu. Pokud název není zadán, použijte výchozí hodnotu `To je rámeček`;
* použít druhý argument, který obsahuje materiál k sazbě před textem, který zadáme přímo v prostředí.

Takže máme 2 argumenty:

* první (argument 1) je volitelný;
* druhý (argument 2) není.

To znamená `numarg`=2.

Můžeme použít následující definici našeho upraveného `boxed` prostředí:

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

Tato rozšířená verze se od původní liší takto:

* \[numarg] je přítomen a má hodnotu 2;
* \[optarg\_default] je také přítomen, takže první argument je volitelný s výchozí hodnotou `To je rámeček`.

Následující příklad ukazuje některá použití našeho vylepšeného `boxed` prostředí:

```latex
\documentclass{article}
% Všimněte si výchozí hodnoty pro první
% argument je zadán pomocí [To je rámeček]
\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{Příklad 1}: Použijte výchozí hodnotu pro první argument:

\begin{boxed}{Nějaký úvodní text}
Tento text je \textit{uvnitř} prostředí.
\end{boxed}

Tento text je \textit{mimo} prostředí.

\vskip12pt

\textbf{Příklad 2}: Zadejte hodnotu pro první argument:

\begin{boxed}[To není výchozí hodnota]{Ještě nějaký úvodní text}
Tento text je stále \textit{uvnitř} prostředí.
\end{boxed}

Tento text je také \textit{mimo} prostředí.
\end{document}
```

[Otevřít tento příklad v Overleafu.](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)

Tento příklad vytvoří následující výstup:

![Prostředí s volitelným parametrem](/files/a2ee7513a26ec6618da78d2bc7f34179c3ed863e)

### Číslovaná prostředí

Číslovaná prostředí lze vytvořit buď ručně, nebo přímo pomocí příkazu `\newtheorem`, jak ukazuje následující příklad:

```latex
\documentclass{article}
% Definujeme naše číslované prostředí v preambuli
\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \noindent \textbf{Example~\theexample. #1} \rmfamily}{\medskip}

% Další číslované prostředí definované pomocí \newtheorem
\usepackage{amsmath} % Pro příkaz \newtheorem
\newtheorem{SampleEnv}{Ukázkové prostředí}[section]
\begin{document}

\section{Uživatelsky definovaná číslovaná prostředí}

\begin{example}
První uživatelsky definované číslované prostředí (číslo \theexample).
\end{example}

\begin{example}
Druhé uživatelsky definované číslované prostředí (číslo \theexample).
\end{example}

\section{Další uživatelsky definovaná číslovaná prostředí}
Všimněte si, že číslování příkladů se znovu spustilo od 1:

\begin{example}
První uživatelsky definované číslované prostředí (číslo \theexample).
\end{example}

\begin{SampleEnv}
Uživatelsky definované prostředí vytvořené pomocí příkazu \verb|\newtheorem|.
\end{SampleEnv}
\end{document}
```

[Otevřete tento příklad v Overleafu](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)

Tento příklad vytvoří následující výstup:

![Příklad ukazující uživatelsky definovaná číslovaná prostředí](/files/35b0e5bbc01b3770fe08e0cb81a20eae13cc1373)

#### Některé poznámky

* V ručně definovaném `příkladu` prostředí příkaz `\newcounter{example}[section]` vytváří čítač, nazývaný také `příkladu`. Balíček `příkladu` čítač je:
  * zvyšuje se o 1 pomocí `\refstepcounter{example}` uvnitř definice prostředí;
  * resetuje se pokaždé, když se spustí nová `\section{...}` je spuštěna;
  * proměnná, jejíž aktuální hodnotu lze sázet pomocí `\theexample`. Viz [článek o čítačích](/latex/cs/formatovani/10-counters.md) pro více informací.
* Příkaz `\newtheorem` přímo vytvoří číslované prostředí a bere tři parametry:
  * název nového prostředí: `SampleEnv` v našem příkladu;
  * text, který se má na začátku řádku vytisknout tučně: `Ukázkové prostředí` v našem příkladu;
  * volitelný parametr, který určuje, kdy se čítač resetuje; a pokud se použije, před čítačem se zobrazí hodnota tohoto resetovacího čítače: `section` v našem příkladu.

Ta [`amsthm` accents](https://ctan.org/pkg/amsthm?lang=en), spolu s `amsmath`, poskytují užitečné dodatečné definice vedle `\newtheorem`; viz [Věty a důkazy](/latex/cs/pro-konkretni-obor/01-theorems-and-proofs.md) pro další podrobnosti.

## Předefinování existujících prostředí

Prostředí lze předefinovat pomocí `\renewenvironment` jejíž syntaxe je stejná jako u `\newenvironment`—viz sekce [Definování nového prostředí](#defining-a-new-environment) pro vysvětlení různých parametrů:

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

Další příklad předefinuje `itemize` prostředí — toto je pouze příklad k ilustraci postupu; v reálném dokumentu by se neměl používat. Nové `itemize` prostředí již nevytváří odrážkový seznam; místo toho zarovnává text na střed a zvýrazňuje ho (kurzívou) v něm (pomocí `\em` příkazu).

```latex
\documentclass{article}
% Předefinujte prostředí v preambuli
\renewenvironment{itemize}
{\begin{center}\em}
{\end{center}}
\begin{document}

\begin{itemize}
Předefinovali jsme prostředí \texttt{itemize} tak, aby se jakýkoli text
uvnitř něj zarovnal na střed a zvýraznil (kurzívou). Už nevytváří
odrážkový seznam — toto je pouze příklad a není určen pro použití
v reálných dokumentech!
\end{itemize}
\end{document}
```

[Otevřít tento příklad v Overleafu.](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)

Tento příklad vytvoří následující výstup:

![Příklad s předefinovaným prostředím itemize](/files/712b42b330da45517a17addfdf32e4c5ff8ea180)

## Další čtení

Více informací viz:

* [Příkazy](/latex/cs/prikazy/01-commands.md)
* [Porozumění balíčkům a souborům tříd](/latex/cs/tridni-soubory/01-understanding-packages-and-class-files.md)
* [Psaní vlastního balíčku](/latex/cs/tridni-soubory/03-writing-your-own-package.md)
* [Psaní vlastní třídy](/latex/cs/tridni-soubory/04-writing-your-own-class.md)
* [Délky v LaTeXu](/latex/cs/formatovani/01-lengths-in-latex.md)
* [Používání barev v LaTeXu](/latex/cs/formatovani/13-using-colors-in-latex.md)
* [Velikost stránky a okraje](/latex/cs/formatovani/07-page-size-and-margins.md)
* [Seznam balíčků a souborů tříd](/latex/cs/tridni-soubory/02-overleaf-and-tex-live.md)
* [Ne zcela krátký úvod do LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Vytváření balíčků na 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/cs/prikazy/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.
