> 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/baza-wiedzy/166-writing-markdown-in-latex-documents.md).

# Pisanie Markdown w dokumentach LaTeX

## Wstęp

Aby używać Markdown w dokumencie LaTeX, musisz załadować [`markdown` pakietu](https://www.ctan.org/pkg/markdown) w preambule dokumentu:

```latex
\usepackage[settings]{markdown}
```

gdzie `[ustawienia]` jest *opcjonalny* zestaw parametrów służących do konfigurowania lub włączania określonych funkcji pakietu. Zobacz `markdown` pakietu [dokumentację](https://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/generic/markdown/markdown.html) dla [opis parametrów pakietu (opcji)](https://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/generic/markdown/markdown.html#options).

Ten artykuł krótko omówi zarówno *liniowym* Markdown — zapisanego w samym dokumencie — oraz importowanie *external* Markdown zawartego w pliku tekstowym.

* **Uwaga**: Ogólnie rzecz biorąc, użycie Markdown w dokumencie LaTeX należy traktować jako uzupełniającą i wygodną opcję tworzenia niektórych elementów treści dokumentu, a nie jako alternatywną składnię mającą całkowicie zastąpić sam LaTeX.

## Korzystanie z zewnętrznych plików markdown

Użyj polecenia

```latex
\markdownInput{filename}
```

aby dołączyć plik markdown `nazwa pliku`.

Poniższy przykład wstawia plik o nazwie `example.md`. Skorzystaj z linku poniżej listingów kodu, aby otworzyć je jako projekt Overleaf:

**`main.tex`**

```latex
\documentclass{article}
\title{Korzystanie z pakietu markdown}
\usepackage[smartEllipses]{markdown}
\begin{document}

\markdownInput{example.md}

\end{document}
```

**`example.md`**

```latex
%% example.md

# Jestem plikiem markdown.

I mogę robić *wyróżnienie*.
## Z podtytułami

> Cytaty blokowe są
> zapisywane w ten sposób.
>
> Mogą obejmować wiele akapitów,
> jeśli chcesz.

Użyj 3 kresek dla półpauzy. Użyj 2 kresek dla
zakresów (np. „wszystko jest w rozdziałach 12--14”).
Trzy kropki ... zostaną zamienione na wielokropek
(pod warunkiem, że dołączysz opcję smartEllipses
w preambule). Unicode jest obsługiwany.
```

[Otwórz te pliki jako projekt Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7BUsing+the+markdown+package%7D%0A%5Cusepackage%5BsmartEllipses%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5CmarkdownInput%7Bexample.md%7D%0A%0A%5Cend%7Bdocument%7D\&snip_name\[]=example.md\&snip\[]=%25%25+example.md%0A%0A%23+I%27m+a+markdown+file.%0A%0AAnd+I+can+do+%2Aemphasis%2A.%0A%23%23+With+sub-headers%0A%0A%3E+Block+quotes+are%0A%3E+written+like+so.%0A%3E%0A%3E+They+can+span+multiple+paragraphs%2C%0A%3E+if+you+like.%0A%0AUse+3+dashes+for+an+em-dash.+Use+2+dashes+for+%0Aranges+%28ex.%2C+%22it%27s+all+in+chapters+12--14%22%29.+%0AThree+dots+...+will+be+converted+to+an+ellipsis+%0A%28provided+you+include+the+smartEllipses+option+%0Ain+your+preamble%29.+Unicode+is+supported.\&main_document=main.tex)

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

![Grafika pokazująca wynik działania pakietu markdown](/files/a73f7592ab3954f97af51bc4e66f5f646d085dc4)

## Korzystanie z markdownu w tekście

Użyj `markdown` środowiska:

```latex
\begin{markdown}
...twój markdown
znajduje się tutaj...
\end{markdown}
```

aby pisać markdown w tekście, jak pokazano w następnym przykładzie:

```latex
\documentclass{article}
\usepackage[hashEnumerators,smartEllipses]{markdown}
\begin{document}

Korzystanie z markdownu w tekście:

\begin{markdown}
Nagłówek h1
============

Akapity są oddzielone pustą linią.

2. akapit. *Kursywa*, **pogrubienie** i `monospace`. Listy punktowane
wyglądają tak:

* ten
* tamten
* ten drugi

> Cytaty blokowe są
> zapisywane w ten sposób.
>
> Mogą obejmować wiele akapitów,
> jeśli chcesz.

Nagłówek h2
------------

Oto lista numerowana (użyj opcji `hashEnumerators`, jeśli chcesz używać haszy):

#. pierwszy element
#. drugi element
#. trzeci element

\end{markdown}
\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BhashEnumerators%2CsmartEllipses%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%0AUsing+inline+markdown%3A%0A%0A%5Cbegin%7Bmarkdown%7D%0AAn+h1+header%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AParagraphs+are+separated+by+a+blank+line.+%0A%0A2nd+paragraph.+%2AItalic%2A%2C+%2A%2Abold%2A%2A%2C+and+%60monospace%60.+Itemized+lists%0Alook+like%3A%0A%0A%2A+this+one%0A%2A+that+one%0A%2A+the+other+one%0A%0A%3E+Block+quotes+are%0A%3E+written+like+so.%0A%3E%0A%3E+They+can+span+multiple+paragraphs%2C%0A%3E+if+you+like.%0A%0AAn+h2+header%0A------------%0A%0AHere%27s+a+numbered+list+%28use+%60hashEnumerators%60+option+if+you+want+to+use+hashes%29%3A%0A%0A%23.+first+item%0A%23.+second+item%0A%23.+third+item%0A%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

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

![Przykład składu markdownu w tekście w Overleaf](/files/1397e5f477cd11b69525bacc925d60bb8a7edad5)

## Funkcje i opcje pakietu markdown

Tutaj omówimy kilka [funkcji i opcji](https://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/generic/markdown/markdown.html) udostępnianych przez `markdown` pakiet.

### Dołączanie kodu do markdownu

Istnieją dwa mechanizmy wyświetlania fragmentów kodu (bloków kodu) w markdownie:

* wcięcie każdej linii bloku o co najmniej cztery spacje lub jedną tabulację albo
* użycie tzw. [bloków kodu ograniczonych znacznikami](#using-fenced-code-blocks)

#### Wyświetlanie bloków kodu za pomocą wcięć

Poniższy przykład używa 4 lub więcej znaków spacji na początku każdej linii kodu — niektóre linie używają 6, 8 lub 10 spacji, w zależności od wymaganego wcięcia:

```latex
\documentclass{article}
\usepackage{markdown}
\begin{document}
Oto kilka fragmentów kodu wciętych o co najmniej 4 spacje.
\vspace{6mm}

\begin{markdown}

Oto fragment kodu C:

    /* Pozwól, że wykonam iterację ... */

    int i;
    for(i=0; i<10; i++)
    {
      do-something(i)
    }

Oto trochę HTML:

    <html>
      <head>
        <title>Tytuł strony</title>
      </head>
      <body>
        <h1>To jest nagłówek</h1>
          <p>To jest akapit.</p>
      </body>
    </html>

\end{markdown}
\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown+code+snippets\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0AHere+are+some+code+fragments+indented+by+at+least+4+space+characters.%0A%5Cvspace%7B6mm%7D%0A%0A%5Cbegin%7Bmarkdown%7D%0A%0AHere+is+a+fragment+of+C%3A%0A%0A++++%2F%2A+Let+me+iterate+...+%2A%2F%0A%0A++++int+i%3B%0A++++for%28i%3D0%3B+i%3C10%3B+i%2B%2B%29%0A++++%7B%0A++++++do-something%28i%29%0A++++%7D%0A%0AHere+is+some+HTML%3A%0A%0A++++%3Chtml%3E%0A++++++%3Chead%3E%0A++++++++%3Ctitle%3EPage+Title%3C%2Ftitle%3E%0A++++++%3C%2Fhead%3E%0A++++++%3Cbody%3E%0A++++++++%3Ch1%3EThis+is+a+Heading%3C%2Fh1%3E%0A++++++++++%3Cp%3EThis+is+a+paragraph.%3C%2Fp%3E%0A++++++%3C%2Fbody%3E%0A++++%3C%2Fhtml%3E%0A%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

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

![Przykład składu kodu za pomocą markdownu](/files/ef6e4d7bd228d0be29c819d30cf923a620b3191d)

#### Korzystanie z bloków kodu ograniczonych znacznikami

Blok kodu ograniczony znacznikami tworzy się, zapisując albo

* trzy znaki odwrotnego apostrofu (` ``` `), albo
* trzy tyldy (`~~~`)

w liniach przed i po bloku kodu. Korzystając z tej metody, nie musisz wcięć żadnych linii, ale musisz użyć opcji `fencedCode` w preambule:

```latex
\usepackage[fencedCode]{markdown}
```

Oto przykład tworzenia bloków kodu ograniczonych znacznikami przy użyciu 3 znaków odwrotnego apostrofu (` ``` `):

````latex
\documentclass{article}
\usepackage[fencedCode]{markdown}
\begin{document}
\begin{markdown}

```
if (a > 3) {
    moveShip(5 * gravity, DOWN);
}
```

```
    <html>
      <head>
        <title>Tytuł strony</title>
      </head>
      <body>
        <h1>To jest nagłówek</h1>
          <p>To jest akapit.</p>
      </body>
    </html>
```
\end{markdown}
\end{document}
````

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown+fenced+code+blocks\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BfencedCode%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0A%0A%60%60%60%0Aif+%28a+%3E+3%29+%7B%0A++++moveShip%285+%2A+gravity%2C+DOWN%29%3B%0A%7D%0A%60%60%60%0A%0A%60%60%60%0A++++%3Chtml%3E%0A++++++%3Chead%3E%0A++++++++%3Ctitle%3EPage+Title%3C%2Ftitle%3E%0A++++++%3C%2Fhead%3E%0A++++++%3Cbody%3E%0A++++++++%3Ch1%3EThis+is+a+Heading%3C%2Fh1%3E%0A++++++++++%3Cp%3EThis+is+a+paragraph.%3C%2Fp%3E%0A++++++%3C%2Fbody%3E%0A++++%3C%2Fhtml%3E%0A%60%60%60%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

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

![Korzystanie z bloków kodu ograniczonych znacznikami z pakietem LaTeX markdown](/files/97563e7ebb374a44f7433535aaa64910114c3447)

#### Wyróżnianie składni

Bloki kodu ograniczone znacznikami obsługują wyróżnianie składni, umieszczając nazwę języka po pierwszym zestawie znaków odwrotnego apostrofu (`` ` ``). Na przykład poniższy blok jest rozpoznawany jako JavaScript, gdy pierwszy zestaw znaków odwrotnego apostrofu zapisze się jako ` ``` js `:

````latex
``` js
if (a > 3) {
    moveShip(5 * gravity, DOWN);
}
```
````

W LaTeX, pakiet `minted` może służyć do wyróżniania składni, jak pokazano w następnym przykładzie zawierającym nieco JavaScriptu (` ``` js `) oraz HTML (` ``` html `):

````latex
\documentclass{article}
\usepackage{minted}
\usepackage[fencedCode]{markdown}
\begin{document}
\begin{markdown}

``` js
if (a > 3) {
    moveShip(5 * gravity, DOWN);
}
```

``` html
    <html>
      <head>
        <title>Tytuł strony</title>
      </head>
      <body>
        <h1>To jest nagłówek</h1>
          <p>To jest akapit.</p>
      </body>
    </html>
```
\end{markdown}
\end{document}
````

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown+fenced+code+blocks\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusepackage%5BfencedCode%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0A%0A%60%60%60+js%0Aif+%28a+%3E+3%29+%7B%0A++++moveShip%285+%2A+gravity%2C+DOWN%29%3B%0A%7D%0A%60%60%60%0A%0A%60%60%60+html%0A++++%3Chtml%3E%0A++++++%3Chead%3E%0A++++++++%3Ctitle%3EPage+Title%3C%2Ftitle%3E%0A++++++%3C%2Fhead%3E%0A++++++%3Cbody%3E%0A++++++++%3Ch1%3EThis+is+a+Heading%3C%2Fh1%3E%0A++++++++++%3Cp%3EThis+is+a+paragraph.%3C%2Fp%3E%0A++++++%3C%2Fbody%3E%0A++++%3C%2Fhtml%3E%0A%60%60%60%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

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

![Wyróżnianie składni z minted i markdownem](/files/2ecacf26706ed8dba454fb3b55e01c6bee1f61b8)

### Listy

Poprzednie przykłady [pokazują tworzenie list nieuporządkowanych](#using-inline-markdown) w markdownzie przy użyciu znaku `*` . Listy uporządkowane można tworzyć przy użyciu znaku `#` znaku, jeśli opcja `hashEnumerators` została określona:

```latex
\usepackage[hashEnumerators]{markdown}
```

Można też tworzyć listy zagnieżdżone, jak pokazano w następnym przykładzie:

```latex
\documentclass{article}
\usepackage[hashEnumerators]{markdown}
\begin{document}
\begin{markdown}
Oto lista numerowana, która zawiera listę zagnieżdżoną:

#. Najpierw zdobądź te składniki:

      * marchew
      * seler
      * soczewica

#. Zagotuj wodę.

#. Wrzucić wszystko do garnka i postępować według tego algorytmu:

        znajdź drewnianą łyżkę
        odkryj garnek
        mieszaj
        przykryj garnek
        połóż drewnianą łyżkę chwiejnie na uchwycie garnka
        poczekaj 10 minut
        goto pierwszy krok (lub wyłącz palnik po zakończeniu)

    Nie potrącaj drewnianej łyżki, bo spadnie.
\end{markdown}
\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+nested+list+in+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BhashEnumerators%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0AHere+is+a+numbered+list+that+contains+a+nested+list%3A%0A%0A%23.+First%2C+get+these+ingredients%3A%0A%0A++++++%2A+carrots%0A++++++%2A+celery%0A++++++%2A+lentils%0A%0A%23.+Boil+some+water.%0A%0A%23.+Dump+everything+in+the+pot+and+follow+this+algorithm%3A%0A%0A++++++++find+wooden+spoon%0A++++++++uncover+pot%0A++++++++stir%0A++++++++cover+pot%0A++++++++balance+wooden+spoon+precariously+on+pot+handle%0A++++++++wait+10+minutes%0A++++++++goto+first+step+%28or+shut+off+burner+when+done%29%0A%0A++++Do+not+bump+wooden+spoon+or+it+will+fall.%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

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

![Tworzenie list numerowanych przy użyciu pakietu markdown dla LaTeX](/files/0274aece6ef0ee22dc5973fc2aa9ede4fa377279)

### Umieszczanie LaTeX-a w markdownie

Jeśli włączysz opcję `hybrid` możesz mieszać kod LaTeX z Markdownem!

```latex
\documentclass{article}
\usepackage[hybrid]{markdown}
\begin{document}

\begin{markdown}
Równania matematyczne w tekście można tworzyć tak: $\omega = d\phi / dt$.
Równania wyświetlane można zapisać jako:

\begin{equation}
I = \int \rho R^{2} dV
\end{equation}

\end{markdown}
\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+LaTeX+code+in+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bhybrid%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bmarkdown%7D%0AInline+math+equations+can+be+created+like+this%3A+%24%5Comega+%3D+d%5Cphi+%2F+dt%24.+%0ADisplay+math+can+be+written+as%3A%0A%0A%5Cbegin%7Bequation%7D%0AI+%3D+%5Cint+%5Crho+R%5E%7B2%7D+dV%0A%5Cend%7Bequation%7D%0A%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

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

![Korzystanie z kodu LaTeX w markdownie](/files/5da520fe90571ea9c942b4a9c7efdea36d7ed586)

### Umieszczanie obrazów

* **Uwaga**: Następny przykład używa pliku graficznego (`example-image.pdf`) dostarczanego przez pakiet `mwe` Pakiet. Te pliki graficzne są dystrybuowane przez TeX Live, a więc przechowywane na serwerach Overleaf, dzięki czemu są dostępne jako zastępniki obrazów, takie jak poniżej.

Obrazy można włączać do markdownu, zapisując znacznik w następującym formacie:

```latex
![tekst alternatywny](nazwa-pliku "podpis obrazu")
```

Miejmy nadzieję, że nazwy parametrów `tekst alternatywny`, `nazwa pliku` i `"podpis obrazu"` opisują, do czego służą. Oto przykład ilustrujący ich działanie:

```latex
\documentclass{article}
\usepackage[hybrid]{markdown}
% Pakiet mwe udostępnia obrazy przykładowe. Jego załadowanie jest
% nie jest konieczne, ponieważ te obrazy znajdują się w ścieżce wyszukiwania LaTeX-a.
% Tutaj ładujemy go dla przejrzystości tego przykładu.
\usepackage{mwe}
\begin{document}
\begin{markdown}
Ten przykład pokazuje, jak zaimportować plik graficzny. Tutaj używamy
obrazu przykładowego udostępnionego przez pakiet `mwe`.

% Użyj \setkeys{Gin}, jeśli musisz zmienić rozmiar wyświetlania obrazu

\setkeys{Gin}{width=.5\linewidth}
![To jest tekst alternatywny opisujący mój obraz.](example-image.jpg "Przykładowy obraz udostępniony przez pakiet \texttt{mwe}.")
\end{markdown}
\end{document}
```

[Otwórz ten przykład w Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+images+in+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bhybrid%5D%7Bmarkdown%7D%0A%25+The+mwe+package+provides+example+images.+Loading+it+is%0A%25+not+essential+because+those+images+are+in+LaTeX%27s+search+path.+%0A%25+Here%2C+we+load+it+for+clarity+in+this+example.%0A%5Cusepackage%7Bmwe%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0AThis+example+shows+how+to+import+a+graphics+file.+Here+we+are+using+an%0Aexample+image+provided+by+the+%60mwe%60+package.%0A%0A%25+Use+%5Csetkeys%7BGin%7D+if+you+need+to+change+an+image%27s+display+size%0A%0A%5Csetkeys%7BGin%7D%7Bwidth%3D.5%5Clinewidth%7D%0A%21%5BThis+is+alt+text+to+describe+my+image.%5D%28example-image.jpg+%22An+example+image+provided+by+the+%5Ctexttt%7Bmwe%7D+package.%22%29%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

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

![Pokazywanie, jak importować obrazy w markdownie](/files/a4b5885ce1f5688619fb102b1d7f35f6d13463e8)

#### Uwaga dotycząca szerokości obrazu

Podobnie jak większość pakietów, `markdown` ładuje inne pakiety, w tym [`keyval`](https://ctan.org/pkg/keyval?lang=en) i [`graphicx`](https://ctan.org/pkg/graphicx?lang=en), aby korzystać z dostarczanych przez nie poleceń i funkcji. Tutaj szerokość obrazu jest ustawiana za pomocą polecenia `\setkeys` , które jest udostępniane przez `keyvals`. `Gin` jest „rodziną” klawiszy zdefiniowaną przez `graphicx` pakiet.

* **Uwaga**: Ponieważ używane jest polecenie LaTeX, tutaj `\setkeys`, *w obrębie* stronie `markdown` środowiska, wymagana jest `hybrid` opcja pakietu markdown.

## Dalsza lektura

Overleaf opublikował też inne artykuły na temat używania markdownu:

* [Jak pisać w Markdownzie w Overleaf](/latex/pl/artykuly-szczegolowe/30-how-to-write-in-markdown-on-overleaf.md)
* [Markdown do LaTeX-a ze stylem](/latex/pl/artykuly-szczegolowe/32-markdown-into-latex-with-style.md)


---

# 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/baza-wiedzy/166-writing-markdown-in-latex-documents.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.
