Spec-Zone.ru › Elisp

Высота строки

Общая высота каждой строки отображения состоит из высоты содержимого строки, плюс дополнительный вертикальный интервал над или под строкой отображения.

Высота содержимого строки — это максимальная высота любого символа или изображения в этой строке отображения, включая конечный символ новой строки, если он есть. (Строка отображения, которая продолжается, не включает конечный символ новой строки.) Это значение высоты строки по умолчанию, если вы ничего не делаете, чтобы указать большую высоту. (В большинстве случаев это равно высоте соответствующего шрифта по умолчанию, см. Шрифт кадра.)

Существует несколько способов явно указать большую высоту строки, либо указав абсолютную высоту строки отображения, либо указав вертикальный отступ. Однако, независимо от того, что вы укажете, фактическая высота строки никогда не может быть меньше значения по умолчанию.

Символ новой строки может иметь свойство текста или наложения line-height, которое управляет общей высотой строки отображения, завершающейся этой новой строкой. Значение свойства может быть одним из нескольких форматов:

t

Если значение свойства равно t, символ новой строки не оказывает влияния на отображаемую высоту строки — высота определяется только видимым содержимым. Свойство line-spacing, описанное ниже, также игнорируется в этом случае. Это полезно для чередования небольших изображений (или фрагментов изображений) без добавления пустых областей между изображениями.

(height total)

Если значение свойства представляет собой список в указанном формате, он добавляет дополнительный отступ ниже строки отображения. Сначала Emacs использует height как спецификацию высоты для управления дополнительным отступом над строкой; затем он добавляет достаточно отступа ниже строки, чтобы общая высота строки достигла total. В этом случае любое значение свойства line-spacing для символа новой строки игнорируется.

Любое другое значение свойства — это спецификация высоты, которая преобразуется в число — указанную высоту строки. Существует несколько способов записать спецификацию высоты; вот как каждый из них преобразуется в число:

integer

Если спецификация высоты — положительное целое число, значение высоты равно этому целому числу.

float

Если спецификация высоты — число с плавающей точкой, float, числовая высота равна float умноженному на высоту строки по умолчанию кадра.

(face . ratio)

Если спецификация высоты — список в указанном формате, числовая высота равна ratio умноженному на высоту шрифта face. ratio может быть любым типом числа или nil, что означает отношение 1. Если face равно t, это относится к текущему шрифту.

(nil . ratio)

Если спецификация высоты — список в указанном формате, числовая высота равна ratio умноженному на высоту содержимого строки.

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

Если вы не укажете свойство line-height, высота строки состоит из высоты содержимого плюс интервал между строками. Существует несколько способов указать интервал между строками для различных частей текста Emacs.

На графических терминалах вы можете указать интервал между строками для всех строк в кадре, используя параметр кадра line-spacing (см. Параметры макета). Однако, если значение по умолчанию для line-spacing не nil, оно переопределяет параметр кадра line-spacing. Целое число задаёт количество пикселей, добавляемых под строками. Число с плавающей точкой задаёт отступ относительно высоты строки по умолчанию кадра.

Вы можете указать интервал между строками для всех строк в буфере через локальную переменную буфера line-spacing. Целое число задаёт количество пикселей, добавляемых под строками. Число с плавающей точкой задаёт отступ относительно высоты строки по умолчанию кадра. Это переопределяет интервалы между строками, указанные для кадра.

Наконец, символ новой строки может иметь свойство текста или наложения line-spacing, которое может увеличить интервал между строками по умолчанию для кадра и локальную переменную буфера line-spacing: если его значение больше, чем значения по умолчанию для буфера или кадра, используется это большее значение вместо них для строки отображения, заканчивающейся этой новой строкой.

Тем или иным способом эти механизмы задают значение Lisp для отступа каждой строки. Это значение — это спецификация высоты, и оно преобразуется в значение Lisp, как описано выше. Однако в этом случае числовое значение высоты задаёт интервал между строками, а не высоту строки.

На текстовых терминалах интервал между строками изменить нельзя.

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/Line-Height.html

Spec-Zone.ru

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