Символы-блоки , также известные как символы-линии , являются формой полуграфики, широко используемой в текстовых пользовательских интерфейсах для рисования различных геометрических рамок и блоков. Эти символы характеризуются тем, что они разработаны для горизонтального и/или вертикального соединения с соседними символами, что требует правильного выравнивания. Символы-блоки, таким образом, обычно хорошо работают только с моноширинными шрифтами .
В графических пользовательских интерфейсах эти символы гораздо менее полезны, поскольку проще и уместнее рисовать линии и прямоугольники напрямую с помощью графических API . Тем не менее, они по-прежнему полезны для интерфейсов командной строки и текстовых комментариев в исходном коде .
Некоторые современные встраиваемые системы также используют фирменные наборы символов, обычно являющиеся расширениями наборов символов ISO 8859 , которые включают символы рисования рамок или другие специальные символы.
Другими типами символов рисования рамок являются блочные элементы , символы затенения и терминальные графические символы; их можно использовать для заполнения областей экрана и изображения падающих теней .
Unicode включает 128 таких символов в блоке Box Drawing . [1] Во многих шрифтах Unicode будет существовать только подмножество, которое также доступно в наборе символов IBM PC (см. ниже), поскольку оно определено как часть набора символов WGL4 .
Изображение ниже приведено в качестве краткой справки по этим символам в системах, которые не могут отображать их напрямую:
Блок Unicode Block Elements включает символы затенения. В блок включено 32 символа.
В версии 13.0 Unicode был расширен еще одним блоком, содержащим множество графических символов, Symbols for Legacy Computing , который включает несколько символов для рисования рамок и других символов, используемых устаревшими операционными системами (в основном из 1980-х годов). Немногие шрифты поддерживают эти символы (один из них — Noto Sans Symbols 2 ), но таблица символов приведена здесь:
Изображение ниже приведено в качестве краткой справки по этим символам в системах, которые не могут отображать их напрямую:
В версии 16.0 (сентябрь 2024 г.) Unicode был расширен еще одним блоком, содержащим множество графических символов, Symbols for Legacy Computing Supplement , который включает несколько символов для рисования прямоугольников и других символов, используемых устаревшими операционными системами (в основном 1970-х и 1980-х годов).
Различные платформы определили свой собственный уникальный набор персонажей для рисования коробок.
Аппаратная кодовая страница оригинального IBM PC предоставляла следующие символы для рисования блоков, которые DOS теперь называет кодовой страницей 437. Таким образом, это подмножество символов для рисования блоков Unicode включено в WGL4 и является гораздо более популярным и, скорее всего, будет отображаться правильно:
Целые половины также являются чертежами ящиков, поскольку они используются вместе с 0xB3:
Их число дополнительно ограничено 28 на тех кодовых страницах, которые заменяют 18 символов, объединяющих одинарные и двойные линии, левые и правые полублоки, а также целые половины с другими, обычно алфавитными, символами (например, кодовая страница 850 ):
Примечание: недвойные символы — это тонкие (светлые) символы (U+2500, U+2502), а не жирные (толстые) символы (U+2501, U+2503).
Некоторые компьютеры OEM DOS поддерживали другие наборы символов, например, Hewlett-Packard HP 110 / HP Portable и HP 110 Plus / HP Portable Plus , где в измененной версии набора символов символы рисования рамок были добавлены в зарезервированные области их обычного набора символов HP Roman-8 . [2] [3]
На многих системах Unix и ранних системах досок объявлений с коммутируемым доступом единственным общим стандартом для символов рисования блоков был альтернативный набор символов VT100 (см. также: Специальная графика DEC ). Последовательность escape Esc ( 0
переключала коды для строчных букв ASCII для рисования этого набора, а последовательность Esc ( B
переключалась обратно:
На некоторых терминалах эти символы вообще недоступны, а сложность управляющих последовательностей препятствует их использованию, поэтому часто используются только символы ASCII , которые приблизительно соответствуют символам, рисуемым в прямоугольниках, например - ( дефис-минус ), | ( вертикальная черта ), _ ( подчеркивание ), = ( знак равенства ) и + ( знак плюс ) в своего рода стиле ASCII-арта .
Современные эмуляторы терминала Unix используют Unicode и, таким образом, имеют доступ к перечисленным выше символам рисования линий.
World System Teletext (WST) использует символы пиксельного рисования для некоторой графики. Ячейка символа делится на 2×3 области, и 2 6 = 64 кодовых позиций выделяются для всех возможных комбинаций пикселей. [4] Эти символы были добавлены в стандарт Unicode в версии 13. [5]
Многие микрокомпьютеры 1970-х и 1980-х годов имели свои собственные фирменные наборы символов, которые также включали символы для рисования блоков. Многие из них были добавлены в Unicode как символы для устаревших вычислений .
Машины Commodore, такие как Commodore PET и Commodore 64 , включали набор текстовой полуграфики с блочными элементами и шаблонами дизеринга в наборе символов PETSCII.
Sinclair ZX80 , ZX81 и ZX Spectrum включали набор текстовой полуграфики с блочными элементами на основе квадрантов. ZX80 и ZX81 также включали набор текстовой полуграфики с шаблонами дизеринга.
BBC Micro могла использовать 7-битный набор символов Teletext , который имел 128 символов рисования рамок, чьи кодовые точки были общими с обычными буквенно-цифровыми и пунктуационными символами. Управляющие символы использовались для переключения между обычным текстом и рисованием рамок. [6]
В компьютерах BBC Master и более поздних моделях Acorn программный шрифт по умолчанию определен с использованием символов рисования линий.
В наборе символов Amstrad CPC также имеются программные символы, определяемые по умолчанию как блочные и линейные символы.
Набор символов CP/M Plus, используемый на различных компьютерах Amstrad семейств CPC , PCW и Spectrum, также включал в себя богатый набор символов для рисования линий: [8] [9] [10]
MouseText — это набор символов для отображения на экранах Apple IIc , IIe и IIGS , включающий символы рисования рамок.
На многих платформах форма символа определяется программно на основе кода символа.
0x80 + topright*1 + topleft*2 + bottomright*4 + bottomleft*8
0x80 + topleft*1 + topright*2 + bottomleft*4 + bottomright*8
0x90 + up*1 + right*2 + down*4 + left*8
0xA0 + down*1 + right*2 + left*4 + up*8
0xA0 + topleft*1 + topright*2 + middleleft*4 + middleright*8 + bottomleft*16 + bottomright*64
Однако символы линий и рамок DOS не упорядочены каким-либо программным образом, поэтому для вычисления конкретной формы символа необходимо использовать справочную таблицу.
Примеры диаграмм, выполненных с использованием стандартных символов чертежа рамок, с использованием моноширинного шрифта:
┌─┬┐ ╔═╦╗ ╓─╥╖ ╒═╤╕│ ││ ║ ║║ ║ ║║ │ ││├─┼┤ ╠═╬╣ ╟─╫╢ ╞═╪╡└─┴┘ ╚═╩╝ ╙─╨╜ ╘═╧╛┌────────────────────┐│ ╔═══╗ Какой-то текст │▒│ ╚═╦═╝ в коробке │▒╞═╤══╩══╤═══════════╡▒│ ├──┬──┤ │▒│ └──┴──┘ │▒└────────────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒