128.1 Block

block 出力形式は、Unicode ブロック要素 (Block element; U+2580-259F) 文字、または点字文字 (Braille Patterns; U+2800-28FF) を使って解像度を向 上させた疑似グラフィック出力を作成します。これは端末 (ターミナル) グラ フィックの代用品です。それには、UTF-8 が表示できる端末、またはビューワ が必要です。描画には、内部ビットマップコードを用います。テキストは dumb 出力形式ルーチンを用いて、グラフィックスの一番上に表示します。

書式:


       set term block
               {dot | half | quadrants | sextants | octants | braille |
                 sextpua | octpua}
               {{no}enhanced}
               {size <x>, <y>}
               {mono | ansi | ansi256 | ansirgb}
               {{no}optimize}
               {[no]attributes}
               {numpoints | charpoints | gppoints}
               {[no]animate}

size は、ターミナルサイズを文字セル単位で設定します。

dot, half, quadrants, sextants, braille は、疑似グラフィック の生成に用いる文字セットの選択です。dot は単純なドットを、half は半 ブロック文字群を使用します。quadrants は、縦横両方向に 2 倍の解像度を 生む四分ブロック文字群を使います。sextants は、2x3 の六分ブロック文字 群を使用します。braille は点字記号を使い、これは 2x4 の疑似解像度を提 供します。octants は、提案された 2x4 ブロック文字を使います。sectpuaoctpua は、KreativeKorp 私用領域 (PUA) 内の 2x3, 2x4 ブロック文字 をそれぞれ使用しますが、そのうち利用可能なのは多分 FairfaxHDKreativeSquare フォントのみです。

2x3 の六分ブロック文字 ('sextants') は、Unicode 13 にのみ含まれているこ とに注意してください。よって、それをサポートするフォントは未だ限定的で す。それは点字記号についても同様です。利用可能なフォントには、例えば unscii, IBM 3270, GNU Unifont, DejaVu Sans, FairfaxHD などが あります。2x4 ブロック文字 ('octants') は、まだ 2022 年に将来の Unicode 規格に入ることが決まった段階にすぎません。FairfaxHD フォントには含ま れています。

オプション ansi, ansi256, ansirgb は、出力に色を表示させるための エスケープシーケンスを含ませます。これらは、あなたの端末が処理できない かもしれないことに注意してください。デフォルトは mono (白黒) です。 エスケープシーケンスの一覧については、以下参照: terminal dumb (128.8)

オプション attributes は、太字やイタリック体文字用のエスケープシーケ ンスをサポートする端末、エミュレーター上でそれらの文字出力を可能にしま す。以下参照: terminal dumb (128.8)

ブロック文字群を使うことで、ビットマップの疑似解像度は上がりますが、こ れはカラーに対してはそうではありません。複数の pixel が同じ色を共有す る必要があります。これは、ひとつの文字セルで、すべてのピクセルの色の平 均を取ることで処理しています。optimize をつけると、この出力形式は背景 色と前景色の両方の設定によってそれを改善しようとします。この手法は、 half モードでは完全に機能しますが、quadrants, sextants, octants では難しさが増していきます。また、braille では使用できません。

gppoints は、グラフィックコマンドを使って点記号を描きます。端末の低解 像度性のため、brailleoctant モードではこれは大抵実用的です。多 分エラーバーとしては最も有用でしょう。 charpoints は、代わりに Unicode 記号文字を使用します。これらも常にグ ラフィックの一番上に描かれることに注意してください。 numpoints は上付き下付きの数字を使用し、垂直方向に 2 倍の解像度にしま す。しかし sextants に対しては、文字の枠の中心位置の点は、通常の数字 で描く必要があります。charpointsnumpoints を使っている場合、ビ ットマップの解像度はそれでも異なり、線と記号は一般に正確には揃わないこ とに注意してください。

オプション animate は、各描画後に、カーソル位置をグラフの左上にリセッ トし、前のグラフを上にスクロールして消す代わりにスクリーンの同じ領域に 次のグラフを上書きするようにします。これは、同じ場所でのアニメーション を作成するためには有用でしょう。

竹野茂治@新潟工科大学
2024-12-02