Документация Engee

Шрифты

Страница в процессе перевода.

В Makie для поддержки шрифтов используется пакет FreeType.jl, поэтому большинство загружаемых им шрифтов также должны поддерживаться в Makie. Шрифты можно выбирать различными способами.

Строка

При передаче строки String в качестве шрифта она может разрешаться либо в имя файла шрифта, либо в название самого шрифта (семейство шрифтов плюс стиль) или его часть. При сопоставлении с названием шрифта регистр символов не учитывается и допускаются частичные совпадения.

font_by_path = "/some/path/to/a/font_file.ttf"
font_by_name = "TeX Gyre Heros Makie"

Чтобы узнать, в какой именно шрифт разрешилась строка, выполните Makie.to_font(the_string):

using Makie
Makie.to_font("Blackchancery")

FTFont (family = BlackChancery, style = Regular)

Символ

Символ Symbol разрешается путем его поиска в атрибуте fonts элемента text. В теме по умолчанию заданы следующие шрифты.

using Makie
Makie.theme(:fonts)
Attributes with 4 entries:
    bold => TeX Gyre Heros Makie Bold
    bold_italic => TeX Gyre Heros Makie Bold Italic
    italic => TeX Gyre Heros Makie Italic
    regular => TeX Gyre Heros Makie

Поэтому выбрать шрифт из этого набора можно, например, так: font = :bold_italic. Преимущество этого способа в том, что шрифты можно устанавливать, не прописывая их жестко в каждом месте использования text, а на верхнем уровне.

Изменять или добавлять ключи в наборе шрифтов можно с помощью set_theme!, with_theme, update_theme! или путем их передачи в конструктор Figure. Вот пример:

using CairoMakie
f = Figure(fontsize = 24, fonts = (; regular = "Dejavu", weird = "Blackchancery"))
Axis(f[1, 1], title = "A title", xlabel = "An x label", xlabelfont = :weird)

f
c3610f3

Эмодзи и цветные шрифты

В настоящее время Makie не поддерживает отображение эмодзи. Это связано с реализацией отрисовки текста в GLMakie и WGLMakie, которая опирается на поля расстояний со знаком, которые можно использовать для отрисовки только монохромных глифов, но не произвольных растровых изображений.

Разноцветные шрифты, как в проекте color fonts, в настоящее время не поддерживаются. Цветной текст поддерживается посредством форматированного текста. Если вы хотите использовать эмодзи в качестве маркеров рассеяния, можно воспользоваться изображениями (потребуется найти подходящие изображения самостоятельно; в Makie нельзя легко извлечь эмодзи из шрифтов).