Выбор шрифта
Перед тем, как Emacs сможет отобразить символ на графическом экране, он должен выбрать шрифт для этого символа26. Смотрите Шрифты в Руководстве по GNU Emacs. Обычно Emacs автоматически выбирает шрифт на основе стилей, назначенных этому символу — конкретно, атрибутов стиля :family, :weight, :slant, и :width (см. Атрибуты стиля). Выбор шрифта также зависит от символа, который нужно отобразить; некоторые шрифты могут отображать только ограниченный набор символов. Если ни один доступный шрифт не соответствует требованиям, Emacs ищет наиболее подходящий шрифт. Переменные в этом разделе управляют тем, как Emacs осуществляет этот выбор.
- Пользовательская опция: face-font-family-alternatives
-
Если задана определённая семейство шрифтов, но оно не существует, эта переменная указывает альтернативные семейства шрифтов, которые нужно попробовать. Каждый элемент должен иметь следующий вид:
(family alternate-families…)
Если family задано, но не доступно, Emacs будет последовательно пробовать другие семейства, указанные в alternate-families, пока не найдёт семейство, которое существует.
- Пользовательская опция: face-font-selection-order
-
Если нет шрифта, который точно соответствует всем требуемым атрибутам стиля (
:width,:height,:weight, и:slant), эта переменная определяет порядок, в котором эти атрибуты должны рассматриваться при выборе наиболее подходящего шрифта. Значение должно быть списком, содержащим эти четыре символа атрибутов в порядке убывания важности. По умолчанию значение равно(:width :height :weight :slant).Выбор шрифта сначала находит лучшие доступные совпадения для первого атрибута в списке; затем среди шрифтов, которые лучше всего подходят по этому атрибуту, ищет лучшие совпадения по второму атрибуту и так далее.
Атрибуты
:weightи:widthимеют символьные значения в диапазоне, сосредоточенном вокругnormal. Совпадения, которые более экстремальны (дальше отnormal), несколько предпочтительнее, чем совпадения, которые менее экстремальны (ближе кnormal); это предназначено для того, чтобы обеспечить контраст между нестандартными стилями и стандартными, когда это возможно.Один пример, где эта переменная имеет значение, — когда у стандартного шрифта нет варианта курсивом. При стандартном порядке, стиль
italicбудет использовать не курсивный шрифт, похожий на стандартный. Но если вы поместите:slantперед:height, стильitalicбудет использовать курсивный шрифт, даже если его высота не совсем правильная.
- Пользовательская опция: face-font-registry-alternatives
-
Эта переменная позволяет указать альтернативные реестры шрифтов, которые следует попробовать, если заданный реестр не существует. Каждый элемент должен иметь следующий вид:
(registry alternate-registries…)
Если registry задан, но не доступен, Emacs будет последовательно пробовать другие реестры, указанные в alternate-registries, пока не найдёт реестр, который существует.
Emacs может использовать масштабируемые шрифты, но по умолчанию он их не использует.
- Пользовательская опция: scalable-fonts-allowed
-
Эта переменная управляет использованием масштабируемых шрифтов. Значение
nil, по умолчанию, означает не использовать масштабируемые шрифты.tозначает использовать любой масштабируемый шрифт, который кажется подходящим для текста.В противном случае значение должно быть списком регулярных выражений. Тогда масштабируемый шрифт разрешается использовать, если его имя соответствует любому регулярному выражению в списке. Например,
(setq scalable-fonts-allowed '("iso10646-1$"))разрешает использование масштабируемых шрифтов с реестром
iso10646-1.
- Переменная: face-font-rescale-alist
-
Эта переменная указывает масштабирование для определённых стилей. Её значение должно быть списком элементов вида
(fontname-regexp . scale-factor)
Если fontname-regexp соответствует имени шрифта, который будет использоваться, это говорит о выборе более крупного аналогичного шрифта согласно фактору scale-factor. Вы можете использовать эту функцию для нормализации размера шрифта, если некоторые шрифты больше или меньше, чем предполагают их номинальные высота и ширина.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Font-Selection.html