Spec-Zone.ru › Elisp

Выбор шрифта

Перед тем, как 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API