> 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/pl/podstawy-latex-a/04-lists.md).

# Listy

## Trzy sposoby wstawiania list w Overleaf

Overleaf udostępnia 3 sposoby tworzenia list za pomocą LaTeX-a:

1. Użyj **Wstaw listę punktowaną** (![Image of the menu icon for insert a bulleted list in Overleaf](/files/c08ead097da5f0ac1c92caf2a5b45199f61d84f2)) lub **Wstaw listę numerowaną** (![Image of the menu icon for insert a numbered list in Overleaf](/files/314b1980e07c92f66a2c064aabf18898895ed104)) na pasku narzędzi edytora, aby wstawić listy do **Edytora wizualnego** lub **Edytora kodu**.
2. [Wklej sformatowaną listę do **Edytora wizualnego**](/latex/pl/baza-wiedzy/075-how-to-paste-formatted-content-into-overleaf.md#pasteformattedlist).
3. Napisz własny kod LaTeX, używając **Edytora kodu**.

Opcje 1 i 2 zostały zaprojektowane tak, aby automatycznie generować kod LaTeX niezbędny do składu list. Jednak dla tych, którzy chcą pisać własny kod LaTeX, opcja 3 może być preferowanym wyborem. Oferuje ona największą elastyczność i jest głównym tematem tego artykułu.

## Wstęp

Ten artykuł stanowi wprowadzenie do składu typograficznego i dostosowywania różnych typów list w LaTeX-u:

* stronie `itemize` środowisko do tworzenia listy punktowanej (nieuporządkowanej)
* stronie `enumerate` środowisko do tworzenia listy numerowanej (uporządkowanej)
* stronie `opis` środowisko do tworzenia listy opisów

Składanie list to rozległy temat, ponieważ listy LaTeX-a są *skrajnie* konfigurowalne, co umożliwia tworzenie ogromnej różnorodności typów i struktur list. Omówimy i pokażemy kilka metod, których możesz użyć, aby [konfigurować i dostosowywać swoje listy](#customizing-lists).

## Przykłady podstawowych list

### Środowisko itemize dla list punktowanych (nieuporządkowanych)

Listy nieuporządkowane (punktowane) tworzy się za pomocą `itemize` środowiska, w którym każdy wpis na liście zaczyna się od użycia `\item` polecenia, które generuje również symbol punktu.

```latex
Listy są łatwe do utworzenia:
\begin{itemize}
  \item Wpisy listy zaczynają się od polecenia \verb|\item|.
  \item Poszczególne wpisy są oznaczane czarną kropką, tzw. punktor.
  \item Tekst wpisów może mieć dowolną długość.
\end{itemize}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+unordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ALists+are+easy+to+create%3A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+List+entries+start+with+the+%5Cverb%7C%5Citem%7C+command.%0A++%5Citem+Individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet.%0A++%5Citem+The+text+in+the+entries+may+be+of+any+length.%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![List1bOLV2.png](/files/c9ed9e6498d48eb7f3186ee47c6210f523663efa)

### Środowisko enumerate dla list numerowanych (uporządkowanych)

Listy numerowane (uporządkowane) mają tę samą składnię, ale używają `enumerate` środowiska: każdy wpis musi być poprzedzony sekwencją sterującą `\item`, która automatycznie wygeneruje numery do oznaczania elementu. Numery te zaczynają się od 1 przy każdym użyciu `enumerate` środowiska — należy zauważyć, że to domyślne zachowanie numerowania w LaTeX-u można zmieniać/kontrolować za pomocą [`enumitem` pakietu](https://ctan.org/pkg/enumitem).

```latex
Listy numerowane (uporządkowane) są łatwe do utworzenia:
\begin{enumerate}
  \item Elementy są numerowane automatycznie.
  \item Numery zaczynają się od 1 przy każdym użyciu środowiska \texttt{enumerate}.
  \item Kolejny wpis na liście
\end{enumerate}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ANumbered+%28ordered%29+lists+are+easy+to+create%3A%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+Items+are+numbered+automatically.%0A++%5Citem+The+numbers+start+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment.%0A++%5Citem+Another+entry+in+the+list%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![List2OLV2.png](/files/85d80330f89e064062d779a089c902d84b484949)

### Środowisko description

Poniższy przykład demonstruje `opis` środowiska. (Opcjonalna) etykieta dla każdego wpisu jest umieszczana w nawiasach kwadratowych po `\item` polecenia:

```latex
\item[tekst etykiety] Tutaj wpisz tekst opisu...
```

Używamy także `blindtext` pakietu do generowania przykładowego tekstu angielskiego w trzecim wpisie. Aby uzyskać angielski, musimy użyć `babel` pakietu z opcją językową `[english]`:

```latex
\usepackage[english]{babel}
```

Oto przykład:

```latex
\documentclass{article}
\usepackage[english]{babel} % Aby uzyskać tekst angielski za pomocą pakietu blindtext
\usepackage{blindtext}
\begin{document}

\begin{description}
   \item To jest wpis \textit{bez} etykiety.
   \item[Coś krótkiego] Krótki opis w jednej linii.
   \item[Coś długiego] Dużo dłuższy opis. \blindtext[1]
\end{description}
\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+description+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Benglish%5D%7Bbabel%7D+%25+To+obtain+English+text+with+the+blindtext+package%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bdescription%7D%0A+++%5Citem+This+is+an+entry+%5Ctextit%7Bwithout%7D+a+label.%0A+++%5Citem%5BSomething+short%5D+A+short+one-line+description.%0A+++%5Citem%5BSomething+long%5D+A+much+longer+description.+%5Cblindtext%5B1%5D%0A%5Cend%7Bdescription%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Descriptionlist2.png](/files/210690bde51fcc766755ebbce4adfbd5a3d10912)

## Zmiana etykiety poszczególnych wpisów

Jak pokazano w `opis` przykładzie środowiska, `\item` polecenie przyjmuje opcjonalny parametr, w nawiasach kwadratowych. Możesz użyć tej funkcji w `itemize` i `enumerate` środowiskach, aby zmienić domyślną etykietę poszczególnych wpisów na liście:

```latex
\item[tekst etykiety] Tutaj wpisz tekst swojego wpisu...
```

Ta `tekst etykiety` będzie użyty do wygenerowania etykiety dla tego wpisu.

```latex
Zmiana etykiet za pomocą \verb|\item[label text]| w środowisku \texttt{itemize}
\begin{itemize}
  \item To mój pierwszy punkt
  \item Inny punkt, który chcę podkreślić
  \item[!] Punkt, by coś wykrzyknąć!
  \item[$\blacksquare$] Postaw sprawę uczciwie i bez ogródek.
  \item[UWAGA] Ten wpis nie ma punktora
  \item[] Pusta etykieta?
\end{itemize}

\vspace{10pt}

Zmiana etykiet za pomocą \verb|\item[label text]| w środowisku \texttt{enumerate}
\begin{enumerate}
  \item To mój pierwszy punkt
  \item Inny punkt, który chcę podkreślić
  \item[!] Punkt, by coś wykrzyknąć!
  \item[$\blacksquare$] Postaw sprawę uczciwie i bez ogródek.
  \item[UWAGA] Ten wpis nie ma punktora
  \item[] Pusta etykieta?
\end{enumerate}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+list+labels\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%25+to+access+%24%5Cblacksquare%24%0A%5Cbegin%7Bdocument%7D%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Bitemize%7D+environment%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Bitemize%7D%0A%0A%5Cvspace%7B10pt%7D%0A%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Benumerate%7D+environment%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![ChangeBullets.png](/files/453bd5c721cadce03567d66d078105002d1bc511)

## Listy zagnieżdżone

W LaTeX-u możesz wstawić listę wewnątrz innej listy. Powyższe typy list mogą być zagnieżdżane jedne w drugich, zarówno mieszane, jak i jednego typu, do głębokości 4 poziomów.

```latex
\begin{enumerate}
   \item Etykiety składają się z kolejnych numerów
   \begin{itemize}
     \item Poszczególne wpisy są oznaczane czarną kropką, tzw. punktor.
     \item Tekst wpisów może mieć dowolną długość
     \begin{description}
     \item[Uwaga:] Chciałbym tutaj coś opisać
     \item[Uwaga!] A tutaj dać ostrzeżenie
     \end{description}
   \end{itemize}
   \item Numery zaczynają się od 1 przy każdym użyciu środowiska \texttt{enumerate}
\end{enumerate}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+The+labels+consists+of+sequential+numbers%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+The+individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet%0A+++++%5Citem+The+text+in+the+entries+may+be+of+any+length%0A+++++%5Cbegin%7Bdescription%7D%0A+++++%5Citem%5BNote%3A%5D+I+would+like+to+describe+something+here%0A+++++%5Citem%5BCaveat%21%5D+And+give+a+warning+here%0A+++++%5Cend%7Bdescription%7D%0A+++%5Cend%7Bitemize%7D%0A+++%5Citem+The+numbers+starts+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![List3bOLV2.png](/files/8ba2d5ae9e2666080e64759144df723871221a21)

### Listy zagnieżdżone: styl etykiet

Styl etykiet wpisów w listach zagnieżdżonych zmienia się zgodnie z ich głębokością na liście. W przypadku zagnieżdżonych `itemize` list typ punktorów się zmienia; w `enumerate` listach format numerów zmienia się wraz ze wzrostem głębokości wpisu. Oba są ograniczone do głębokości 4 poziomów.

#### Listy enumerate zagnieżdżone: format numerów

```latex
\begin{enumerate}
   \item Element pierwszego poziomu
   \item Element pierwszego poziomu
   \begin{enumerate}
     \item Element drugiego poziomu
     \item Element drugiego poziomu
     \begin{enumerate}
       \item Element trzeciego poziomu
       \item Element trzeciego poziomu
       \begin{enumerate}
         \item Element czwartego poziomu
         \item Element czwartego poziomu
       \end{enumerate}
     \end{enumerate}
   \end{enumerate}
 \end{enumerate}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Benumerate%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Benumerate%7D%0A+++++%5Cend%7Benumerate%7D%0A+++%5Cend%7Benumerate%7D%0A+%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![List4OLV2.png](/files/17cf56b73111e55231941545193b3a0c6885d741)

#### Listy itemize zagnieżdżone: styl punktorów

Styl punktorów zmienia się zależnie od głębokości zagnieżdżonych list:

```latex
\begin{itemize}
   \item Element pierwszego poziomu
   \item Element pierwszego poziomu
   \begin{itemize}
     \item Element drugiego poziomu
     \item Element drugiego poziomu
     \begin{itemize}
       \item Element trzeciego poziomu
       \item Element trzeciego poziomu
       \begin{itemize}
         \item Element czwartego poziomu
         \item Element czwartego poziomu
       \end{itemize}
     \end{itemize}
   \end{itemize}
 \end{itemize}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bitemize%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Bitemize%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Bitemize%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Bitemize%7D%0A+++++%5Cend%7Bitemize%7D%0A+++%5Cend%7Bitemize%7D%0A+%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![List5OLV2.png](/files/71fc0d639ebdc51aadc0fdece98f162ea366f9b8)

## Dostosowywanie list

Listy LaTeX-a są *bardzo* konfigurowalne, co daje duże możliwości tworzenia wielu różnych typów dostosowanych list. Możesz albo wprowadzić bezpośrednie modyfikacje standardowych typów list LaTeX-a, albo, *najlepiej*, użyć niezwykle wszechstronnego [pakietu enumitem](https://ctan.org/pkg/enumitem) do wykonania tego za Ciebie.

CTAN hostuje wiele [pakietów związanych z listami](https://ctan.org/topic/list) które mogą być warte sprawdzenia, jeśli masz szczególne wymagania dotyczące dostosowania. Ponadto tex.stackexchange oferuje bogactwo [pytań dotyczących list](https://tex.stackexchange.com/questions/tagged/lists) z odpowiedziami, które dostarczają przydatnych wskazówek i świetnych przykładów!

Zaczniemy od kilku przykładów modyfikujących etykiety list, a następnie przejdziemy do dostosowywania układu list.

### Dostosowywanie list: zmiana etykiet

Najpierw pokażemy, jak zmieniać oznaczenia list bez używania [pakietu enumitem](https://ctan.org/pkg/enumitem).

#### Standardowe polecenia generowania etykiet

Własne listy można tworzyć, używając [enumitem](https://ctan.org/pkg/enumitem) pakietu lub bezpośredniej modyfikacji standardowych list. Tutaj podamy podsumowanie niektórych standardowych poleceń LaTeX-a, zmiennych licznikowych i parametrów list, których możesz potrzebować.

Poniższa tabela pokazuje polecenia LaTeX-a używane do generowania etykiet na każdym poziomie `itemize` i `enumerate` środowisk list:

|            |                                   |                                 |
| ---------- | --------------------------------- | ------------------------------- |
| **Poziom** | **`enumerate`** polecenia etykiet | **`itemize`** polecenia etykiet |
| Poziom 1   | `\labelenumi`                     | `\labelitemi`                   |
| Poziom 2   | `\labelenumii`                    | `\labelitemii`                  |
| Poziom 3   | `\labelenumiii`                   | `\labelitemiii`                 |
| Poziom 4   | `\labelenumiv`                    | `\labelitemiv`                  |

#### Zmienne licznikowe dla enumerate

Ta `enumerate` środowisko list również używa czterech *licznika* zmiennych, które śledzą bieżącą wartość etykiety dla każdego poziomu:

|            |                                    |
| ---------- | ---------------------------------- |
| **Poziom** | **`enumerate`** zmienna licznikowa |
| Poziom 1   | `enumi`                            |
| Poziom 2   | `enumii`                           |
| Poziom 3   | `enumiii`                          |
| Poziom 4   | `enumiv`                           |

#### Przykłady: dostosowywanie etykiet list enumerate

Możesz skonfigurować standardowe oznaczenia LaTeX-a, używając `\renewcommand` do redefiniowania poleceń generujących etykiety, a w przypadku `enumerate` środowiska możesz także użyć odpowiedniej zmiennej licznikowej.

Oto kilka przykładów, które robią to bez użycia `enumitem` pakiet.

**Praktyczny przykład**

```latex
\documentclass{article}
\begin{document}
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}}
\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}}
\renewcommand{\labelenumiv}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.\arabic{enumiv}}

\begin{enumerate}
\item Jeden
\item Dwa
\item Trzy
\begin{enumerate}
    \item Trzy punkt jeden
    \begin{enumerate}
    \item Trzy punkt jeden, punkt jeden
        \begin{enumerate}
        \item Trzy punkt jeden, punkt jeden, punkt jeden
        \item Trzy punkt jeden, punkt jeden, punkt dwa
        \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item Cztery
\item Pięć
\end{enumerate}

\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D.%5Carabic%7Benumiv%7D%7D%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%2C+point+one%0A++++++++%5Cbegin%7Benumerate%7D%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+one%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+two%0A++++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Four%0A%5Citem+Five%0A%5Cend%7Benumerate%7D%0A%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![List9OLV2.png](/files/8f02006fe10a22a338b111cbf630b0de1430751d)

**Wypisywanie zmiennych licznikowych**

W poprzednim przykładzie użyto polecenia `\arabic` do składu typograficznego bieżącej wartości różnych *zmiennych licznikowych*. Zwróć uwagę, że „cyfry arabskie” i użycie polecenia `\arabic`, odnoszą się do cyfr od 0 do 9: zobacz ten [artykuł o cyfrach arabskich w Wikipedii](https://en.wikipedia.org/wiki/Arabic_numerals) aby uzyskać więcej informacji.

Ogólnie rzecz biorąc, *zmienna licznikowa* można przedstawić w różnych formatach, używając jednego z następujących 5 poleceń:

* `\arabic{*counter variable*}`
* `\roman{*counter variable*}`
* `\Roman{*counter variable*}`
* `\Alph{*counter variable*}`
* `\alph{*counter variable*}`

Na przykład:

```latex
\documentclass{article}
\begin{document}
\begin{verbatim}
\newcounter{foo}
\setcounter{foo}{5}
\end{verbatim}
\newcounter{foo}
\setcounter{foo}{5}

\begin{itemize}
\item \verb|\arabic{foo}| daje \arabic{foo}
\item \verb|\roman{foo}| daje \roman{foo}
\item \verb|\Roman{foo}| daje \Roman{foo}
\item \verb|\Alph{foo}| daje \Alph{foo}
\item \verb|\alph{foo}| daje \alph{foo}
\end{itemize}

\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D++++%0A%5Cend%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D+%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Carabic%7Bfoo%7D%7C+produces+%5Carabic%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Croman%7Bfoo%7D%7C+produces+%5Croman%7Bfoo%7D+%0A%5Citem+%5Cverb%7C%5CRoman%7Bfoo%7D%7C+produces+%5CRoman%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5CAlph%7Bfoo%7D%7C+produces+%5CAlph%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Calph%7Bfoo%7D%7C+produces+%5Calph%7Bfoo%7D%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![List8OLV2.png](/files/4df7e4020ca8ee0c0d300024ccdf5ddf4c02e07f)

**Niepraktyczny (dla zabawy) przykład**

Ten przykład składa emoji przy użyciu kolorowej czcionki OpenType, więc *będzie działał tylko w LuaLaTeX-u*. Zobacz artykuł Overleaf [Przegląd technologii wspierających użycie kolorowych czcionek emoji w LaTeX-u](/latex/pl/artykuly-szczegolowe/10-an-overview-of-technologies-supporting-the-use-of-colour-emoji-fonts-in-latex.md) aby uzyskać więcej informacji o składzie emoji.

Chociaż to tylko zabawny przykład, wykorzystujący LuaLaTeX, pokazuje on dostosowywanie wszystkich czterech poleceń generujących etykiety oraz używanie zmiennych etykiet i liczników do tworzenia nietypowych oznaczeń... Kliknij link „Otwórz w Overleaf”, aby zobaczyć pełny kod.

```latex
\renewcommand{\labelenumi}{\duck{enumi}}
\renewcommand{\labelenumii}{\duck{enumi}.\duckegg{enumii}}
\renewcommand{\labelenumiii}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}}
\renewcommand{\labelenumiv}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}.\duckchick{enumiv}}

\begin{enumerate}
\item Kaczka
\item Więcej kaczek
\item Mrowie kaczek
\begin{enumerate}
    \item Kaczki i jajka
    \begin{enumerate}
    \item Czy widzę...
    \item Kaczki i przedkaczki
       \begin{enumerate}
       \item Ojej...
       \item Takie słodkie!
       \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item Z powrotem do kaczek
\item Jeszcze raz
\end{enumerate}
```

[Aby zobaczyć ***pełny kod***, otwórz ten przykład LuaLaTeX w Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Fun+example+of+configuring+a+list\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewfontfamily%5Cemojifont%5BRenderer%3DHarfbuzz%2CSizeFeatures%3D%7BSize%3D6%7D%5D%7BNotoColorEmoji.ttf%7D%0A%0A%5Cnewcount%5Cduckcount%0A%5Cnewcount%5Ceggcount%0A%5Cnewcount%5Cchickcount%0A%0A%5Cdef%5Cduck%231%7B%25%0A%5Cduckcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F986%7D%25%0A%5Cadvance%5Cduckcount+by+-1%0A%5Cunless%5Cifnum%5Cduckcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckegg%231%7B%25%0A%5Ceggcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F95A%7D%25%0A%5Cadvance%5Ceggcount+by+-1%0A%5Cunless%5Cifnum%5Ceggcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckchick%231%7B%25%0A%5Cchickcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F424%7D%25%0A%5Cadvance%5Cchickcount+by+-1%0A%5Cunless%5Cifnum%5Cchickcount%3D0+%0A%5Crepeat%7D%0A%5Crenewcommand%7B%5Clabelenumi%7D%7B%5Cduck%7Benumi%7D%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D.%5Cduckchick%7Benumiv%7D%7D+%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+A+duck%0A%5Citem+More+ducks%0A%5Citem+A+flurry+of+ducks%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Ducks+and+eggs%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Do+I+see...+%0A++++%5Citem+Ducks+and+pre-ducks+%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Awww...%0A+++++++%5Citem+So+cute%21%0A+++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Back+to+ducks%0A%5Citem+Again%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik

![Ducklist.png](/files/079c5bd6dc41986273dd28f3a4b50f49f76f55c6)

### Dostosowywanie list: zmiana układu

Oprócz dostosowywania etykiet możliwa jest modyfikacja odstępów i układu list, ale najpierw musimy poznać różne parametry LaTeX-a, które określają skład typograficzny i układ list.

#### Parametry list LaTeX-a

Możesz użyć [pakiet layouts](https://ctan.org/pkg/layouts?lang=en) do wygenerowania diagramu pokazującego parametry list LaTeX-a:

```latex
\documentclass{article}
\usepackage{layouts}
\begin{document}
\begin{figure}
\listdiagram
\caption{Parametry \LaTeX{}, które definiują skład typograficzny i układ list.}
\end{figure}
\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+layout+package+to+view+list+structures\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Blayouts%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfigure%7D%0A%5Clistdiagram%0A%5Ccaption%7BThe+%5CLaTeX%7B%7D+parameters+which+define+typesetting+and+layout+of+lists.%7D+%0A%5Cend%7Bfigure%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![](/files/9abd6f1bbf7fe093c476867d69299c96522cdaab)

Znaczenie tych parametrów opisano w [sekcji o listach nieoficjalnego podręcznika referencyjnego LaTeX2e](https://tug.org/texinfohtml/latex2e.html#list) więc nie będziemy go tutaj odtwarzać.

#### Tworzenie niestandardowej listy za pomocą środowiska list

LaTeX udostępnia ogólne `środowisko list` środowisko, które zapewnia ramy do tworzenia własnego typu(ów) listy. Korzystając z informacji zawartych w diagramie powyżej, poniższy przykład jest nieco zmodyfikowaną wersją przykładu zawartego w [sekcji o listach](https://tug.org/texinfohtml/latex2e.html#list) środowisku [Nieoficjalny podręcznik referencyjny LaTeX2e](https://tug.org/texinfohtml/latex2e.html)

```latex
\documentclass{article}
\begin{document}
\newcounter{boxlblcounter}
\newcommand{\makeboxlabel}[1]{\fbox{#1.}\hfill}% \hfill wypełnia pole etykiety
\newenvironment{boxlabel}
  {\begin{list}
    {\arabic{boxlblcounter}}
    {\usecounter{boxlblcounter}
     \setlength{\labelwidth}{3em}
     \setlength{\labelsep}{0em}
     \setlength{\itemsep}{2pt}
     \setlength{\leftmargin}{1.5cm}
     \setlength{\rightmargin}{2cm}
     \setlength{\itemindent}{0em}
     \let\makelabel=\makeboxlabel
    }
  }
{\end{list}}

\newcommand{\randomtext}{Witaj, tutaj jest trochę tekstu bez znaczenia. Witaj, tutaj jest trochę tekstu bez znaczenia. Witaj, tutaj jest trochę tekstu bez znaczenia.}

\noindent\randomtext

\begin{boxlabel}
\item \randomtext
\item \randomtext
\item \randomtext
\end{boxlabel}
\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+list+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcounter%7Bboxlblcounter%7D++%0A%5Cnewcommand%7B%5Cmakeboxlabel%7D%5B1%5D%7B%5Cfbox%7B%231.%7D%5Chfill%7D%25+%5Chfill+fills+the+label+box%0A%5Cnewenvironment%7Bboxlabel%7D%0A++%7B%5Cbegin%7Blist%7D%0A++++%7B%5Carabic%7Bboxlblcounter%7D%7D%0A++++%7B%5Cusecounter%7Bboxlblcounter%7D%0A+++++%5Csetlength%7B%5Clabelwidth%7D%7B3em%7D%0A+++++%5Csetlength%7B%5Clabelsep%7D%7B0em%7D%0A+++++%5Csetlength%7B%5Citemsep%7D%7B2pt%7D%0A+++++%5Csetlength%7B%5Cleftmargin%7D%7B1.5cm%7D%0A+++++%5Csetlength%7B%5Crightmargin%7D%7B2cm%7D%0A+++++%5Csetlength%7B%5Citemindent%7D%7B0em%7D+%0A+++++%5Clet%5Cmakelabel%3D%5Cmakeboxlabel%0A++++%7D%0A++%7D%0A%7B%5Cend%7Blist%7D%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnoindent%5Crandomtext%0A%0A%5Cbegin%7Bboxlabel%7D%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Cend%7Bboxlabel%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Listenvironmemt2.png](/files/587864f149c702d21285e2c043aadd9e2570b521)

### Używanie pakietu enumitem do modyfikowania i tworzenia list

Ta [`enumitem` pakietu](https://ctan.org/pkg/enumitem?lang=en) jest zalecaną metodą modyfikowania standardowych list LaTeX-a lub tworzenia własnych, niestandardowych formatów list. `enumitem` oferuje *mnóstwo* funkcji, więc nie możemy omówić ich wszystkich, ale możemy podać kilka podstawowych przykładów, aby pomóc Ci zacząć. Każdemu, kto chce zgłębić ten wszechstronny pakiet bardziej szczegółowo, zdecydowanie *jest zdecydowanie* zalecane przeszukanie tex.stackexchange w poszukiwaniu [pytań, odpowiedzi (i przykładów) dotyczących `enumitem` pakietu](https://tex.stackexchange.com/questions/tagged/enumitem), oraz przeczytanie [dokumentacja pakietu](http://mirrors.ctan.org/macros/latex/contrib/enumitem/enumitem.pdf).

#### opcji pakietu enumitem shortlabels

Ta `enumitem` udostępnia opcjonalny parametr konfiguracji o nazwie `shortlabels` którego używasz za pomocą

```latex
\usepackage[shortlabels]{enumitem}
```

Ta `shortlabels` opcja naśladuje zachowanie `enumerate` pakietu, zapewniając zwięzłą metodę definiowania schematu numeracji środowisk enumerate. Zobacz [`enumerate` dokumentacja pakietu](https://ctan.org/pkg/enumerate?lang=en) w celu uzyskania dalszych informacji.

#### Modyfikowanie standardowej listy

W odniesieniu do [diagramu parametrów LaTeX-a](#latex-list-parameters) możemy użyć `enumitem` aby łatwo dostosować standardową listę LaTeX-a, taką jak `itemize`:

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newcommand{\randomtext}{Witaj, tutaj jest trochę tekstu bez znaczenia. Witaj, tutaj jest trochę tekstu bez znaczenia.}

\section*{Korzystanie z domyślnych ustawień LaTeX-a dla \texttt{itemize}}

\randomtext

\begin{itemize}
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\section*{Korzystanie z własnego \texttt{itemize} za pomocą \texttt{enumitem}}

\subsection*{Zwróć uwagę na wpływ ustawień lewego i prawego marginesu}

\randomtext

\begin{itemize}[leftmargin=30pt, rightmargin=2cm]
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\end{document}
```

[Otwórz ten `enumitem` przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Modifying+a+LaTeX+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Csection%2A%7BUsing+LaTeX%27s+default+settings+for+%5Ctexttt%7Bitemize%7D%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Csection%2A%7BUsing+a+custom+%5Ctexttt%7Bitemize%7D+via+%5Ctexttt%7Benumitem%7D%7D%0A%0A%5Csubsection%2A%7BNote+the+effect+of+left+and+right+margin+settings%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%5Bleftmargin%3D30pt%2C+rightmargin%3D2cm%5D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Tweakitemize2.png](/files/2b36a5a7c4166ca45986a443b607a828880968ba)

#### Tworzenie nowej listy za pomocą enumitem

Aby utworzyć nowy typ listy z `enumitem` używa się `\newlist` polecenia, które wymaga 3 argumentów:

```latex
\newlist{name}{list-type}{max-depth}
```

* **`nazwa`**: nazwa Twojej listy, używana jako środowisko:

  ```
  \begin{name}
  ...
  \end{name}
  ```
* **`list-type`** musi to być jeden ze standardowych typów list LaTeX-a:
* `enumerate`
* `itemize`
* `opis`
* **`max-depth`**: maksymalna głębokość zagnieżdżenia tej listy. **UWAGA** dla list przekraczających domyślny limit zagnieżdżenia LaTeX-a wynoszący 4 musisz także wydać polecenie `\setlistdepth{*integer*}` gdzie `*integer*` to maksymalna głębokość zagnieżdżenia, której zamierzasz używać. Zobacz [przykład Lista dla prawników](#lists-for-lawyers-nesting-lists-to-an-arbitrary-depth) aby zobaczyć demonstrację.

Po utworzeniu nowej listy możesz ją skonfigurować za pomocą `\setlist` polecenie.

**Używanie \setlist do konfiguracji własnej listy utworzonej za pomocą enumitem**

W tym przykładzie utworzymy nową listę o nazwie `myitems` która jest oparta na `enumerate`. Ustawimy [`**max-depth**`](#maxdepth) na 3:

```latex
\newlist{myitems}{enumerate}{3}
```

Minimalnym wymaganiem jest użycie polecenia `\setlist` do zdefiniowania etykiet dla tej niestandardowej listy. Jednym ze sposobów, aby to zrobić dla list opartych na enumerate, jest użycie zmiennych licznikowych utworzonych przez `enumitem` pakiet — te zmienne licznikowe używają `**nazwa**` twojej listy: `myitems` w naszym przykładzie.

Oto jak używamy odpowiadających im zmiennych licznikowych w naszej konfiguracji etykiet:

* `myitems**i**` dla wpisów poziomu 1
* `myitems**ii**` dla wpisów poziomu 2
* `myitems**iii**` dla wpisów poziomu 3

Gdybyśmy mieli więcej niż 3 poziomy, odpowiednie zmienne licznikowe nazywałyby się `myitems**iv**` (poziom 4), `myitems**v**` (poziom 5) i tak dalej, kontynuując użycie małych cyfr rzymskich.

Oprócz etykiet ustawimy też pewne wartości dla `leftmargin` i `rightmargin` (zobacz [diagramu parametrów LaTeX-a](#latex-list-parameters)).

```latex
\documentclass{article}
\usepackage{enumitem}
\begin{document}

\newcommand{\randomtext}{Witaj, tutaj jest trochę tekstu bez znaczenia. Witaj, tutaj jest trochę tekstu bez znaczenia.}

\newcommand{\shortrandomtext}{Hello, tutaj jest trochę tekstu.}
% Utwórz własną listę opartą na enumerate
% Nazywa się „myitems”
% Utworzymy listę zagnieżdżoną na 3 poziomach
\newlist{myitems}{enumerate}{3}

% Skonfiguruj zachowanie wpisów poziomu 1
% UWAGA: używamy licznika listy „myitemsi”
\setlist[myitems, 1]
{label=\arabic{myitemsi}., %1., 2., 3., ...
leftmargin=\parindent,
rightmargin=10pt
}

% Skonfiguruj zachowanie wpisów poziomu 2
% UWAGA: używamy licznika listy „myitemsii”
\setlist[myitems, 2]
{label=\arabic{myitemsi}.\arabic{myitemsii}, %1.1, 1.2, 1.3...
leftmargin=15pt,
rightmargin=15pt}

% Skonfiguruj zachowanie wpisów poziomu 3
% UWAGA: używamy licznika listy „myitemsiii”
\setlist[myitems, 3]
% Użyj etykiety 1.1:<kern>(a), 1.1:<kern>(b) itd.
{label=\arabic{myitemsi}.\arabic{myitemsii}:\kern1.5pt(\alph{myitemsiii}),
leftmargin=30pt,
rightmargin=30pt}

\randomtext
\begin{myitems}
\item \randomtext
    \begin{myitems}
    \item \randomtext
        \begin{myitems}
        \item \randomtext
        \item \randomtext
        \end{myitems}
    \item \shortrandomtext
    \item \shortrandomtext
    \end{myitems}
\item \randomtext
\end{myitems}
\end{document}
```

[Otwórz ten `enumitem` przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Create+a+custom+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnewcommand%7B%5Cshortrandomtext%7D%7BHello%2C+here+is+some+text.%7D%0A%25+Create+a+custom+list+based+on+enumerate%0A%25+It+is+called+%22myitems%22%0A%25+We%27ll+create+a+list+that+is+3+levels+deep%0A%5Cnewlist%7Bmyitems%7D%7Benumerate%7D%7B3%7D%0A%0A%25+Configure+the+behaviour+of+level+1+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsi%22%0A%5Csetlist%5Bmyitems%2C+1%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%2C+%251.%2C+2.%2C+3.%2C+...%0Aleftmargin%3D%5Cparindent%2C%0Arightmargin%3D10pt%0A%7D%0A%0A%25+Configure+the+behaviour+of+level+2+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsii%22%0A%5Csetlist%5Bmyitems%2C+2%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%2C+%251.1%2C+1.2%2C+1.3...%0Aleftmargin%3D15pt%2C%0Arightmargin%3D15pt%7D%0A%0A%25+Configure+the+behaviour+of+level+3+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsiii%22%0A%5Csetlist%5Bmyitems%2C+3%5D%0A%25+Use+a+label+of+1.1%3A%3Ckern%3E%28a%29%2C+1.1%3A%3Ckern%3E%28b%29+etc++%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%3A%5Ckern1.5pt%28%5Calph%7Bmyitemsiii%7D%29%2C%0Aleftmargin%3D30pt%2C%0Arightmargin%3D30pt%7D%0A%0A%5Crandomtext%0A%5Cbegin%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A++++%5Cbegin%7Bmyitems%7D%0A++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bmyitems%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bmyitems%7D%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Cend%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bmyitems%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![CustomItemizeList.png](/files/e025368d9caee51c8ba604033e44b3648e87ee37)

#### Listy dla prawników: zagnieżdżanie list na dowolną głębokość

Ta `enumitem` pakiet pozwala tworzyć listy, które można zagnieżdżać na dowolną głębokość, znosząc ograniczenie LaTeX-a do 4. Każdy, kto przygotowuje umowy ze złożoną (głęboko zagnieżdżoną) strukturą klauzul, może na tym skorzystać, choć zagnieżdżony kod wygląda nieco onieśmielająco...

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newlist{contract}{enumerate}{10}
\setlist[contract]{label*=\arabic*.}
\setlistdepth{10}

\section*{Własna lista zagnieżdżona na 10 poziomach!}

\begin{contract}
\item Poziom 1
 \begin{contract}
 \item Poziom 2
   \begin{contract}
   \item Poziom 3
     \begin{contract}
     \item Poziom 4
       \begin{contract}
       \item Poziom 5
        \begin{contract}
        \item Poziom 6
         \begin{contract}
         \item Poziom 7
          \begin{contract}
          \item Poziom 8
           \begin{contract}
           \item Poziom 9
            \begin{contract}
            \item Poziom 10
          \end{contract}
         \end{contract}
        \end{contract}
       \end{contract}
      \end{contract}
     \end{contract}
    \end{contract}
   \end{contract}
  \end{contract}
 \end{contract}
\end{document}
```

[Otwórz ten `enumitem` przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+enumitem+package+to+create+deeply+nested+lists\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewlist%7Bcontract%7D%7Benumerate%7D%7B10%7D%0A%5Csetlist%5Bcontract%5D%7Blabel%2A%3D%5Carabic%2A.%7D%0A%5Csetlistdepth%7B10%7D+%0A%0A%5Csection%2A%7BCustom+list+nested+to+10+levels+deep%21%7D%0A%0A%5Cbegin%7Bcontract%7D%0A%5Citem+Level+1%0A+%5Cbegin%7Bcontract%7D%0A+%5Citem+Level+2%0A+++%5Cbegin%7Bcontract%7D%0A+++%5Citem+Level+3%0A+++++%5Cbegin%7Bcontract%7D%0A+++++%5Citem+Level+4%0A+++++++%5Cbegin%7Bcontract%7D%0A+++++++%5Citem+Level+5%0A++++++++%5Cbegin%7Bcontract%7D%0A++++++++%5Citem+Level+6%0A+++++++++%5Cbegin%7Bcontract%7D%0A+++++++++%5Citem+Level+7%0A++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++%5Citem+Level+8%0A+++++++++++%5Cbegin%7Bcontract%7D%0A+++++++++++%5Citem+Level+9%0A++++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++++%5Citem+Level+10%0A++++++++++%5Cend%7Bcontract%7D%0A+++++++++%5Cend%7Bcontract%7D%0A++++++++%5Cend%7Bcontract%7D%0A+++++++%5Cend%7Bcontract%7D%0A++++++%5Cend%7Bcontract%7D%0A+++++%5Cend%7Bcontract%7D%0A++++%5Cend%7Bcontract%7D%0A+++%5Cend%7Bcontract%7D%0A++%5Cend%7Bcontract%7D%0A+%5Cend%7Bcontract%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![10levels.png](/files/fe3c8633f1a799331d7e6e733649049ce8a13ba2)

#### Własne punktory przy użyciu pakietu enumitem i MetaPost

Poniższe przykłady działają tylko z LuaLaTeX i mają na celu jedynie zasygnalizowanie niektórych możliwości — oczywiście zastąp MetaPost swoim preferowanym narzędziem lub programem do rysowania!

Te przykłady używają `luamplib` pakietu, a także pokazują rozszerzalne polecenia, takie jak `\the` i `\directlua`można używać w kodzie MetaPost.

**Przykład 1: automatyczne dostosowywanie rozmiaru punktorów**

Ten przykład generuje punktory, które zmniejszają się wraz ze wzrostem głębokości listy. Kliknij łącze „Open in Overleaf”, aby uruchomić przykład i zobaczyć pełny kod.

```latex
% Zadeklaruj nową listę opartą na itemize za pomocą enumitem
\newlist{myEnumerate}{itemize}{6}

% Opcja nosep usuwa wszystkie odstępy pionowe
% label=\protect\mpbullet sprawia, że wszystkie punktory są
% rysowane przez makro wykorzystujące kod MetaPost. \protect
% jest wymagane, jak zauważono w podręczniku enumitem

\setlist[myEnumerate]{nosep,label=\protect\mpbullet}
\setlistdepth{6}

\begin{myEnumerate}
\item Poziom 1
  \begin{myEnumerate}
   \item Poziom 2
    \begin{myEnumerate}
     \item Poziom 3
      \begin{myEnumerate}
       \item Poziom 4
        \begin{myEnumerate}
         \item Poziom 5
          \begin{myEnumerate}
           \item Poziom 6
           \end{myEnumerate}
        \end{myEnumerate}
       \end{myEnumerate}
    \end{myEnumerate}
   \end{myEnumerate}
\end{myEnumerate}
```

[Aby zobaczyć ***pełny kod***, otwórz ten przykład LuaLaTeX w Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0AThis+list+configuration+example+uses+MetaPost+code+that+contains+Lua+code+via+%5Cverb%7C%5Cdirectlua%7C.+Bullets+are+created+by+MetaPost+code%2C+size+is+calculated+from+the+depth+of+the+entry.%0A%0A%25+It+is+convenient+to+use+%5Clet%5Cmpdepth%5C%40listdepth%3A+makes+it+%0A%25+easier+to+use+in+MetaPost+code%0A%0A%5Ccatcode%60%40%3D11%0A%5Clet%5Cmpdepth%5C%40listdepth%0A%5Ccatcode%60%40%3D12%0A%0A%5Cnewcommand%7B%5Cmpbullet%7D%7B%25%0A%5Cbegin%7Bmplibcode%7D%25%0Adraw+%280%2C0%29..%280%2C-%5Cdirectlua%7Btex.print%28%5Cthe%5Cmpdepth%2F2%29%7D%29+withpen+pencircle+scaled+2pt+withcolor+white%3B%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+%5Cdirectlua%7Btex.print%285%2Fmath.sqrt%28%5Cthe%5Cmpdepth%29%29%7Dbp%3B%0A%5Cend%7Bmplibcode%7D%7D%0A%25+Declare+a+new+itemize-based+list+via+enumitem%0A%5Cnewlist%7BmyEnumerate%7D%7Bitemize%7D%7B6%7D%0A%0A%25+The+nosep+option+removes+all+vertical+spacing%0A%25+the+label%3D%5Cprotect%5Cmpbullet+causes+all+bullets+to+be+%0A%25+drawn+by+a+macro+that+uses+MetaPost+code.+%5Cprotect%0A%25+is+required+as+noted+in+the+enumitem+manual+%0A%0A%5Csetlist%5BmyEnumerate%5D%7Bnosep%2Clabel%3D%5Cprotect%5Cmpbullet%7D%0A%5Csetlistdepth%7B6%7D%0A%0A%5Cbegin%7BmyEnumerate%7D%0A%5Citem+Level+1%0A++%5Cbegin%7BmyEnumerate%7D%0A+++%5Citem+Level+2%0A++++%5Cbegin%7BmyEnumerate%7D%0A+++++%5Citem+Level+3%0A++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++%5Citem+Level+4%0A++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++%5Citem+Level+5%0A++++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++++%5Citem+Level+6%0A+++++++++++%5Cend%7BmyEnumerate%7D%0A++++++++%5Cend%7BmyEnumerate%7D%0A+++++++%5Cend%7BmyEnumerate%7D%0A++++%5Cend%7BmyEnumerate%7D%0A+++%5Cend%7BmyEnumerate%7D%0A%5Cend%7BmyEnumerate%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![Autosize.png](/files/7ee776706e2652d7522f511c420bc919ad26a2bf)

**Przykład 2: oryginalne własne punktory**

Ten przykład został zainspirowany przez [przykład na tex.stackexchange](https://tex.stackexchange.com/a/313337) który Overleaf zmodyfikował, aby tworzyć własne punktory przy użyciu kodu MetaPost. Kliknij łącze „Open in Overleaf”, aby uruchomić przykład i zobaczyć pełny kod.

```latex
\newlist{todolist}{itemize}{2}

\begin{itemize}
  \item Zacznijmy myśleć o tym, co mamy nadzieję osiągnąć
  \begin{todolist}
  \item[\mpdot] Określ cele
  \item[\mpyingyang] Zrównoważ wpływ na środowisko
  \item[\mpsquare{0}{5}{0}] Wdrażaj plany
    \begin{todolist}
    \item[\mpsquare{-0.5}{4}{0}] Plany etapu 1
    \item[\mpsquare{-0.5}{4}{-20}] Plany etapu 2
    \item[\mpsquare{-0.5}{4}{-40}] Plany etapu 3
    \item[\mpsquare{-0.5}{4}{-60}] Plany etapu 4
    \end{todolist}
  \end{todolist}
\end{itemize}
```

[Aby zobaczyć ***pełny kod***, otwórz ten przykład LuaLaTeX w Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Second+example+using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Cmpyingyang%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Apath+p%3B%0Ap%3A%3D%28-1%2C0%29..%280%2C-1%29..%281%2C0%29%3B%0Afill+%28p%7Bup%7D..%7Bdown%7D%280%2C0%29%7Bdown%7D..%7Bup%7Dcycle%29+scaled+0.15cm%3B%0Adraw+%28p..%280%2C1%29..cycle%29+scaled+0.15cm+%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpdot%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+2bp%3B%0Adraw+fullcircle+scaled+0.2cm%3B%0Adraw+fullcircle+scaled+0.3cm%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpsquare%7D%5B3%5D%7B%25%0A%5Clower%231pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adraw+unitsquare+rotated+%233+scaled+%232pt%3B%0A%5Cend%7Bmplibcode%7D%25%0A%7D%7D%25%0A%5Cnewlist%7Btodolist%7D%7Bitemize%7D%7B2%7D%0A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+Start+thinking+about+what+we+hope+to+achieve%0A++%5Cbegin%7Btodolist%7D%0A++%5Citem%5B%5Cmpdot%5D+Identify+objectives%0A++%5Citem%5B%5Cmpyingyang%5D+Balance+environmental+impact+%0A++%5Citem%5B%5Cmpsquare%7B0%7D%7B5%7D%7B0%7D%5D+Implement+plans%0A++++%5Cbegin%7Btodolist%7D%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B0%7D%5D+Stage+1+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-20%7D%5D+Stage+2+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-40%7D%5D+Stage+3+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-60%7D%5D+Stage+4+plans%0A++++%5Cend%7Btodolist%7D%0A++%5Cend%7Btodolist%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Ten przykład generuje następujący wynik:

![CustomBullets2.png](/files/7a2d2903ecb144755eb2df54a1d45f5b444c02d8)

## Inne funkcje pakietu enumitem

Jak wspomniano, `enumitem` pakiet jest niezwykle wszechstronny i oferuje wiele funkcji do używania i dostosowywania list. Na przykład funkcje, których nie omówiliśmy, obejmują:

* odwoływanie się do wpisów listy: na przykład zobacz to [pytanie i przykład na tex.stackexchane](https://tex.stackexchange.com/questions/524822/help-for-formatting-the-ref-of-nested-enumerate)
* sterowanie `enumerate` numeracją listy:
  * ustaw numer początkowy pierwszego elementu
  * kontynuuj numerację różnych `enumerate` list

I wiele więcej! Przeglądaj [tex.stackexchange, aby znaleźć wiele świetnych przykładów](https://tex.stackexchange.com/questions/tagged/enumitem) tego, co możesz zrobić za pomocą `enumitem`—a także, oczywiście, [przeczytaj dokumentację pakietu](https://ctan.org/pkg/enumitem).


---

# 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/pl/podstawy-latex-a/04-lists.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.
