> 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/uk/dokladni-statti/30-how-to-write-in-markdown-on-overleaf.md).

# Як писати в Markdown в Overleaf

**Оновлення після публікації** (додано 13 травня 2017 року): Ми вдячні Віту Новотному, автору/підтримувачу `markdown` пакета, за те, що він написав нам із корисними зауваженнями щодо оригінальної статті. Ми раді опублікувати цю оновлену версію, яка враховує його поради та пропозиції й містить їх.

### Га, що?

[Markdown](https://kirkstrobeck.github.io/whatismarkdown.com/) — це легка мова розмітки (вловили? 😉), яка дає змогу записати щось у звичайному тексті з кількома *дуже* простими правилами, а потім перетворити це на форматований вивід, наприклад HTML. Вона дуже популярна серед розробників програмного забезпечення та програмістів саме завдяки своїй простоті (і, додам, також чудово підходить для нотаток!).

Наприклад, щоб швидко написати список покупок:

```
# Список покупок
*Пам’ятайте* купити якомога більше під час майбутніх [розпродажів](http://acme-marg.com)!
## Їжа
- печена квасоля
- спагеті
## Канцелярське приладдя
- блокнот
- олівці
```

А ви отримаєте HTML-вивід, використовуючи такий інструмент, як [pandoc](http://pandoc.org/):

```html
<h1 id="grocerylist">Список покупок</h1>
<p><em>Пам’ятайте</em> купити якомога більше під час майбутніх <a href="http://acme-marg.com">розпродажів</a>!</p>
<h2 id="food">Їжа</h2>
<ul>
<li>печена квасоля</li>
<li>спагеті</li>
</ul>
<h2 id="stationery">Канцелярське приладдя</h2>
<ul>
<li>блокнот</li>
<li>олівці</li>
</ul>
```

Гарно й просто! Ви можете знайти інший синтаксис для Markdown [тут](https://daringfireball.net/projects/markdown/syntax).

### Тож що це означає для мене?

Багато користувачів LaTeX задоволені своїми красивими документами, набраними у LaTeX, але не можуть не відчувати нотки заздрощів до користувачів Markdown — бо, ну, розмітка LaTeX *може* інколи стає доволі багатослівною. Так, списки, ми дивимося на *вас*...

Добра новина полягає в тому, що чудовий новий [`markdown` пакет LaTeX](https://ctan.org/pkg/markdown) дає змогу писати синтаксис markdown у ваших документах LaTeX (тобто простіші вхідні дані) і все одно отримувати чудово зверстані PDF! Усе, що вам потрібно зробити, — це підключити `markdown` пакет у вашому документі та помістити ваш матеріал Markdown у `markdown` середовище:

```latex
\documentclass{article}
\usepackage{markdown}
\begin{document}
\begin{markdown}
# Список покупок

*Пам’ятайте* купити якомога більше під час майбутніх [розпродажів](http://acme-marg.com)!

## Їжа

- печена квасоля
- спагеті

## Канцелярське приладдя

- блокнот
- олівці
\end{markdown}
\end{document}
```

Або якщо ви віддаєте перевагу розміщувати ваш матеріал Markdown у `*.md` файлу такий рядок:

```latex
\documentclass{article}
\usepackage{markdown}
\begin{document}
\markdownInput{example.md}
\end{document}
```

Чудово! Це, найімовірніше, дуже порадує типових розробників, бо тепер вони можуть просто копіювати свою `.md` документацію!

### Чи можу я й далі використовувати команди LaTeX, якщо пишу Markdown?

Так, ви й далі можете використовувати команди LaTeX у своєму матеріалі Markdown! Просто передайте `hybrid` параметр на `markdown`:

```latex
\usepackage[hybrid]{markdown}
...
- блокнот (такий, з великим $E=mc^2$ на обкладинці)
```

### Як я можу використовувати буквальні символи, такі як '#' і '\_' (підкреслення)?

#### Введення '#'

Ви не можете ввести символ '#' *всередині `markdown` середовища*. Навіть `\#` не спрацює. Вам потрібно визначити команду на кшталт `\newcommand{\texthash}{\#}`, а потім використовувати `\texthash` у преамбулу ваших `markdown` середовища. Те саме стосується підкреслень, особливо коли їх кілька в одному рядку, напр.: `$y = m_1 + n_2$`. Іноді простіше завершити поточне `markdown` середовище і записати проблемні рядки у звичайному режимі LaTeX, а потім почати інше `markdown` середовищі.

#### Введення '\_' (підкреслення) та '\`' (бектик)

**Оновлення** (додано 13 травня 2017 року): Оскільки `markdown` у версії 2.5 ви можете встановити `underscores = false` та `codeSpans = false` щоб вимкнути підкреслення та бектики. Це дає змогу писати нижні індекси у математиці та лапки в гібридному режимі без екранування. Для виділення в нас є зірочки, тож єдине, що справді втрачається, — це вбудовані приклади коду. Дякую, Віте, за пораду!

#### Середовища, яких слід уникати...

І хоча ви можете використовувати бектики для написання вбудованого дослівного тексту або робити відступ у чотири пробіли для дослівного блоку, не використовуйте `lstlisting` ані `minted` середовища LaTeX всередині `markdown` середовищ. Просто не робіть цього.

#### Використання HTML у середовищі markdown

І ні, ви не можете використовувати HTML усередині LaTeX `markdown` середовища (хоча це звична річ у звичайному Markdown). Вибачте.

**Оновлення** (додано 13 травня 2017 року): Починаючи з `markdown` v2.3, є `html` параметр, який не відображатиме HTML-теги дослівно, якщо вони присутні у вашому матеріалі markdown, хоча він також не форматуватиме вміст тегів — тобто `<strong>Привіт!</strong>` відобразить просто Привіт! звичайним шрифтом. Але HTML-сутності, такі як `&copy;` будуть відтворені як ©. Дякуємо Віту за те, що він звернув на це увагу.

### Запропоновані параметри пакета markdown

Один набір `markdown` параметрів пакета, які можуть вам стати у пригоді:

```latex
\usepackage[footnotes,definitionLists,hashEnumerators,smartEllipses,hybrid]{markdown}
```

Ці параметри вмикають використання

* синтаксису markdown для виносок (наприклад `[^1]`);
* списків визначень і `#` для нумерованих списків;
* «правильних» багатокрапок (…).

Ось [повний приклад](https://www.overleaf.com/latex/examples/using-markdown-in-latex-documents/whdrnpcpnwrm) у галереї Overleaf, а ось [ще один](https://www.overleaf.com/articles/how-to-write-using-rich-text-format-and-markdown-in-latex-and-overleaf/dbqrxvftzskw).

### Гіперпосилання та виноски: як?

У прикладі Overleaf гіперпосилання є виноскою. Як зробити його гіперпосиланням hyperref?

`markdown` є налаштовуваним, тож ви можете визначити, як саме хочете, щоб різні елементи відтворювалися. Додавання цього до преамбули зробить саме це:

```latex
\markdownSetup{renderers={
  link = {\href{#2}{#1}}
}}
```

**Оновлення** (додано 13 травня 2017 року): `rendererPrototypes` використовувався в початковій версії. Звичайним користувачам рекомендується використовувати `renderers` для власних визначень, оскільки `rendererPrototypes` призначено для творців пакета, щоб вони задавали значення за замовчуванням. Якщо ви змінюєте `rendererPrototypes`, ви ризикуєте, що інший пакет може перевизначити ваші налаштування. Дякуємо Віту за те, що він на це вказав!

### Додавання зображень (оновлено 8 листопада 2022 року)

* **Примітка**: Наступний приклад використовує графічний файл (`example-image.pdf`) наданий пакетом `mwe` Пакет. Ці графічні файли поширюються разом із TeX Live і тому зберігаються на серверах Overleaf, завдяки чому вони доступні як заповнювачі зображень, як-от у прикладі нижче.

Зображення можна включати в markdown, використовуючи розмітку такого формату:

```latex
![alt-text](file-name "image caption")
```

Сподіваємося, що назви параметрів `alt-text`, `file-name` та `"image caption"` описують, що вони роблять. Ось приклад, щоб це продемонструвати:

```latex
\documentclass{article}
\usepackage[hybrid]{markdown}
% Пакет mwe надає приклади зображень. Завантажувати його
% не обов'язково, оскільки ці зображення є в шляху пошуку LaTeX.
% Тут ми завантажуємо його для ясності в цьому прикладі.
\usepackage{mwe}
\begin{document}
\begin{markdown}
Цей приклад показує, як імпортувати графічний файл. Тут ми використовуємо
приклад зображення, наданого пакетом `mwe`.

% Використовуйте \setkeys{Gin}, якщо потрібно змінити розмір відображення зображення

\setkeys{Gin}{width=.5\linewidth}
![Це альтернативний текст, що описує моє зображення.](example-image.jpg "Приклад зображення, наданий пакетом \texttt{mwe}.")
\end{markdown}
\end{document}
```

[Відкрийте цей приклад в 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)

Цей приклад дає такий результат:

![Показано, як імпортувати зображення в markdown](/files/4a4f42ed31f3d004598773994d39c534e1de95d2)

#### Примітка щодо ширини зображення

Як і більшість пакетів, `markdown` завантажує інші пакети, зокрема [`keyval`](https://ctan.org/pkg/keyval?lang=en) та [`graphicx`](https://ctan.org/pkg/graphicx?lang=en), щоб використовувати команди та можливості, які вони надають. Тут ширину зображення встановлено за допомогою `\setkeys` команди, яку надає `keyvals`. `Gin` — це «сімейство» ключів, визначене `graphicx` пакет.

* **Примітка**: Оскільки команда LaTeX, а саме `\setkeys`, використовується *у* сайті `markdown` середовищі, то `hybrid` опція пакета markdown є обов'язковою.

#### Зміна ідентифікаторів розміщення плаваючих об’єктів (більш просунуто)

Синтаксис markdown для вставлення рисунків не дає змоги напряму вказати ідентифікатори розміщення плаваючих об’єктів, але ви можете налаштувати їх, перевизначивши спосіб відтворення рисунка:

```latex
\markdownSetup{renderers={
  image = {\begin{figure}[hbt!]
    \centering
    \includegraphics{#3}%
    \ifx\empty#4\empty\else
    \caption{#4}%
    \fi
    \end{figure}}
}}
```

Докладніше дивіться в [документації markdown](https://mirror.apps.cam.ac.uk/pub/tex-archive/macros/generic/markdown/markdown.html).

### Чи можна створювати таблиці за допомогою markdown у LaTeX? 😀

На жаль, ні. Таблиці підтримуються в [MultiMarkdown](http://fletcherpenney.net/multimarkdown/) лише, а пакет LaTeX `markdown` наразі не підтримує це.

**Оновлення** (додано 13 травня 2017 року): На основі поради від Віта, можна використовувати `contentBlocks` розширення синтаксису починаючи з версії 2.4 або налаштувати `inputFencedCode` рендерер, щоб швидко перетворити текст у стилі CSV на таблицю.

### Ще більше можливостей пакета markdown...?

Як уже згадувалося, це класний спосіб для нотаток, а в поєднанні з деякими гарними класами документів LaTeX або налаштуваннями пакетів дає змогу мати наприкінці самої лекції гарний конспект. Наприклад, ви могли б використати його з [класами Tufte](https://www.overleaf.com/gallery/tagged/tufte):

```latex
\documentclass{tufte-handout}
\usepackage[footnotes,definitionLists,hashEnumerators,smartEllipses, hybrid]{markdown}
\begin{document}
\markdownInput{PHY303-lecture-12Nov2016.md}
\end{document}
```

А простий і короткий синтаксис, що робить написання списків набагато зручнішим, означає, що тепер у нас є *дуже швидкий* спосіб написання [презентацій Beamer](https://www.overleaf.com/latex/examples/writing-beamer-slides-with-markdown/dnrwnjrpjjhw) та [постерів](https://www.overleaf.com/latex/examples/writing-beamer-slides-with-markdown/dnrwnjrpjjhw)!

Веселіться!


---

# 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/uk/dokladni-statti/30-how-to-write-in-markdown-on-overleaf.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.
