
ボックス描画文字(線描画文字とも呼ばれる)は、テキストユーザーインターフェースで様々な幾何学的フレームやボックスを描画するために広く用いられるセミグラフィックスの一種です。これらの文字は、隣接する文字と水平方向および/または垂直方向に連結するように設計されているため、適切な位置合わせが必要です。したがって、ボックス描画文字は通常、等幅フォントでのみ適切に機能します。
グラフィカルユーザーインターフェースでは、グラフィカルAPIを使って線や四角形を直接描画する方が簡単なので、これらの文字はあまり役に立ちません。しかし、コマンドラインインターフェースやソースコード内のプレーンテキストコメントには依然として有用です。
最近の組み込みシステムの中には、独自の文字セットを使用しているものもあり、通常はISO 8859文字セットの拡張機能で、枠線文字やその他の特殊記号が含まれている。
ボックス描画文字には、ブロック要素、シェード文字、終端グラフィック文字など、他にも様々な種類があります。これらは、画面の領域を塗りつぶしたり、ドロップシャドウを表現したりするために使用できます。
Unicodeには、ボックス描画ブロックに 128 個の文字が含まれています。[ 1 ]多くの Unicode フォントでは、WGL4文字セットの一部として定義されているため、IBM PC文字セット (下記参照) にも含まれるサブセットのみが存在します。
以下の画像は、これらの記号を直接表示できないシステムでのクイックリファレンスとして提供されています。

ブロック要素のUnicodeブロックには、網掛け文字が含まれています。このブロックには32文字が含まれています。
バージョン13.0では、Unicodeに「レガシーコンピューティング用シンボル」という、多くのグラフィック文字を含む別のブロックが追加されました。このブロックには、ボックス描画文字や、旧式のオペレーティングシステム(主に1980年代のもの)で使用されていたその他のシンボルが含まれています。これらの文字をサポートするフォントは少なく(Noto Sans Symbols 2は部分的にしかサポートしていません)、シンボルの表を以下に示します。
以下の画像は、これらの記号を直接表示できないシステムでのクイックリファレンスとして提供されています。

バージョン16.0(2024年9月)では、Unicodeに「Symbols for Legacy Computing Supplement」という、多くのグラフィック文字を含む別のブロックが追加されました。このブロックには、ボックス描画文字や、旧式のオペレーティングシステム(主に1970年代と1980年代のもの)で使用されていたその他のシンボルが含まれています。
様々なプラットフォームが、それぞれ独自の枠線描画文字セットを定義していた。
オリジナルのIBM PCのハードウェアコードページには、 DOSが現在コードページ437と呼ぶ、以下の枠線描画文字が含まれていました。このUnicode枠線描画文字のサブセットはWGL4にも含まれており、より一般的で正しくレンダリングされる可能性がはるかに高いです。
整数部分もボックス描画であり、0xB3 と併用されます。
単一行と二重行、左半分ブロックと右半分ブロック、および完全半分を組み合わせた18文字を、通常はアルファベットの文字で置き換えるコードページでは、その数はさらに28に制限されます(コードページ850など)。
注:二重でない文字は、太字(U+2501、U+2503)ではなく、細い(軽い)文字(U+2500、U+2502)です。
一部のOEM DOSコンピュータは、他の文字セットをサポートしていました。たとえば、Hewlett-Packard HP 110 / HP PortableおよびHP 110 Plus / HP Portable Plusでは、文字セットの修正バージョンで、通常のHP Roman-8文字セットの予約領域にボックス描画文字が追加されていました。[ 2 ] [ 3 ]
多くのUnixシステムや初期のダイヤルアップ掲示板システムでは、ボックス描画文字の共通規格はVT100代替文字セットのみでした( DEC Special Graphicsも参照)。エスケープシーケンスは 小文字ASCII文字のコードをこのセットの描画に切り替え、シーケンスは元に戻しました。Esc ( 0Esc ( B
一部の端末ではこれらの文字が全く使用できず、エスケープシーケンスの複雑さから使用が敬遠されるため、多くの場合、ボックス描画文字に近似するASCII文字、例えば- (ハイフンマイナス)、| (縦棒)、_ (アンダースコア)、= (等号)、+ (プラス記号)などが、一種のASCIIアートのような形で使用されます。
最新のUnix端末エミュレータはUnicodeを使用しているため、上記に挙げた線画文字にアクセスできます。
世界システムテレテキスト(WST)は、一部のグラフィックにピクセル描画文字を使用します。文字セルは2×3の領域に分割され、ピクセルのすべての可能な組み合わせに対して2⁶ = 64のコード位置が割り当てられます。[ 4 ]これらの文字は、バージョン13でUnicode標準に追加されました。[ 5 ]
1970年代から1980年代にかけての多くのマイクロコンピュータは、独自の文字セットを持っており、その中には枠線描画文字も含まれていました。これらの多くは、レガシーコンピューティング用シンボルとしてUnicodeに追加されました。
Commodore PETやCommodore 64などのCommodoreマシンには、PETSCII文字セットにブロック要素とディザリングパターンを備えたテキストセミグラフィックスのセットが含まれていました。


Sinclair ZX80、ZX81、およびZX Spectrumには、四象限ベースのブロック要素を用いたテキストセミグラフィックスが付属していた。ZX80とZX81には、ディザリングパターンを用いたテキストセミグラフィックスも付属していた。
BBC Microは、128個のボックス描画文字を含むテレテキスト7ビット文字セットを利用できた。これらの文字のコードポイントは、通常の英数字や句読点文字と共有されていた。制御文字は、通常のテキストとボックス描画を切り替えるために使用された。[ 6 ]
Amstrad CPCの文字セットには、ブロック体や線画文字としてデフォルトで定義されているソフト文字も含まれています。
CPC、PCW、SpectrumファミリーのさまざまなAmstradコンピュータで使用されたCP /M Plus文字セットには、豊富な線描画文字セットも含まれていました。[ 9 ] [ 10 ] [ 11 ]
MouseTextは、 Apple IIc、IIe、およびIIGS用の表示文字セットで、枠線描画文字も含まれています。
多くのプラットフォームでは、文字の形状は文字コードからプログラムによって決定されます。
0x80 + topright*1 + topleft*2 + bottomright*4 + bottomleft*80x80 + topleft*1 + topright*2 + bottomleft*4 + bottomright*80x90 + up*1 + right*2 + down*4 + left*80xA0 + down*1 + right*2 + left*4 + up*80xA0 + topleft*1 + topright*2 + middleleft*4 + middleright*8 + bottomleft*16 + bottomright*64しかし、DOSの線や枠を描画する文字はプログラム的に順序付けられていないため、特定の文字の形状を計算するにはルックアップテーブルを使用する必要があります。
標準的な枠線描画文字を使用し、等幅フォントで作成したサンプル図:
┌─┬┐ ╔═╦╗ ╓─╥╖ ╒═╤╕ │ ││ ║ ║║ ║ ║║ │ ││ ├─┼┤ ╠═╬╣ ╟─╫╢ ╞═╪╡ └─┴┘ ╚═╩╝ ╙─╨╜ ╘═╧╛ ┌───────────────────┐ │ ╔═══╗ テキスト │▒ │ ╚═╦═╝ ボックス内 │▒ ╞═╤══╩══╤═══════════╡▒ │ ├──┬──┤ │▒ │ └──┴──┘ │▒ └───────────────────┘▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒