Функции атрибутов шрифта
В этом разделе описаны функции для прямого доступа и изменения атрибутов указанного шрифта.
- Функция: face-attribute face attribute &optional frame inherit
-
Эта функция возвращает значение атрибута attribute для шрифта face на frame. См. Атрибуты шрифтов, для поддерживаемых атрибутов.
Если frame опущено или
nil, это означает выбранную рамку (см. Фокус ввода). Если framet, эта функция возвращает значение указанного атрибута для вновь созданных рамок, т.е. значение атрибута до применения спецификации шрифта в определении шрифта 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. Если framenil, эта функция устанавливает атрибуты для всех существующих рамок, а также для вновь созданных. Однако если вы хотите *сбросить* значение атрибута в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-pnil, и в bold в противном случае.
- Функция: set-face-italic face italic-p &optional frame
Эта функция устанавливает атрибут
:slantшрифта face в normal, если italic-pnil, и в 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или опущен. Если framet, функция сообщает о шрифте по умолчанию для шрифта 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