> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/latex/uk/zapitannya-ta-vidpovidi/58-i-have-a-custom-font-i-d-like-to-load-to-my-document.-how-can-i-do-this.md).

# У мене є власний шрифт, який я хотів би завантажити в мій документ. Як це зробити?

## Вступ

У цій статті показано, як встановити власні шрифти для набору тексту вашого документа — вона не стосується шрифтів для набору математики. Під «власним шрифтом» ми маємо на увазі шрифт, недоступний на серверах Overleaf, зокрема комерційні шрифти, що потребують ліцензії, або безкоштовні шрифти, які не поширюються разом із TeX Live чи не входять до нашої Linux-інсталяції.

* **Примітка**: У цій статті розглядаються основні технології шрифтів, але не обговорюються спеціалізовані TeX-рішення, такі як [Metafont](https://en.wikipedia.org/wiki/Metafont) та [віртуальні шрифти](https://texfaq.org/FAQ-virtualfonts).

## З чого почати?

Рішення для набору на основі LaTeX працюють у контексті спадщини. За понад чотири десятиліття розвиток компіляторів LaTeX і форматів шрифтів створив екосистему, що поєднує старі й нові технології. У результаті фактичний процес встановлення та налаштування власних шрифтів для використання з LaTeX залежить від цих двох факторів:

1. Тип (формат) будь-якого шрифту або шрифтів, які ви хочете встановити:

* застарілі [PostScript Type 1](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1) або [TrueType](https://en.wikipedia.org/wiki/TrueType) шрифти, або
* сучасні [OpenType](https://en.wikipedia.org/wiki/OpenType) шрифти.

3. Який компілятор LaTeX використовується для компіляції вашого(их) проєкту(ів) Overleaf:
   * pdfLaTeX або
   * XeLaTeX або LuaLaTeX

Перейдіть до розділу, що стосується вашого бажаного компілятора:

* [Використання власних шрифтів із pdfLaTeX](#using-custom-fonts-with-pdflatex)
* [Використання власних шрифтів із XeLaTeX і LuaLaTeX](#using-custom-fonts-with-xelatex-and-lualatex)

## Використання власних шрифтів із pdfLaTeX

Ось короткий підсумок того, що вам потрібно буде зробити — залежно від складності налаштування вашого власного шрифту:

1. Для кожного файла шрифту (`.ttf`, `.otf` або `.pfb`), вам потрібно мати (або згенерувати!) відповідну TeX-метрику шрифту (`.tfm`) і, можливо, файл кодування (`.enc`).
2. pdfLaTeX має знати, як вбудовувати шрифти документа до підсумкового PDF-файлу. Для цього він читає файл відображення шрифтів (`pdftex.map`), який вам потрібно оновити даними про ваш власний шрифт. В Overleaf це робиться за допомогою однієї з таких команд:

* `\pdfmapfile{...}`
* `\pdfmapline{...}`

4. Вам знадобиться файл опису шрифту (`.fd`) який пояснює LaTeX, як використовувати нові файли шрифтів.

Ось основні типи файлів, які вам знадобляться:

* **`.tfm`** (TeX font metric): ці компактні бінарні файли не містять жодних даних, що описують візуальний вигляд форм символів, лише розміри символів і метадані шрифту, які рушії TeX можуть використовувати для виконання своїх основних завдань набору. TeX-метрики шрифтів для математичних шрифтів містять додаткові дані, не потрібні для текстових шрифтів; зокрема, вони мають кілька параметрів «інтервалів», що використовуються для набору математики.
* **`.fd`** (опис шрифту): ці файли містять команди LaTeX, необхідні для налаштування та підготовки вашого шрифту до використання з LaTeX. Команди, дозволені в `.fd` файлах, а також `.fd` правила іменування файлів описано в документі [вибір шрифтів LaTeX2ε](https://texdoc.org/serve/fntguide/1).
* **`.map`** (font map): файли відображення пов’язують назву файлів метрики шрифтів TeX із фізичним файлом шрифту, що містить дані, потрібні для побудови форм символів (гліфів). Кожен шрифт, відомий pdfTeX, описується в одному рядку файла відображення за допомогою чітко визначеного синтаксису. Повні подробиці див. у розділі 5 [Посібника користувача pdfTeX](http://mirrors.ctan.org/systems/doc/pdftex/manual/pdftex-a.pdf).
* **`.enc`** (кодування): за потреби цей тип файлу визначає зіставлення між кодами символів у вашому тексті LaTeX і відповідними формами символів (гліфами), що містяться у файлі шрифту.

### Приклад власного шрифту TrueType

Overleaf Galley містить проєкт, який [демонструє встановлення власного шрифту TrueType](https://www.overleaf.com/latex/examples/example-using-a-custom-truetype-font/yndxyzgbhpjv)—для шрифту PostScript Type 1 використовувалося б подібне налаштування. Він компілюється за допомогою pdfLaTeX, XeLaTeX і LuaLaTeX та створює такий вивід:

![Зображення, що показує набір тексту в Overleaf із використанням власного шрифту](/files/bce453003a80fbba83db5411bbe3d85b2131b67a)

#### Примітки до прикладного проєкту

* Він використовує таке `\pdfmapline` команди:

```latex
\pdfmapline{+delphine < Delphine.ttf <T1-WGL4.enc}
```

який пов’язує файл метрики шрифту TeX під назвою `delphine` з фізичним файлом шрифту під назвою `Delphine.ttf`.

* Перший `<` символ вказує pdfTeX підмножити шрифт TrueType; тобто, *частково* вбудувати цей шрифт у підсумковий PDF-файл. Створення підмножини шрифту дає менші PDF-файли, оскільки вони містять лише дані форм символів, потрібні для відображення символів, наявних у документі.
* Другий `<` символ стоїть перед назвою файла вектора кодування, `T1-WGL4.enc`, який використовується для зіставлення кодів символів у вашому тексті з даними форм символів (гліфами) у файлі шрифту — дані форм символів потрібні для відтворення (малювання) символу.
* LuaLaTeX потребує додаткового кроку налаштування, оскільки `\pdfmapline` створює **Невизначена керувальна послідовність** помилку через зміни в обробці певних команд backend у LuaTeX — у розділі 3 [Довідник LuaTeX](http://mirrors.ctan.org/systems/doc/luatex/luatex.pdf). `\ifLuaTeX` команду, надану `iftex` пакета використовується для перевірки на LuaTeX; якщо його виявлено, `\pdfmapline` визначається:

```latex
\ifLuaTeX
\protected\def\pdfmapline {\pdfextension mapline }
\fi
```

### Використання кількох шрифтів або комерційних шрифтів

Щоб керувати файлами, наданими постачальниками комерційних шрифтів, і колекціями безкоштовних для використання шрифтів, ви можете створити папки у своєму проєкті Overleaf для впорядкування файлів шрифтів за їхнім типом (`.tfm`, `.pfb`, `.ttf` тощо). Гарною моделлю для іменування й упорядкування ваших папок є [TeX Directory Structure (TDS)](https://www.tug.org/tds/tds.pdf), яка була розроблена як «схема» найкращих практик для керування набором файлів, пов’язаних із TeX.

Коли папки проєкту вже створено, далі потрібно створити так званий [`latexmcrc` файлу](/latex/uk/dokladni-statti/28-how-to-use-latexmkrc-with-overleaf.md) що містить інструкції, які кажуть компілятору LaTeX шукати файли в цих папках. За замовчуванням компілятори не знають, що ці папки існують, і не знайдуть файли, які вони містять.

#### Приклад проєкту Overleaf

Приклад із галереї Overleaf [Використання папок для керування файлами власних шрифтів](https://www.overleaf.com/latex/templates/example-using-folders-to-manage-custom-font-files/qvqgnpjxvqzd) використовує папки та `latexmkrc` файл для встановлення власного шрифту TrueType. Він містить структуру папок, показану на цьому зображенні:

![Упорядкування папок проєкту в Overleaf](/files/fb1796514bf404bd60a91c799938f4e7e917f6d8)

і `latexmkrc` файл, що містить наведені нижче рядки, які встановлюють змінні середовища виконання [змінні середовища](https://en.wikipedia.org/wiki/Environment_variable) і змушують компілятор LaTeX шукати файли в папках нашого проєкту:

```perl
$ENV{'TEXINPUTS'}='myfonts/tex//:' . $ENV{'TEXINPUTS'};
$ENV{'T1FONTS'}='myfonts/fonts/type1//:' . $ENV{'T1FONTS'};
$ENV{'AFMFONTS'}='myfonts/fonts/afm//:' . $ENV{'AFMFONTS'};
$ENV{'TEXFONTMAPS'}='myfonts/fonts/map//:' . $ENV{'TEXFONTMAPS'};
$ENV{'TFMFONTS'}='myfonts/fonts/tfm//:' . $ENV{'TFMFONTS'};
$ENV{'TTFONTS'}='myfonts/fonts/ttf//:' . $ENV{'TTFONTS'};
$ENV{'VFFONTS'}='myfonts/fonts/vf//:' . $ENV{'VFFONTS'};
$ENV{'ENCFONTS'}='myfonts/fonts/enc//:' . $ENV{'ENCFONTS'};
```

Якщо вам цікаво, які файли зазвичай розміщують у якій папці, подивіться [цю статтю](/latex/uk/dokladni-statti/06-an-introduction-to-kpathsea-and-how-tex-engines-search-for-files.md#table-listing-kpathsea-config-variables).

## Використання власних шрифтів із XeLaTeX і LuaLaTeX

### Використання шрифтів PostScript Type 1

Щоб використовувати застарілі шрифти PostScript Type 1 із XeLaTeX і LuaLaTeX, ви можете дотримуватися [рекомендацій для pdfLaTeX](#using-custom-fonts-with-pdflatex), тож ми не повторюватимемо ці деталі тут.

### Використання шрифтів OpenType

XeLaTeX і LuaLaTeX забезпечують широку підтримку для розширеного набору за допомогою шрифтів OpenType — як TrueType-, так і PostScript-варіантів — оскільки їхні базові рушії TeX, XeTeX і LuaHBTeX, мають вбудовані можливості для обробки технологій шрифтів OpenType, яких pdfTeX не має.

* **Примітка**: LuaLaTeX, через свій базовий рушій TeX (LuaHBTeX), має найрозвинутіші можливості роботи зі шрифтами серед усіх рушіїв TeX; однак обговорення цього виходить за межі цієї статті — докладніше див. розділи 6 і 12 [Довідник LuaTeX](https://ctan.org/pkg/luatex?lang=en).

Щоб використовувати шрифти OpenType з XeLaTeX і LuaLaTeX, потрібно завантажити [`fontspec`](https://ctan.org/pkg/fontspec?lang=en), потужний і насичений можливостями пакет, який надає інтерфейс до розширених можливостей набору шрифтів OpenType.

* **Примітка**: Вам не потрібно використовувати `\usepackage[T1]{fontenc}` (або `\usepackage[utf8]{inputenc}`) під час використання шрифтів OpenType з XeLaTeX або LuaLaTeX.

### Приклад: знайомство з fontspec

Процес є простим, оскільки встановлення шрифтів не потрібне — немає потреби в `.tfm`, `enc` або `.map` файлах і написанні визначень шрифтів (`.fd`) залишилося в минулому! Усе так просто:

1. Додайте такий рядок до преамбули вашого документа:

```latex
\usepackage{fontspec}
```

3. Виберіть значок завантаження файлу (![UploadIcon.png](/files/d78128096c3be73d6773d60867dc5b12bbb64e9b)), розташований над списком файлів.
4. Перетягніть шрифт(и) у вікно завантаження або виберіть їх на своєму комп’ютері, щоб додати шрифт(и) до вашого проєкту Overleaf.
5. Використайте одну з `fontspec` accents `\set*xxx*font` команд, щоб налаштувати й активувати шрифт(и).

Чудова `fontspec` документація до пакета містить безліч прикладів, які ви можете переглянути, тож тут ми зробимо все максимально просто, щоб допомогти вам почати. Наприклад, припустімо, що ви завантажили файл шрифту під назвою `CrimsonText-Regular.ttf`; після завантаження `fontspec` ви можете встановити основний шрифт тексту документа, написавши

```latex
\setmainfont{CrimsonText-Regular.ttf}
```

Ви також можете використовувати синтаксис на кшталт

```latex
\setmainfont{CrimsonText}[
Extension = .ttf,
UprightFont = *-Regular,
...]
```

Ви також можете оголосити нову сім’ю шрифтів для використання в довільних ситуаціях:

```latex
\newfontfamily{\crimson}{CrimsonText}
[Extension = .ttf, UprightFont = *-Regular, ...]
{\crimson Цей текст використовує шрифт CrimsonText}
```

#### Ресурси

* Функція [`fontspec` документація пакета](http://mirrors.ctan.org/macros/unicodetex/latex/fontspec/fontspec.pdf) обов’язкова до прочитання — вона не лише містить численні корисні приклади, а й багато корисної довідкової інформації про шрифти OpenType.
* Сторінка довідки Overleaf про [XeLaTeX](/latex/uk/shrifti/03-xelatex.md) містить [детальний приклад](/latex/uk/shrifti/03-xelatex.md#using-fonts-not-installed-on-overleaf27s-servers-google-fonts-example) який показує, як завантажити шрифти OpenType з Google і налаштувати їх за допомогою `fontspec`.

**Прикладні проєкти**

У Overleaf Galley є приклади проєктів, які демонструють використання шрифтів OpenType з XeLaTeX або LuaLaTeX — ви можете відкрити їх і перемикати компілятор між LuaLaTeX і XeLaTeX:

* [Використання шрифтів Google з XeLaTeX](https://www.overleaf.com/latex/templates/using-google-fonts-with-xelatex/xxkpcgfttjvd)
* [Використання шрифтів STIX2 OpenType з LuaLaTeX або XeLaTeX](https://www.overleaf.com/latex/templates/using-the-stix2-opentype-fonts-with-lualatex-or-xelatex/hdfvhzqmhnpx)

Наступне зображення поєднує результат, створений цими проєктами:

![Приклади проєктів Overleaf із використанням шрифтів OpenType](/files/60a101b271651b682dbdc7866b465d8f82bef859)

## Основи шрифтів і компілятора LaTeX

### Розширення файлів шрифтів

У таблиці нижче наведено розширення файлів, що використовуються для позначення різних типів (форматів) файлів шрифтів:

|                                                                                                                |                   |
| -------------------------------------------------------------------------------------------------------------- | ----------------- |
| **Тип шрифту**                                                                                                 | **Розширення**    |
| [PostScript Type 1](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1)$$\displaystyle{}^{\mathbf\*}$$      | `.pfb`            |
| [TrueType](https://en.wikipedia.org/wiki/TrueType)                                                             | `.ttf`            |
| [Колекції TrueType](https://learn.microsoft.com/en-us/typography/opentype/otspec150/otff#truetype-collections) | `.ttc`            |
| [OpenType](https://learn.microsoft.com/en-us/typography/opentype/)                                             | `.otf` або `.ttf` |

$$\displaystyle{}^{\mathbf\*}$$ У січні 2023 року всі авторські застосунки Adobe [припинили підтримку застарілого формату шрифтів Type 1](https://helpx.adobe.com/uk/fonts/kb/postscript-type-1-fonts-end-of-support.html).

Шрифти OpenType існують у двох «різновидах», які часто називають «flavours»: PostScript-варіант і TrueType-варіант — назви, що відображають дані та механізми, які використовуються для представлення наявних у них форм символів (гліфів). Саме тому шрифти OpenType мають два розширення файлів: `.otf` або `.ttf` які, за *домовленістю*, означають:

* `*filename*.otf` є шрифтом OpenType у варіанті PostScript
* `*filename*.ttf` є шрифтом OpenType у варіанті TrueType

Наприклад, pdfTeX припускає, що розширення `.otf` позначає шрифт OpenType у варіанті PostScript.

* **Примітка**: роль `.ttc` розширення використовується лише для колекцій шрифтів TrueType.

### Про розширення файлу .ttf

Якщо є файл шрифту з `.ttf` розширенням, це може бути або:

* старіший шрифт TrueType (не OpenType), або
* шрифт OpenType, що містить дані TrueType плюс додаткові можливості, які надає OpenType.

Визначити, чи є певний `.ttf` файл шрифту OpenType чи звичайним TrueType, може бути непросто; для цього застосункам потрібно перевіряти/досліджувати внутрішні структури даних шрифту. Докладніше див. [цю дискусію (тред)](https://typedrawers.com/discussion/2945/determine-whether-a-font-file-is-opentype-format-or-truetype-format) або цю [статтю Microsoft](https://learn.microsoft.com/en-us/typography/opentype/#why-is-my-opentype-font-listed-as-a-truetype-font-by-my-application).

### Формати шрифтів і компілятори LaTeX

У таблиці нижче підсумовано (основні) формати шрифтів, що підтримуються трьома компіляторами LaTeX (точніше, базовими рушіями TeX):

|                |                         |                                                            |                                                        |                                             |
| -------------- | ----------------------- | ---------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------- |
| **Компілятор** | **PostScript (Type 1)** | **TrueType (звичайний**$$\displaystyle{}^{\mathbf†}$$**)** | **OpenType (TrueType)**$$\displaystyle{}^{\mathbf\*}$$ | **OpenType (PostScript)**                   |
| pdfLaTeX       | Так                     | Так                                                        | Обмежена$$\displaystyle{}^{\mathbf{\*\*}}$$            | Обмежена$$\displaystyle{}^{\mathbf{\*\*}}$$ |
| XeLaTeX        | Так                     | Так                                                        | Так                                                    | Так                                         |
| LuaLaTeX       | Так                     | Так                                                        | Так                                                    | Так                                         |

$$\displaystyle{}^{\mathbf†}$$Під «звичайним» ми маємо на увазі шрифт TrueType, який не містить додаткових даних (таблиць), визначених специфікацією OpenType, і тому не має більш розширених можливостей набору, притаманних шрифтам OpenType у варіанті TrueType.

$$\displaystyle{}^{\mathbf\*}$$pdfTeX надає обмежену підтримку [Колекції TrueType](https://learn.microsoft.com/en-us/typography/opentype/otspec150/otff#truetype-collections) (розширення `.ttc`) — він прочитає дані лише для першого шрифту, що міститься в колекції.

$$\displaystyle{}^{\mathbf{\*\*}}$$Обмежена підтримка OpenType в pdfTeX означає:

* він не підтримує розширені можливості набору, що містяться у шрифтах OpenType;
* він створюватиме підмножину шрифтів OpenType у варіанті TrueType, але не шрифтів OpenType у варіанті PostScript, які мають бути вбудовані повністю. Відсутність створення підмножин шрифтів призводить до більших PDF-файлів і спричиняє ліцензійні проблеми з комерційними шрифтами, які зазвичай забороняють повне вбудовування;
* він не може використовувати більше ніж 256 символів на шрифт, тоді як окремі шрифти OpenType підтримують десятки тисяч;
* йому потрібне створення TeX-метрик шрифтів та інших допоміжних файлів (які потрібні LaTeX) — процеси, що виходять за межі цієї статті (див. [Додаткове читання](#further-reading) посилання на описи цих процесів).

## Додаткове читання

* [Як працює OpenType](https://simoncozens.github.io/fonts-and-layout/opentype.html) (автор — Simon Cozens).
* [Визначення, чи є файл шрифту форматом OpenType або форматом TrueType](https://typedrawers.com/discussion/2945/determine-whether-a-font-file-is-opentype-format-or-truetype-format)— обговорення складності визначення, чи є певний `.ttf` файл звичайним TrueType чи OpenType у варіанті TrueType.
* [Докладніший погляд на шрифти TrueType і pdfTeX](https://tug.org/TUGboat/tb30-1/tb94thanh.pdf)— стаття TUGboat, написана [Hàn Thế Thành](https://tug.org/interviews/thanh.html), творцем [pdfTeX](https://www.tug.org/applications/pdftex/).
* [Структура каталогів для файлів TeX](https://tug.org/tds/tds.html), стандартна ієрархія папок/каталогів для впорядкування файлів, пов’язаних із TeX.
* [Встановлення та використання шрифтів OpenType в LaTeX](https://www.tug.org/TUGboat/tb27-2/tb87owens.pdf)— стаття TUGboat, у якій пояснюється, як підготувати шрифти OpenType для використання з pdfLaTeX.
* [Як використовувати шрифти TrueType з PdfTeX за допомогою otftotfm?](https://tex.stackexchange.com/questions/52819/how-do-i-use-truetype-fonts-with-pdftex-using-otftotfm/52902#52902)— тред на tex.stackexchange із детальним прикладом.

### Примітка про «війни шрифтів»...

У 1980-х і 1990-х роках відбувалися так звані «війни шрифтів», коли два конкуруючі формати шрифтів — PostScript Type 1 (від Adobe) і TrueType (створений Apple, ліцензований Microsoft) — боролися за перевагу, щоб завоювати прихильність усіх користувачів, особливо дизайнерів і типографів. Зрештою, [формат шрифтів OpenType](https://learn.microsoft.com/en-us/typography/opentype) з’явився (у 1997 році) як гібридне рішення, що охоплює та розширює технології шрифтів Adobe і Apple. OpenType базується на початковому файловому форматі TrueType, щоб забезпечити розширені можливості набору та кращу підтримку Unicode за допомогою шрифтів, що містять понад 65 000 форм символів (гліфів).


---

# 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://ayakaleaf-pro.ayaka.space/latex/uk/zapitannya-ta-vidpovidi/58-i-have-a-custom-font-i-d-like-to-load-to-my-document.-how-can-i-do-this.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.
