Файл шрифта рядом с проектом

Спецификация шрифта Путь для локальных семейств otf или ttf.

Файл шрифта рядом с проектом

Предположим, в вашей диссертации используется шрифт, который не установлен на каждой машине, которая когда-либо будет ее компилировать: на ноутбуке соавтора, на университетском сервере сборки или на вашем собственном компьютере после переустановки. Установка шрифта для всей системы на каждом из них ненадежна и иногда не разрешена. Поместите файлы шрифтов в папку проекта и вместо этого укажите на них fontspec, чтобы документ имел собственную типографику. Для этого требуется XeLaTeX или LuaLaTeX, поскольку fontspec не работает в pdfLaTeX. Причины описаны в почему люди переходят на XeLaTeX.

\usepackage{fontspec}
\setmainfont{MyFont}[
Path = ./fonts/,
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic
]

Что делает каждая клавиша

\setmainfont{MyFont} объявляет основное семейство текста и присваивает ему базовое имя, используемое для создания имен файлов. Path = ./fonts/ сообщает fontspec искать файлы в папке fonts внутри проекта, относительно основного файла .tex, вместо того, чтобы запрашивать операционную систему. Extension = .otf указывает тип файла один раз, поэтому его не нужно повторять для каждого файла. Используйте .ttf, если это то, что у вас есть.

Остальные клавиши сопоставляют формы шрифтов с файлами. В каждом из них * расширяется до базового имени, поэтому UprightFont = *-Regular разрешается в MyFont-Regular.otf, а также MyFont-Bold.otf и MyFont-Italic.otf. Эти имена должны точно соответствовать реальным именам файлов, включая заглавные буквы, поскольку на серверах Linux регистр имеет значение, даже если ваша локальная система его допускает. Если семейство выделено жирным курсивом, добавьте BoldItalicFont = *-BoldItalic. Фигура, которую вы не сопоставляете, — это форма, которую документ не может использовать: без строки BoldFont \textbf не на что переключиться, и компилятор предупреждает, что фигура, выделенная жирным шрифтом, не определена.

Тот же синтаксис работает для других семейств, поэтому \setsansfont и \setmonofont принимают идентичные блоки опций для локального шрифта без засечек или кодового шрифта.

Лицензирование и переносимость

Отправляйте файлы шрифтов вместе с проектом только в том случае, если лицензия допускает повторное распространение. Открытые лицензии, такие как SIL Open Font License, разрешают это, и шрифты из Google Fonts, как правило, соответствуют критериям, но коммерческие шрифты обычно запрещают передачу копий соавторам, и в этом случае каждому компьютеру необходима собственная лицензионная копия, и вам следует задокументировать это требование в файле readme проекта.

Распространенной ошибкой является молчаливое несоответствие между заявленными именами и файлами, часто после переименования папки или загрузки веса с другим именем. Затем компиляция останавливается с сообщением «Невозможно найти шрифт MyFont-Regular». Когда это произойдет, сравните ожидаемое имя файла по символу с содержимым папки и убедитесь, что «Путь» по-прежнему указывает, где находятся файлы. Поскольку встроенный в Oleafly движок Tectonic основан на XeTeX, этот локальный для проекта шаблон работает там без установки системных шрифтов.

Вернуться к Гарнитуры