Spec-Zone.ru › Elisp

Атрибуты лица

Атрибуты лица определяют визуальный вид лица. В следующей таблице перечислены все атрибуты лица, их возможные значения и их влияние.

Помимо значений, приведенных ниже, каждый атрибут лица может иметь значение unspecified. Это специальное значение означает, что лицо не указывает этот атрибут напрямую. Атрибут unspecified сообщает Emacs обращаться к родительскому лицу (см. описание атрибута :inherit ниже); или, если это не удаётся, к основному лицу (см. Отображение лиц). Лицо default должно указывать все атрибуты.

Некоторые из этих атрибутов имеют смысл только на определённых типах отображения. Если ваше устройство не поддерживает определённый атрибут, он игнорируется.

:family

Название семейства шрифтов (строка). Подробнее см. Шрифты в Руководстве пользователя GNU Emacs. Функция font-family-list (см. ниже) возвращает список доступных названий семейств.

:foundry

Название производителя шрифтов для семейства шрифтов, указанного атрибутом :family (строка). См. Шрифты в Руководстве пользователя GNU Emacs.

:width

Относительная ширина символов. Должно быть одно из значений ultra-condensed, extra-condensed, condensed, semi-condensed, normal, semi-expanded, expanded, extra-expanded или ultra-expanded.

:height

Высота шрифта. В простейшем случае — целое число в единицах 1/10 пункта.

Значение также может быть дробным или функцией, которая определяет высоту относительно базового шрифта (см. Отображение шрифтов). Дробное значение указывает величину масштабирования высоты базового шрифта. Значение функции вызывается с одним аргументом — высотой базового шрифта, и возвращает высоту нового шрифта. Если функции передаётся целое число, она должна вернуть целое число.

Высота стандартного шрифта должна указываться целым числом; дробные значения и функции недопустимы.

:weight

Начертание шрифта — одно из значений (от самого плотного до самого слабого) ultra-bold, extra-bold, bold, semi-bold, normal, semi-light, light, extra-light или ultra-light. На терминалах, поддерживающих переменную яркость текста, любое начертание, более толстое, чем стандартное, отображается как очень яркое, а любое начертание, более тонкое, чем стандартное, — как полуяркое.

:slant

Наклон шрифта — одно из значений italic, oblique, normal, reverse-italic или reverse-oblique. На терминалах, поддерживающих переменную яркость текста, наклонный текст отображается как полуяркий.

:foreground

Цвет переднего плана, строка. Значение может быть именем системного цвета или шестнадцатеричным представлением цвета. См. Имена цветов. На черно-белых дисплеях некоторые оттенки серого реализуются узорами.

:distant-foreground

Альтернативный цвет переднего плана, строка. Это похоже на :foreground, но цвет используется только как цвет переднего плана, когда цвет фона близок к цвету переднего плана, который должен был бы использоваться. Это полезно, например, при выделении текста (например, область выделения). Если текст имеет цвет переднего плана, который виден с цветом области выделения, используется этот цвет переднего плана. Если цвет переднего плана близок к цвету фона области выделения, используется :distant-foreground, чтобы текст был читаемым.

:background

Цвет фона, строка. Значение может быть именем системного цвета или шестнадцатеричным представлением цвета. См. Имена цветов.

:underline

Подчёркивание символов и способ подчёркивания. Возможные значения атрибута :underline:

nil

Без подчёркивания.

t

Подчёркивание цветом переднего плана шрифта.

color

Подчёркивание цветом color, строкой, задающей цвет.

(:color color :style style)

color — это строка или символ foreground-color, означающий цвет переднего плана шрифта. Опускание атрибута :color означает использование цвета переднего плана шрифта. style должен быть символом line или wave, означающим использование сплошной или волнистой линии. Опускание атрибута :style означает использование сплошной линии.

:overline

Надчеркивание символов и цвет. Если значение равно t, надчеркивание использует цвет переднего плана шрифта. Если значение — строка, надчеркивание использует указанный цвет. Значение nil означает отсутствие надчёркивания.

:strike-through

Зачеркивание символов и цвет. Значение используется как в атрибуте :overline.

:box

Отображение рамки вокруг символов, её цвет, толщина линий рамки и 3D-эффект. Возможные значения атрибута :box и их значение:

nil

Без рамки.

t

Рамка с линиями толщиной 1 пиксель в цвете переднего плана.

color

Рамка с линиями толщиной 1 пиксель в цвете color.

(:line-width (vwidth . hwidth) :color color :style style)

Этот способ позволяет явно указать все аспекты рамки. Значения vwidth и hwidth указывают соответственно ширину вертикальных и горизонтальных линий; по умолчанию они равны (1 . 1). Отрицательная горизонтальная или вертикальная ширина -n означает рисование линии шириной n, занимающей пространство подлежащего текста, что предотвращает увеличение высоты или ширины символов. Для упрощения ширина может быть указана одним числом n вместо списка, в этом случае это эквивалентно ((abs n) . n).

Значение style указывает, рисовать ли 3D-рамку. Если это released-button, рамка выглядит как 3D-кнопка, которая не нажата. Если это pressed-button, рамка выглядит как 3D-кнопка, которая нажата. Если это nil, flat-button или опущено, используется простая 2D-рамка.

Значение color задаёт цвет рисования. По умолчанию для 3D-рамок и flat-button — цвет фона шрифта, для других рамок — цвет переднего плана шрифта.

:inverse-video

Использование инверсии цветов. Должно быть t (да) или nil (нет).

:stipple

Узор фона, растровое изображение.

Значение может быть строкой — именем файла с внешним форматом данных растрового изображения X. Файл находится в каталогах, перечисленных в переменной x-bitmap-file-path.

Альтернативно, значение может задать растровое изображение напрямую в виде списка вида (width height data). Здесь width и height задают размер в пикселях, а data — строка, содержащая сырые биты растрового изображения, построчно. Каждая строка занимает (width + 7) / 8 последовательных байтов в строке (которая должна быть строкой с байтами для наилучших результатов). Это означает, что каждая строка всегда занимает как минимум один целый байт.

Если значение равно nil, это означает, что узор фона не используется.

Обычно задавать атрибут узора фона не требуется, поскольку он используется автоматически для обработки определённых оттенков серого.

:font

Шрифт, используемый для отображения шрифта. Значение должно быть объектом шрифта или набором шрифтов. Если это объект шрифта, то он задаёт шрифт, используемый шрифтом для отображения символов ASCII. Подробнее о шрифтовых объектах, спецификациях шрифтов и сущностях шрифтов см. Шрифт низкого уровня. Подробнее о наборах шрифтов см. Наборы шрифтов.

При указании этого атрибута с помощью set-face-attribute или set-face-font (см. Функции атрибутов), вы также можете указать спецификацию шрифта, сущность шрифта или строку. Emacs преобразует такие значения в соответствующий объект шрифта и сохраняет этот объект шрифта как фактическое значение атрибута. Если вы указываете строку, содержимое строки должно быть именем шрифта (см. Шрифты в Руководстве пользователя GNU Emacs); если имя шрифта представляет собой XLFD, содержащее подстановочные знаки, Emacs выбирает первый шрифт, соответствующий этим подстановочным знакам. Указание этого атрибута также изменяет значения атрибутов :family, :foundry, :width, :height, :weight и :slant.

:inherit

Имя шрифта, унаследующего атрибуты, или список имён шрифтов. Атрибуты унаследованных шрифтов объединяются со шрифтом, как если бы был базовый шрифт, с более высоким приоритетом, чем базовые шрифты (см. Отображение шрифтов). Если наследование происходит от шрифта unspecified, это обрабатывается так же, как nil, поскольку Emacs никогда не объединяет атрибуты :inherit. Если используется список шрифтов, атрибуты шрифтов, расположенных раньше в списке, переопределяют атрибуты шрифтов, расположенных позже.

:extend

Указывает, будет ли шрифт расширяться за пределы конца строки и повлияет ли это на отображение пустого пространства между концом строки и краем окна. Должно быть значение t, чтобы отображать пустое пространство между концом строки и краем окна с использованием этого шрифта, или nil, чтобы не использовать этот шрифт для пространства между концом строки и краем окна. При объединении Emacs нескольких шрифтов для отображения пустого пространства за пределами конца строки, будут объединены только те шрифты, у которых :extend не nil. По умолчанию этот атрибут установлен только для небольшого числа шрифтов, в частности, для region. Этот атрибут отличается от других тем, что, когда тема не указывает явного значения для шрифта, значение из исходного определения шрифта defface наследуется (см. Определение шрифтов).

Некоторые режимы, например hl-line-mode, используют шрифт с свойством :extend для выделения всей текущей строки. Однако обратите внимание, что Emacs всегда позволяет перемещать точку за последний символ в буфере, и если буфер заканчивается символом новой строки, точка может быть помещена на то, что кажется строкой в конце буфера — но Emacs не может выделить эту «строку», потому что она фактически не существует.

Функция: font-family-list &optional frame

Эта функция возвращает список доступных имён семейств шрифтов. Необязательный аргумент frame указывает окно, в котором должен отображаться текст; если он равен nil, используется выбранное окно.

Параметр пользователя: underline-minimum-offset

Эта переменная задаёт минимальное расстояние между базовой линией и нижней линией подчёркивания в пикселях при отображении подчёркнутого текста.

Параметр пользователя: x-bitmap-file-path

Эта переменная задаёт список каталогов для поиска файлов растровых изображений для атрибута :stipple.

Функция: bitmap-spec-p объект

Возвращает t, если объект является допустимой спецификацией растрового изображения, подходящей для использования с :stipple (см. выше). В противном случае возвращает nil.

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/Face-Attributes.html

Spec-Zone.ru

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