> 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/ru/shrifty/03-xelatex.md).

# Поддержка современных шрифтов с XƎLaTeX

## Введение

[XeTeX](https://tug.org/xetex/) — это движок вёрстки, основанный на оригинальном ПО TeX Дональда Кнута. Однако, в отличие от оригинальной программы Кнута, XeTeX нативно читает (вводит) текст Unicode, закодированный в UTF-8, и, с помощью встроенного [HarfBuzz](https://harfbuzz.github.io/) движка формирования, поддерживает современные форматы шрифтов, такие как [OpenType (OTF)](https://docs.microsoft.com/en-us/typography/opentype/) и [технология шрифтов Graphite от SIL](https://scripts.sil.org/cms/scripts/page.php?site_id=projects\&item_id=graphite_home). Соответствующий компилятор LaTeX [компилятор](/latex/ru/drugie-temy/08-choosing-a-latex-compiler.md) в Overleaf называется `xelatex`. Тем, кто хочет лучше понять эволюцию различных движков TeX, возможно, стоит прочитать статью Overleaf [Что в имени: руководство по многочисленным разновидностям TeX](/latex/ru/podrobnye-stati/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md).

## Основы: Times New Roman

Times New Roman — часто используемый шрифт, и вот пример его использования в Overleaf через компилятор XeLaTeX. В этом примере шрифт документа задаётся с помощью `\usemainfont{Times New Roman}`, где команда `\usemainfont{...}` предоставляется пакетом `fontspec`.

```latex
\documentclass[12pt]{article}
\usepackage{fontspec}

\setmainfont{Times New Roman}
\title{Sample font document}
\author{Overleaf}
\date{\today}

\begin{document}
\maketitle

Это \textit{пример} документа, скомпилированного
с \textbf{XeLaTeX}. LuaLaTeX тоже должен работать.

\end{document}
```

[Открытый пример Times New Roman с использованием XeLaTeX в Overleaf](https://www.overleaf.com/docs?engine=xelatex\&snip_name=Times+New+Roman+%28via+XeLaTeX%29\&snip=%5Cdocumentclass%5B12pt%5D%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A+%0A%5Csetmainfont%7BTimes+New+Roman%7D%0A%5Ctitle%7BSample+font+document%7D%0A%5Cauthor%7BOverleaf%7D%0A%5Cdate%7B%5Ctoday%7D%0A+++%0A%5Cbegin%7Bdocument%7D%0A%5Cmaketitle%0A+++++%0AThis+is+an+%5Ctextit%7Bexample%7D+of+a+document+compiled+%0Awith+%5Ctextbf%7BXeLaTeX%7D.+LuaLaTeX+should+also+work+too.%0A%0A%5Cend%7Bdocument%7D)

Этот пример выдаёт следующий результат:

![XeLaTeXOverleaf.png](/files/048ea743a6fefcdb48aa1f0b2637be840d108cb8)

Вы также можете [использовать LuaLaTeX для запуска того же кода](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Times+New+Roman+%28via+LuaLaTeX%29\&snip=%5Cdocumentclass%5B12pt%5D%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A+%0A%5Csetmainfont%7BTimes+New+Roman%7D%0A%5Ctitle%7BSample+font+document%7D%0A%5Cauthor%7BOverleaf%7D%0A%5Cdate%7B%5Ctoday%7D%0A+++%0A%5Cbegin%7Bdocument%7D%0A%5Cmaketitle%0A+++++%0AThis+is+an+%5Ctextit%7Bexample%7D+of+a+document+compiled+%0Awith+%5Ctextbf%7BLuaLaTeX%7D.%0A%0A%5Cend%7Bdocument%7D) .

## Настройка шрифтов для разных элементов LaTeX

Различные элементы в документе LaTeX форматируются разными шрифтами; например, в `verbatim` окружении текст отображается шрифтом пишущей машинки. Для каждого контекста можно задать разные стили шрифта:

```latex
\documentclass[12pt]{article}
\usepackage{fontspec}

%-----------------------------------------------------------------------
\setmainfont{Times New Roman}
\setsansfont{Arial}
\setmonofont[Color={0019D4}]{Courier New}
%-----------------------------------------------------------------------

\title{Sample font document}
\author{Overleaf}
\date{\today}
\begin{document}

\maketitle

Это \textit{пример} документа, скомпилированного с помощью
\textbf{XeLaTeX} компилятора. Если вам нужно написать какой-то код, вы можете
использовать окружение \texttt{verbatim}:

    \begin{verbatim}
    Обычно это окружение используется для отображения кода,
    так что вот простая программа на C.

    #include <stdio.h>
    #define NUMYAYS 10

    int main()
    {
        int i;
        for (i = 0; i <= NUMYAYS; i++)
        {
            printf("Ура! Overleaf — это здорово!\n");
        }
        return 0;
    }
    \end{verbatim}
    {\sffamily Это образец текста в \textbf{шрифте без засечек}}

\end{document}
```

[Чтобы увидеть результат, откройте этот пример XeLaTeX в Overleaf](https://www.overleaf.com/docs?engine=xelatex\&snip_name=Document+formatted+with+different+fonts\&snip=%5Cdocumentclass%5B12pt%5D%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%0A%25-----------------------------------------------------------------------%0A%5Csetmainfont%7BTimes+New+Roman%7D%0A%5Csetsansfont%7BArial%7D%0A%5Csetmonofont%5BColor%3D%7B0019D4%7D%5D%7BCourier+New%7D%0A%25-----------------------------------------------------------------------%0A%0A%5Ctitle%7BSample+font+document%7D%0A%5Cauthor%7BOverleaf%7D%0A%5Cdate%7B%5Ctoday%7D%0A%5Cbegin%7Bdocument%7D%0A++++%0A%5Cmaketitle%0A+++++%0AThis+an+%5Ctextit%7Bexample%7D+of+document+compiled+with+the++%0A%5Ctextbf%7BXeLaTeX%7D+compiler.+If+you+have+to+write+some+code+you+can+%0Ause+the+%5Ctexttt%7Bverbatim%7D+environment%3A%0A%0A++++%5Cbegin%7Bverbatim%7D%0A++++Usually+this+environment+is+used+to+display+code%2C+%0A++++so+here%27s+a+simple+C+program.%0A%0A++++%23include+%3Cstdio.h%3E%0A++++%23define+NUMYAYS+10%0A++++++%0A++++int+main%28%29%0A++++%7B%0A++++++++int+i%3B+++%0A++++++++for+%28i+%3D+0%3B+i+%3C%3D+NUMYAYS%3B+i%2B%2B%29+%0A++++++++%7B%0A++++++++++++printf%28%22Yay%21+Overleaf+is+Awesome%21%5Cn%22%29%3B%0A++++++++%7D%0A++++++++return+0%3B%0A++++%7D%0A++++%5Cend%7Bverbatim%7D%0A++++%7B%5Csffamily+This+is+a+sample+text+in+%5Ctextbf%7BSans+Serif+Font+Typeface%7D%7D%0A+++++++%0A%5Cend%7Bdocument%7D)

В предыдущем примере используются три разных шрифта; следующие строки определяют элементы, которые будут использовать эти шрифты:

**\setmainfont{Times New Roman}**

Это обычный шрифт, используемый в большей части документа, в примере — Times New Roman.

**\setsansfont{Arial}**

Элементы, которым требуется шрифт без засечек, явно указанные с помощью \ssfamily в примере, будут набраны шрифтом Arial.

**\setmonofont{Courier New}**

Всё, что должно быть оформлено моноширинным (похожим на шрифт пишущей машинки) шрифтом, будет использовать шрифт Courier New. У этой команды есть дополнительный необязательный параметр в фигурных скобках:

**Color={0019D4}**

Это задаёт цвет текста, используя значение Color= в шестнадцатеричном HTML-формате. Выборочное и аккуратное использование цвета текста может быть полезным при создании презентации.

## Шрифты в Overleaf

Существует [большое количество шрифтов, установленных в Overleaf](/latex/ru/voprosy-i-otvety/85-which-otf-or-ttf-fonts-are-supported-via-fontspec.md) которые вы можете использовать в своём проекте, проще всего через `fontspec`. Следующие примеры показывают использование шрифтов, входящих в серверы Overleaf, таких как Google Noto, вместе со шрифтами, которые нужно загружать из [Google Fonts](https://fonts.google.com/).

### Шрифты, установленные на серверах Overleaf: шрифты Google Noto

Поскольку [TeX Live](https://www.tug.org/texlive/)— который используется Overleaf — включает [шрифты Google Noto](https://www.google.com/get/noto/) вы можете использовать их через `fontspec` пакет в проектах Overleaf, скомпилированных с помощью компиляторов XeLaTeX или LuaLaTeX. Вот пример проекта, который использует [`noto` пакет](https://ctan.org/pkg/noto?lang=en) для настройки вашего документа для верстки семейств шрифтов NotoSerif, NotoSans и NotoSansMono. Документацию по `noto` пакету можно найти в его [файле readme на CTAN](http://mirrors.ctan.org/fonts/noto/README).

```latex
\documentclass{article}
\usepackage{xcolor}
\usepackage{noto}
\usepackage{hyperref}
\title{Using Google Noto fonts}
\author{Overleaf}
\date{April 2021}

\begin{document}

\maketitle

\section{Introduction}
Этот пример проекта использует пакет \href{https://ctan.org/pkg/noto?lang=en}{\color{blue}\texttt{noto}} для набора вашего документа шрифтами Noto от Google\footnote{\url{https://www.google.com/get/noto/}}:
\begin{itemize}
\item \verb|\textbf{bold}| produces \textbf{bold}
\item \verb|\textit{italic}| produces \textit{italic}
\item \verb|\textbf{\textit{bold italic}}| produces \textbf{\textit{bold italic}}
\item \verb|\emph{emphasis}| produces \emph{emphasis}
\item \verb|\textbf{\emph{bold italic}}| produces \textbf{\emph{bold italic}}
\end{itemize}

\subsection{Шрифты с фиксированной шириной}
Вы можете использовать моноширинные шрифты Noto для \texttt{обычного} и \texttt{\textbf{жирного}} моноширинного текста.

\subsection{Шрифты без засечек}
Вот \textsf{текст, набранный шрифтом без засечек}, а также \textbf{\textsf{текст, набранный жирным шрифтом без засечек}}.

\section{Дальнейшее чтение}
Документацию по пакету \texttt{noto} можно найти в его \href{http://mirrors.ctan.org/fonts/noto/README}{\color{blue}\texttt{readme}-файле на CTAN}.

\end{document}
```

[Откройте этот пример XeLaTeX в Overleaf, чтобы ознакомиться со шрифтами Noto](https://www.overleaf.com/docs?engine=xelatex\&snip_name=Using+Google+Noto+fonts\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxcolor%7D%0A%5Cusepackage%7Bnoto%7D%0A%5Cusepackage%7Bhyperref%7D%0A%5Ctitle%7BUsing+Google+Noto+fonts%7D%0A%5Cauthor%7BOverleaf%7D%0A%5Cdate%7BApril+2021%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cmaketitle%0A%0A%5Csection%7BIntroduction%7D%0AThis+example+project+uses+the+%5Chref%7Bhttps%3A%2F%2Fctan.org%2Fpkg%2Fnoto%3Flang%3Den%7D%7B%5Ccolor%7Bblue%7D%5Ctexttt%7Bnoto%7D%7D+package+to+typeset+your+document+using+Google%27s+Noto+fonts%5Cfootnote%7B%5Curl%7Bhttps%3A%2F%2Fwww.google.com%2Fget%2Fnoto%2F%7D%7D%3A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Ctextbf%7Bbold%7D%7C+produces+%5Ctextbf%7Bbold%7D%0A%5Citem+%5Cverb%7C%5Ctextit%7Bitalic%7D%7C+produces+%5Ctextit%7Bitalic%7D%0A%5Citem+%5Cverb%7C%5Ctextbf%7B%5Ctextit%7Bbold+italic%7D%7D%7C+produces+%5Ctextbf%7B%5Ctextit%7Bbold+italic%7D%7D%0A%5Citem+%5Cverb%7C%5Cemph%7Bemphasis%7D%7C+produces+%5Cemph%7Bemphasis%7D%0A%5Citem+%5Cverb%7C%5Ctextbf%7B%5Cemph%7Bbold+italic%7D%7D%7C+produces+%5Ctextbf%7B%5Cemph%7Bbold+italic%7D%7D%0A%5Cend%7Bitemize%7D%0A%0A%5Csubsection%7BMonospaced+fonts%7D%0AYou+can+use+Noto%27s+monospaced+fonts+for+%5Ctexttt%7Bregular%7D+and+%5Ctexttt%7B%5Ctextbf%7Bbold%7D%7D+monospaced+text.%0A%0A%5Csubsection%7BSans+serif+fonts%7D%0AHere+is+some+%5Ctextsf%7Btext+is+typeset+in+a+sans+serif+font%7D+together+with+%5Ctextbf%7B%5Ctextsf%7Btext+typeset+in+bold+sans+serif%7D%7D.%0A%0A%5Csection%7BFurther+reading%7D%0ADocumentation+for+the+%5Ctexttt%7Bnoto%7D+package+can+be+found+in+its+%5Chref%7Bhttp%3A%2F%2Fmirrors.ctan.org%2Ffonts%2Fnoto%2FREADME%7D%7B%5Ccolor%7Bblue%7D%5Ctexttt%7Breadme%7D+file+on+CTAN%7D.%0A%0A%5Cend%7Bdocument%7D)

![Использование шрифтов Google Noto для набора документа LaTeX](/files/3434866f8f47d7ea2e70d65a08299538b0a9486c)

### Использование шрифтов, не установленных на серверах Overleaf: пример с Google Fonts

Чтобы использовать шрифты OpenType, не установленные на серверах Overleaf, сначала нужно загрузить файлы шрифтов в ваш проект Overleaf — если лицензии на эти шрифты это разрешают. После загрузки шрифтов OpenType установите компилятор проекта на XƎLaTeX (или LuaLaTeX) и используйте `fontspec` для настройки ваших шрифтов.

Нижеописанный пример проекта показывает, как создавать папки, загружать шрифты и настраивать их с помощью `fontspec`. В нашем примере мы будем использовать следующий набор шрифтов из [Google Fonts](https://fonts.google.com/):

* Шрифт с засечками: [Brygada1918](https://fonts.google.com/specimen/Brygada+1918)
* Шрифт без засечек: [Asap](https://fonts.google.com/specimen/Asap)
* Моноширинный шрифт: [JetBrains Mono](https://fonts.google.com/specimen/JetBrains+Mono)

Примечание: Мы не утверждаем, что этот пример предлагает типографически гармоничное сочетание шрифтов; он лишь показывает, как загружать, настраивать и использовать выбранные вами шрифты.

Для каждого начертания вам нужно загрузить семейство шрифтов с Google Fonts:

![GoogleDownload.png](/files/39863e0aef8e95a02cd1e1be6b0efcdd949a0942)

Примечание: Некоторые шрифты Google доступны как «статические» шрифты OpenType и так называемые «переменные» шрифты OpenType. Если в загруженном ZIP-файле есть папка с названием «static», следует загружать шрифты из этой папки, а не версии переменных шрифтов:

![OpenTypeStatic.png](/files/62c0d4298225c32a168aaf7022e31c1eb982d65d)

Далее нужно загрузить файлы шрифтов в ваш проект, но поскольку семейства шрифтов содержат несколько файлов шрифтов, вы можете создать отдельные папки проекта Overleaf для хранения файлов — по одной папке на семейство шрифтов. Следующее видео показывает, как это сделать. Позже нам нужно будет указать XƎLaTeX, где найти шрифты вашего проекта, — потому что они не предустановлены на серверах Overleaf.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/4lQFkZ1Ni1FHFdHJUJSNH4/4aee7c5bafeb021a6f21b4637d0fe6ec/UploadingGoogleFonts.mp4>" %}

### Настройка fontspec для использования шрифтов

После загрузки файлов семейства шрифтов в папки проекта Overleaf мы можем настроить их для использования через `fontspec`. В следующем коде LaTeX обратите внимание, как мы использовали параметр `Path` чтобы указать `fontspec` , что файлы шрифтов находятся в локальной папке в файловой системе нашего проекта:

```latex
\setmainfont{Brygada1918}[
    Path=./BrygadaFontFiles/,
    Extension = .ttf,
    UprightFont=*-Regular,
    BoldFont=*-Bold,
    ItalicFont=*-Italic,
    BoldItalicFont=*-BoldItalic
    ]

\setsansfont{Asap}[
    Path=./AsapFontFiles/,
    Scale=0.9,
    Extension = .ttf,
    UprightFont=*-Regular,
    BoldFont=*-Bold,
    ItalicFont=*-Italic,
    BoldItalicFont=*-BoldItalic
    ]

\setmonofont{JetBrainsMono}[
    Path=./JetbrainsFontFiles/,
    Scale=0.85,
    Extension = .ttf,
    UprightFont=*-Regular,
    BoldFont=*-Bold,
    ItalicFont=*-Italic,
    BoldItalicFont=*-BoldItalic
    ]
```

![FontSpecPathUpdated.png](/files/cc053f10144994ad7ca03bbfa16ea683126e858d)

[Откройте демонстрационный пример XeLaTeX и Google Fonts в Overleaf](https://www.overleaf.com/project/new/template/31226?id=835225587\&templateName=XeLaTeX+font+demo+with+Google+Fonts\&latexEngine=xelatex\&texImage=texlive-full%3A2022.1\&mainFile=)

Это [`fontspec` пакет](https://ctan.org/pkg/fontspec?lang=en) предоставляет множество возможностей для настройки шрифтов OpenType для использования с LuaLaTeX или XƎLaTeX — его [отличная документация](http://mirrors.ctan.org/macros/unicodetex/latex/fontspec/fontspec.pdf) содержит множество примеров, которые вы можете изучить, чтобы точно настроить дизайн и набор ваших документов.

## Дополнительное чтение

Для получения дополнительной информации см.:

* [Полужирный, курсив и подчёркивание](/latex/ru/osnovy-latex/03-bold-italics-and-underlining.md)
* [Размеры, семейства и начертания шрифтов](/latex/ru/shrifty/01-font-sizes-families-and-styles.md)
* [Шрифтовые гарнитуры](/latex/ru/shrifty/02-font-typefaces.md)
* [Форматирование абзацев](/latex/ru/formatirovanie/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Переносы строк и пробелы](/latex/ru/formatirovanie/05-line-breaks-and-blank-spaces.md)
* [Выравнивание текста](/latex/ru/formatirovanie/06-text-alignment.md)
* [Несколько колонок](/latex/ru/formatirovanie/09-multiple-columns.md)
* [Управление в большом проекте](/latex/ru/struktura-dokumenta/07-management-in-a-large-project.md)
* [Многофайловые проекты LaTeX](/latex/ru/struktura-dokumenta/08-multi-file-latex-projects.md)
* [Поддержка международных языков](/latex/ru/yazyki/03-international-language-support.md)
* [Выбор компилятора LaTeX](/latex/ru/drugie-temy/08-choosing-a-latex-compiler.md)
* [Список шрифтов OTF и TTF, установленных в Overleaf](/latex/ru/voprosy-i-otvety/85-which-otf-or-ttf-fonts-are-supported-via-fontspec.md)
* [Коллекция шрифтов Google](http://www.google.com/fonts/)
* [`fontspec` руководство по пакету](http://tug.ctan.org/tex-archive/macros/latex/contrib/fontspec/fontspec.pdf)


---

# 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/ru/shrifty/03-xelatex.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.
