Personagem de desenho de caixa - Box-drawing character

Midnight Commander usando caracteres de desenho de caixa em um emulador de terminal

Os caracteres de desenho de caixa , também conhecidos como caracteres de desenho de linha , são uma forma de semigráfica amplamente usada em interfaces de usuário de texto para desenhar vários quadros e caixas geométricas. Caracteres de desenho de caixa normalmente só funcionam bem com fontes monoespaçadas . Em interfaces gráficas de usuário , esses caracteres são muito menos úteis, pois é mais simples e apropriado desenhar linhas e retângulos diretamente com APIs gráficas . No entanto, eles ainda são úteis para interfaces de linha de comando e comentários de texto simples no código-fonte .

Usados ​​junto com os caracteres de desenho de caixa são elementos de bloco , caracteres de sombra e caracteres gráficos terminais. Eles podem ser usados ​​para preencher regiões da tela e retratar sombras projetadas .

Codificações

Unicode

Desenho da Caixa

O Unicode inclui 128 desses caracteres no bloco Box Drawing . Em muitas fontes Unicode, apenas o subconjunto que também está disponível no conjunto de caracteres IBM PC (veja abaixo) existirá, devido a ser definido como parte do conjunto de caracteres WGL4 .


Gráfico de códigos do Box Drawing Official Unicode Consortium (PDF)
  0 1 2 3 4 5 6 7 8 9 UMA B C D E F
U + 250x
U + 251x
U + 252x
U + 253x
U + 254x
U + 255x
U + 256x
U + 257x
Notas
1. ^ A partir do Unicode versão 13.0

A imagem abaixo é fornecida como referência rápida para esses símbolos em sistemas que não são capazes de exibi-los diretamente:

Desenhos de caixa Unicode (2500 - 27FF) .svg

Elementos de Bloco

O bloco Unicode de elementos de bloco inclui caracteres de sombreamento. 32 caracteres são incluídos no bloco.


Gráfico de códigos do Block Elements Official Unicode Consortium (PDF)
  0 1 2 3 4 5 6 7 8 9 UMA B C D E F
U + 258x
U + 259x
Notas
1. ^ A partir do Unicode versão 13.0

Símbolos para computação legada

Na versão 13.0, o Unicode foi estendido com outro bloco contendo muitos caracteres gráficos, Symbols for Legacy Computing , que inclui alguns caracteres de desenho de caixa e outros símbolos usados ​​por sistemas operacionais obsoletos (principalmente da década de 1980):

Símbolos para Legacy Computing
Official Unicode Consortium Code chart (PDF)
  0 1 2 3 4 5 6 7 8 9 UMA B C D E F
U + 1FB0x 🬀 🬁 🬂 🬃 🬄 🬅 🬆 🬇 🬈 🬉 🬊 🬋 🬌 🬍 🬎 🬏
U + 1FB1x 🬐 🬑 🬒 🬓 🬔 🬕 🬖 🬗 🬘 🬙 🬚 🬛 🬜 🬝 🬞 🬟
U + 1FB2x 🬠 🬡 🬢 🬣 🬤 🬥 🬦 🬧 🬨 🬩 🬪 🬫 🬬 🬭 🬮 🬯
U + 1FB3x 🬰 🬱 🬲 🬳 🬴 🬵 🬶 🬷 🬸 🬹 🬺 🬻 🬼 🬽 🬾 🬿
U + 1FB4x 🭀 🭁 🭂 🭃 🭄 🭅 🭆 🭇 🭈 🭉 🭊 🭋 🭌 🭍 🭎 🭏
U + 1FB5x 🭐 🭑 🭒 🭓 🭔 🭕 🭖 🭗 🭘 🭙 🭚 🭛 🭜 🭝 🭞 🭟
U + 1FB6x 🭠 🭡 🭢 🭣 🭤 🭥 🭦 🭧 🭨 🭩 🭪 🭫 🭬 🭭 🭮 🭯
U + 1FB7x 🭰 🭱 🭲 🭳 🭴 🭵 🭶 🭷 🭸 🭹 🭺 🭻 🭼 🭽 🭾 🭿
U + 1FB8x 🮀 🮁 🮂 🮃 🮄 🮅 🮆 🮇 🮈 🮉 🮊 🮋 🮌 🮍 🮎 🮏
U + 1FB9x 🮐 🮑 🮒 🮔 🮕 🮖 🮗 🮘 🮙 🮚 🮛 🮜 🮝 🮞 🮟
U + 1FBAx 🮠 🮡 🮢 🮣 🮤 🮥 🮦 🮧 🮨 🮩 🮪 🮫 🮬 🮭 🮮 🮯
U + 1FBBx 🮰 🮱 🮲 🮳 🮴 🮵 🮶 🮷 🮸 🮹 🮺 🮻 🮼 🮽 🮾 🮿
U + 1FBCx 🯀 🯁 🯂 🯃 🯄 🯅 🯆 🯇 🯈 🯉 🯊
U + 1FBDx
U + 1FBEx
U + 1FBFx 🯰 🯱 🯲 🯳 🯴 🯵 🯶 🯷 🯸 🯹
Notas
1. ^ A partir do Unicode versão 13.0
2. ^ As áreas cinzentas indicam pontos de código não atribuídos

A imagem abaixo é fornecida como referência rápida para esses símbolos em sistemas que não são capazes de exibi-los diretamente:

Símbolos para Legacy Computing Unicode block.png

DOS

A página de código de hardware do IBM PC original fornecia os seguintes caracteres de desenho de caixa, no que o DOS agora chama de página de código 437 . Este subconjunto de caracteres de desenho de caixa Unicode é, portanto, muito mais popular e provavelmente será renderizado corretamente:

0 1 2 3 4 5 6 7 8 9 UMA B C D E F
B
C
D

Seu número é ainda limitado a 22 nas páginas de código que substituem os 18 caracteres que combinam linhas simples e duplas com outros caracteres, geralmente alfabéticos (como a página de código 850 ):

0 1 2 3 4 5 6 7 8 9 UMA B C D E F
B
C
D

Nota: Os caracteres não duplos são os caracteres finos (leves) (U + 2500, U + 2502), não os caracteres em negrito (pesados) (U + 2501, U + 2503).

Alguns computadores OEM DOS suportavam outros conjuntos de caracteres, por exemplo, o Hewlett-Packard HP 110  / HP Portable e HP 110 Plus  / HP Portable Plus , onde em uma versão modificada do conjunto de caracteres os caracteres de desenho de caixa foram adicionados em áreas reservadas de seu normal Conjunto de caracteres HP Roman-8 .

0 1 2 3 4 5 6 7 8 9 UMA B C D E F
8
9

Unix, CP / M, BBS

Em muitos sistemas Unix e nos primeiros sistemas de boletins dial-up , o único padrão comum para caracteres de desenho de caixas era o conjunto de caracteres alternativos VT100 (consulte também: DEC Special Graphics ). A sequência de escape Esc ( 0 trocou os códigos por letras ASCII minúsculas para desenhar este conjunto, e a sequência foi Esc ( Brevertida:

0 1 2 3 4 5 6 7 8 9 UMA B C D E F
6
7

Um script Bash que exibe todos os caracteres semigráficos:

$ for i in 6a 6b 6c 6d 6e 71 74 75 76 77 78; do printf "0x$i \x$i \x1b(0\x$i\x1b(B\n"; done

0x6a j ┘
0x6b k ┐
0x6c l ┌
0x6d m └
0x6e n ┼
0x71 q ─
0x74 t ├
0x75 u ┤
0x76 v ┴
0x77 w ┬
0x78 x │

Em alguns terminais, esses caracteres não estão disponíveis, e a complexidade das sequências de escape desencoraja seu uso, com freqüência apenas os caracteres ASCII que se aproximam de caracteres de desenho de caixa são usados, como - ( hífen-menos ), | ( barra vertical ), _  ( sublinhado ), =  ( sinal de igual ) e + ( sinal de mais ) em uma espécie de arte ASCII .

Emuladores de terminal Unix modernos usam Unicode e, portanto, têm acesso aos caracteres de desenho de linha listados acima.

Histórico

Muitos microcomputadores das décadas de 1970 e 1980 tinham seus próprios conjuntos de caracteres proprietários, que também incluíam personagens de desenho de caixas. Alguns desses conjuntos, como o PETSCII do Commodore , incluem símbolos de desenho de caixas sem nenhum caractere Unicode correspondente.

Sinclair

O Sinclair ZX80 , ZX81 e Spectrum incluíam um conjunto de semigráficos de texto com elementos de bloco e padrões de pontilhamento.

   
Semigraphics ZX81

BBC e Acorn

A BBC Micro poderia utilizar o conjunto de caracteres do Teletexto de 7 bits, que tinha 128 caracteres de desenho de caixa, cujos pontos de código eram compartilhados com os caracteres alfanuméricos regulares e de pontuação. Os caracteres de controle foram usados ​​para alternar entre o texto normal e o desenho da caixa.

Conjunto de blocos de blocos Teletext G1:

0 1 2 3 4 5 6 7 8 9 UMA B C D E F
2 NBSP TRS-80 character 0x81.png TRS-80 character 0x82.png TRS-80 character 0x83.png TRS-80 character 0x84.png TRS-80 character 0x85.png TRS-80 character 0x86.png TRS-80 character 0x87.png TRS-80 character 0x88.png TRS-80 character 0x89.png TRS-80 character 0x8A.png TRS-80 character 0x8B.png TRS-80 character 0x8C.png TRS-80 character 0x8D.png TRS-80 character 0x8E.png TRS-80 character 0x8F.png
3 TRS-80 character 0x90.png TRS-80 character 0x91.png TRS-80 character 0x92.png TRS-80 character 0x93.png TRS-80 character 0x94.png TRS-80 character 0x95.png TRS-80 character 0x96.png TRS-80 character 0x97.png TRS-80 character 0x98.png TRS-80 character 0x99.png TRS-80 character 0x9A.png TRS-80 character 0x9B.png TRS-80 character 0x9C.png TRS-80 character 0x9D.png TRS-80 character 0x9E.png TRS-80 character 0x9F.png
6 TRS-80 character 0xA0.png TRS-80 character 0xA1.png TRS-80 caracteres 0xA2.png TRS-80 character 0xA3.png TRS-80 character 0xA4.png TRS-80 character 0xA5.png TRS-80 character 0xA6.png TRS-80 character 0xA7.png TRS-80 character 0xA8.png TRS-80 character 0xA9.png TRS-80 character 0xAA.png TRS-80 character 0xAB.png TRS-80 character 0xAC.png TRS-80 character 0xAD.png TRS-80 character 0xAE.png TRS-80 character 0xAF.png
7 TRS-80 character 0xB0.png TRS-80 character 0xB1.png TRS-80 caracteres 0xB2.png TRS-80 character 0xB3.png TRS-80 character 0xB4.png TRS-80 character 0xB5.png TRS-80 character 0xB6.png TRS-80 character 0xB7.png TRS-80 character 0xB8.png TRS-80 character 0xB9.png TRS-80 character 0xBA.png TRS-80 character 0xBB.png TRS-80 character 0xBC.png TRS-80 character 0xBD.png TRS-80 character 0xBE.png TRS-80 character 0xBF.png


Os computadores BBC Master e Acorn posteriores têm a fonte soft por padrão definida com caracteres de desenho de linha.

0 1 2 3 4 5 6 7 8 9 UMA B C D E F
UMA
B

Amstrad

O conjunto de caracteres Amstrad CPC também possui caracteres suaves definidos por padrão como blocos e caracteres de desenho de linha.

0 1 2 3 4 5 6 7 8 9 UMA B C D E F
8
9

O conjunto de caracteres CP / M Plus usado em vários computadores Amstrad das famílias CPC , PCW e Spectrum incluiu um rico conjunto de caracteres de desenho de linha também:

0 1 2 3 4 5 6 7 8 9 UMA B C D E F
8
9

maçã

MouseText é um conjunto de caracteres de exibição para Apple IIc , IIe e IIgs que inclui caracteres de desenho de caixa.

Teletexto

O World System Teletext (WST) usa caracteres de desenho de pixels para alguns gráficos. Uma célula de caractere é dividida em 2 × 3 regiões e 2 6  = 64 posições de código são alocadas para todas as combinações possíveis de pixels. Esses caracteres foram adicionados ao padrão Unicode na versão 13.

Outros

Alguns sistemas embarcados recentes também usam conjuntos de caracteres proprietários, geralmente extensões para conjuntos de caracteres ISO 8859 , que incluem caracteres de desenho de caixa ou outros símbolos especiais.

Código do caractere

Em muitas plataformas, a forma do caractere é determinada programaticamente a partir do código do caractere.

Caracteres de bloco de espectro ZX: 0x80 + superior direito * 1 + topleft * 2 + inferior direito * 4 + inferior esquerdo * 8

Caracteres de bloqueio Amstrad CPC: 0x80 + topleft * 1 + superior direito * 2 + inferior esquerdo * 4 + inferior direito * 8

Caracteres de linha Amstrad CPC: 0x90 + cima * 1 + direita * 2 + baixo * 4 + esquerda * 8

Caracteres da linha mestre da BBC: 0xA0 + para baixo * 1 + direita * 2 + esquerda * 4 + para cima * 8

Caracteres do bloco de teletexto: 0xA0 + topleft * 1 + superior direito * 2 + meio esquerdo * 4 + meio direito * 8 + inferior esquerdo * 16 + inferior direito * 64

Os caracteres linedraw do DOS não são ordenados de maneira programática e, para calcular uma forma de caractere específica, é necessário usar uma tabela de consulta.

Exemplos

Diagramas de amostra feitos de caracteres de desenho de caixa padrão, usando uma fonte monoespaçada:

┌─┬┐ ╔═╦╗ ╓─╥╖ ╒═╤╕
│ ││ ║ ║║ ║ ║║ │ ││
├─┼┤ ╠═╬╣ ╟─╫╢ ╞═╪╡
└─┴┘ ╚═╩╝ ╙─╨╜ ╘═╧╛
┌─────────────────────┐
│ ╔═══╗ Algum texto │▒
│ ╚═╦═╝ na caixa │▒
╞═╤══╩══╤═══════════╡▒
│ ├──┬──┤ │▒
│ └──┴──┘ │▒
└─────────────────────┘▒
 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Veja também

Referências