Spec-Zone.ru › Elisp

Функции атрибутов шрифта

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

Функция: face-attribute face attribute &optional frame inherit

Эта функция возвращает значение атрибута attribute для шрифта face на frame. См. Атрибуты шрифтов, для поддерживаемых атрибутов.

Если frame опущено или nil, это означает выбранную рамку (см. Фокус ввода). Если frame t, эта функция возвращает значение указанного атрибута для вновь созданных рамок, т.е. значение атрибута до применения спецификации шрифта в определении шрифта face (см. Определение шрифтов) или спецификации, установленной face-spec-set. Это значение по умолчанию для attribute обычно unspecified, если вы не указали другое значение с помощью set-face-attribute; см. ниже.

Если inherit nil, учитываются только атрибуты, непосредственно определённые face, поэтому возвращаемое значение может быть unspecified, или относительным значением. Если inherit не nil, определение attribute шрифта face объединяется с шрифтами, указанными атрибутом :inherit; однако возвращаемое значение может всё ещё быть unspecified или относительным. Если inherit является шрифтом или списком шрифтов, результат дополнительно объединяется с этим шрифтом (или шрифтами), пока он не станет определённым и абсолютным.

Чтобы гарантировать, что возвращаемое значение всегда определено и абсолютно, используйте значение default для inherit; это позволит разрешить любые неопределённые или относительные значения путём объединения со шрифтом default (который всегда полностью определён).

Например,

(face-attribute 'bold :weight)
     ⇒ bold
Функция: face-attribute-relative-p attribute value

Эта функция возвращает не-nil, если value, используемое как значение атрибута шрифта attribute, является относительным. Это означает, что оно будет изменять, а не полностью переопределять, любое значение, полученное от последующего шрифта в списке шрифтов или унаследованное от другого шрифта.

unspecified является относительным значением для всех атрибутов. Для :height, числа с плавающей точкой и значения функций также являются относительными.

Например:

(face-attribute-relative-p :height 2.0)
     ⇒ t
Функция: face-all-attributes face &optional frame

Эта функция возвращает список атрибутов шрифта face. Элементы результата — пары имя-значение формата (attr-name . attr-value). Необязательный аргумент frame указывает рамку, чьё определение face нужно вернуть; если опущено или nil, возвращаемое значение описывает атрибуты шрифта face по умолчанию для вновь созданных рамок, т.е. значения этих атрибутов до применения спецификации шрифта в определении шрифта face или спецификации, установленной face-spec-set. Эти значения атрибутов по умолчанию обычно unspecified, если вы не указали другое значение с помощью set-face-attribute; см. ниже.

Функция: merge-face-attribute attribute value1 value2

Если value1 — относительное значение для атрибута шрифта attribute, возвращает его, объединённое с базовым значением value2; в противном случае, если value1 — абсолютное значение для атрибута шрифта attribute, возвращает value1 без изменений.

Обычно Emacs использует спецификации шрифтов каждого шрифта для автоматического вычисления его атрибутов в каждой рамке (см. Определение шрифтов). Функция set-face-attribute может переопределить это вычисление, напрямую назначив атрибуты шрифту, либо для конкретной рамки, либо для всех рамок. Эта функция предназначена в основном для внутреннего использования.

Функция: set-face-attribute face frame &rest arguments

Эта функция устанавливает один или несколько атрибутов face для frame. Установленные таким образом атрибуты переопределяют спецификацию(и) шрифта, принадлежащую face. См. Атрибуты шрифтов, для поддерживаемых атрибутов.

Дополнительные аргументы arguments задают атрибуты для установки и их значения. Они должны состоять из чередующихся имён атрибутов (например, :family или :underline) и значений. Таким образом,

(set-face-attribute 'foo nil :weight 'bold :slant 'italic)

устанавливает атрибут :weight в bold и атрибут :slant в italic.

Если frame t, эта функция устанавливает атрибуты по умолчанию для вновь созданных рамок; они фактически переопределят значения атрибутов, указанные в defface. Если frame nil, эта функция устанавливает атрибуты для всех существующих рамок, а также для вновь созданных. Однако если вы хотите *сбросить* значение атрибута в unspecified таким образом, чтобы это также повлияло на вновь созданные рамки, вы *должны* явно вызвать эту функцию с frame установленным в t и значением атрибута, установленным в unspecified (не nil!), в дополнение к вызову с frame установленным в nil. Это происходит потому, что атрибуты по умолчанию для вновь созданных рамок объединяются со спецификацией шрифта в defface при создании новой рамки, и поэтому наличие unspecified в атрибутах по умолчанию для новых рамок не сможет переопределить defface; специальный вызов этой функции, как описано выше, обеспечит переопределение defface.

Следующие команды и функции в основном обеспечивают совместимость со старыми версиями Emacs. Они работают, вызывая set-face-attribute. Значения t и nil (или пропущенные) для их аргумента frame обрабатываются так же, как set-face-attribute и face-attribute. Команды считывают свои аргументы с помощью минибуфера, если вызваны интерактивно.

Команда: set-face-foreground face color &optional frame
Команда: set-face-background face color &optional frame

Эти команды устанавливают атрибут :foreground (соответственно атрибут :background) шрифта face в color.

Команда: set-face-stipple face pattern &optional frame

Это устанавливает атрибут :stipple шрифта face в pattern.

Команда: set-face-font face font &optional frame

Изменить шрифт атрибутов face на шрифт font (строка или объект шрифта). См. face-font-attribute, для поддерживаемых форматов аргумента font. Эта функция устанавливает атрибут :font шрифта, и косвенно также атрибуты :family, :foundry, :width, :height, :weight и :slant, как определено шрифтом. Если frame не-nil, изменить атрибуты только в указанной рамке.

Функция: set-face-bold face bold-p &optional frame

Эта функция устанавливает атрибут :weight шрифта face в normal, если bold-p nil, и в bold в противном случае.

Функция: set-face-italic face italic-p &optional frame

Эта функция устанавливает атрибут :slant шрифта face в normal, если italic-p nil, и в italic в противном случае.

Команда: set-face-underline face underline &optional frame

Это устанавливает атрибут :underline шрифта face в underline.

Команда: set-face-inverse-video face inverse-video-p &optional frame

Это устанавливает атрибут :inverse-video шрифта face в inverse-video-p.

Команда: invert-face face &optional frame

Это меняет местами цвета переднего и заднего плана шрифта face.

Команда: set-face-extend face extend &optional frame

Это устанавливает атрибут :extend шрифта face в extend.

Следующие функции проверяют атрибуты шрифта. Они в основном обеспечивают совместимость со старыми версиями Emacs. Если вы не указываете frame, они относятся к выбранной рамке; t относится к данным по умолчанию для новых рамок. Они возвращают unspecified если шрифт не определяет значение для этого атрибута. Если inherit nil, возвращается только атрибут, непосредственно определённый шрифтом. Если inherit не-nil, учитываются также шрифты, указанные его атрибутом :inherit, а если inherit — шрифт или список шрифтов, они также учитываются, пока не будет найден определённый атрибут. Чтобы гарантировать, что возвращаемое значение всегда определено, используйте значение default для inherit.

Функция: face-font face &optional frame character

Эта функция возвращает имя шрифта, используемого указанным шрифтом face.

Если необязательный аргумент frame указан, он возвращает имя шрифта face для этой рамки; frame по умолчанию равен выбранной рамке, если он nil или опущен. Если frame t, функция сообщает о шрифте по умолчанию для шрифта face, используемого для новых рамок.

По умолчанию возвращаемый шрифт предназначен для отображения символов ASCII, но если frame — что-то кроме t, и необязательный третий аргумент character предоставлен, функция возвращает имя шрифта, используемого шрифтом face для этого символа.

Функция: face-foreground face &optional frame inherit

Эти функции возвращают цвет переднего плана (или фона, соответственно) лица face в виде строки. Если цвет не указан, они возвращают nil.

Функция: face-background face &optional frame inherit

Эти функции возвращают цвет переднего плана (или фона, соответственно) лица face в виде строки. Если цвет не указан, они возвращают nil.

Функция: face-stipple face &optional frame inherit

Эта функция возвращает имя рисунка точек фона лица face, или nil если его нет.

Функция: face-bold-p face &optional frame inherit

Эта функция возвращает значение отличное от nil, если атрибут :weight лица face выделен жирным шрифтом (т.е., один из semi-bold, bold, extra-bold, или ultra-bold). В противном случае возвращается nil.

Функция: face-italic-p face &optional frame inherit

Эта функция возвращает значение отличное от nil, если атрибут :slant лица face имеет значение italic или oblique, и nil в противном случае.

Функция: face-underline-p face &optional frame inherit

Эта функция возвращает значение отличное от nil, если лицо face задает атрибут nil :underline.

Функция: face-inverse-video-p face &optional frame inherit

Эта функция возвращает значение отличное от nil, если лицо face задает атрибут nil :inverse-video.

Функция: face-extend-p face &optional frame inherit

Эта функция возвращает значение отличное от nil, если лицо face задает атрибут nil :extend. Аргумент inherit передается в face-attribute.

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/Attribute-Functions.html

Spec-Zone.ru

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