罫線素片

罫線素片は、罫線を文字の組み合わせで表記するために罫線を複数の部分に分解しそれぞれに与えられた字形、あるいはそれらの符号位置を示す。

1. 概要
-----

画像の表示および印刷機能を持たないシステムにおいて、文字だけで罫線を描くために編み出された一連のセミグラフィックである。

1979年に日本電気が大型機向けに実装したものが、1980年には中国の国家規格GB2312に収録され、1983年には日本の国家規格JIS X 0208にも含まれるようになった。1980年代から1990年代にかけて普及したワードプロセッサや、NECのパソコンPC-98などでも標準で利用可能であったため、表や枠などを表現するだけでなく、簡単な図を描いたり、便利に使われた。

NECの生み出した罫線素片とは別に、マイクロソフト社が1981年発売のIBM PCのために生み出した罫線素片もあり、この2つは1991年にUnicode 1.0に収録され、現在は世界のあらゆるコンピュータで罫線素片が利用可能となっている。

現代のコンピュータでは、わざわざ罫線素片を使わなくても線を画面に表示したり印刷することが可能である。1990年代以降、グラフィックの表示可能なコンピュータの普及に伴い、ワープロソフトや表計算ソフトなど、罫線素片と別体系で罫線を描画できるソフトが普及したため、一時出番を失ったが、電子メールや電子掲示板など文字しか使用できない環境において、その存在が見直されている。

2. 歴史
-----

2.1. 前史
-------

プリンタが発明された当初は英数字しか印刷できなかったが、1955年に新興製作所の谷村貞治が、漢字を印刷できる「漢字プリンタ」を発明した。当初は紙に活字を押し付けて印刷する方式で、印刷できる文字に限りがあったが、1968年に沖電気がワイヤドットプリンタを発明し、ドットマトリクスで表現できる限りのあらゆる文字が印刷できるようになった。

1970年代にはドットプリンタが普及し、これが「文字のみで図表を表現できるようにする」という罫線素片の登場の前提になる。

2.2. NECの大型機および中国の国家規格で採用
-------------------------

1978年、日本で最初の文字規格であるJIS C 6226-1978が策定された。これには罫線素片は含まれていなかったが、日本の各大型機メーカーでは、日本語表示の為にJIS C 6226をベースに独自の拡張文字を登録した文字セット及び文字コードを作成したため、1978年から1979年にかけて、各社の文字セットで独自の罫線素片が実装された。当時のメインフレームはメインフレーム単体でなく漢字表示装置や漢字印刷装置などを含めた「システム」として顧客に提供されていたが、文字セットに罫線素片があると、「システム」単体で帳票を作って印刷することができて便利だった。NECも、文字コード「日本電気標準漢字コード」の為に罫線素片を実装し、NECの展開するメインフレーム機であるACOSで罫線素片が利用可能となった。

NECは、1972年の日中国交回復のTV中継を成功させたことが中国に評価され、中国のコンピュータ関係者との交流が始まった。NECの伊藤英俊は、1975年の第二回NEC訪中団に参加した際、中国に初めて漢字プリンタを紹介し、また1970年代後半から1980年代前半にかけて郵電部の電気通信研究所などに中国語端末と漢字プリンタをもちこんでデモンストレーションを行った。中国でこのような下地ができていたところへ、伊藤英俊は、GB2312委員会の主査をしていた陳耀星に、JIPSに入っていた罫線素片について教えた。陳は、罫線素片を便利だと思ったので、1980年に策定された中国最初の文字規格であるGB2312にJIPSの罫線素片をそのまま取り入れた。これが国家規格に罫線素片が取り入れられた最初の例である。

日本の国家規格でも、1983年に改正されたJIS X 0208:1983では、既に中国の国家規格として採用されたNECの物をベースとして、罫線素片に符号位置が与えられた。韓国でも、1987年策定のKS X 1001で、中国および日本と同じ罫線素片が規格化された。

2.3. パソコンでの採用
-------------

NECが1982年より展開したPC-9800シリーズの文字セットは、大型機において使われていたJIPSのものをベースとしていた。PC-9800シリーズは1980年代から1990年代にかけての日本で非常に普及したため、日本のパソコンでNECの罫線素片が非常に普及した。NECの罫線素片は、1983年策定の日本の国家規格「JIS83」でもそのまま収録された。一方で、MSXなど1980年代の日本の他のパソコンでも、多くの機種で同種の罫線素片が利用可能だった。

日本だけでなく、1970年代末から1980年代にかけて欧米で展開された8ビット/16ビットPCにおいても、独自の拡張文字を持つのが一般的であり、罫線の形は様々ではあるものの、多くの製品で罫線素片が利用可能であった。

イギリスでは、1980年にシンクレア社が発売したシンクレア ZX80で採用された「ZX80 character set」で罫線素片が利用可能であった。

罫線素片は、米国でワング・ラボラトリーズが1981年に発売したワープロ機「Wangwriter」でも搭載された。IBM PCの文字セットをデザインしたビル・ゲイツは、ワープロ専用機の機能を汎用機であるパソコンのソフトウェアでそのまま代替できると考えており、ワングのワープロ機で採用されていた文字セットを、1981年発売の初代IBM PCで「コードページ437」としてそのまま採用した。よって罫線素片は、初代IBM-PCに搭載された初代MS-DOSより利用可能で、またMS-DOSの文字セットをそのまま引き継いだWindowsでも初代より標準的に利用可能だった。

Appleのパソコンにおいては、1984年に発売されたApple IIcより搭載された拡張文字セットの「MouseText」によって罫線素片が利用可能となった。

Unixでは、1983年発売の端末機VT220で搭載された「DEC Special Graphics」によって罫線素片が利用可能となった。

2.4. 国際規格での採用
-------------

1991年策定のUnicode 1.0 では、罫線素片としてIBM-PCに由来する物とJIS規格に由来する物の両方が収録され、世界のあらゆるシステムで罫線素片が表示可能となった。

その後もUnicodeでは「世界のすべての文字を採用する」という目的のため、様々な罫線素片が次第に取り入れられている。2020年策定のUnicode 13.0では、上記の欧米のレトロPCに採用された罫線素片が取り入れられた。

なおWindowsにおいて、Unicode対応を謳ったフォントでは「Windows Glyph List 4」に基づくことが推奨されている。WGL4文字セットでは、Unicode 1.0の罫線素片のうち、JIS規格に由来するものの一部が割愛されているため、WindowsでUnicode 1.0の罫線素片が全て利用できるというわけでは必ずしもない。

3. 近い関係の物
---------

3.1. 歯科用特殊文字
------------

2000年に規格化されたJIS X 0213では、日本の歯科検診で歯の状態を記す際の言語である「歯式」で使われる「歯科用特殊文字」が追加された。「歯科用特殊文字」は、従来はコンピュータ上において、外字を作成したり、罫線素片を駆使して無理やり表示していたが、そうすると検索する時などに不便であるため、JISの改定を機に、歯科用のシステム開発の現場からの要望を汲む形でJIS規格に追加されたものである。

「歯科用特殊文字」は、2002年策定のUnicode 3.2において「歯科用特殊記号」として収録された。これにより世界のあらゆるシステムで、日本の歯式用の特殊文字が表示可能となった。

3.2. ブロック要素
-----------

ブロック要素は、罫線素片と組み合わせてしばしば使われる。これによって、文字キャラクタのみでユーザインタフェースを表現する「テキストユーザインタフェース」において、GUIのメッセージボックスっぽい表現などをすることが可能となる。

GUIのウィンドウシステムを持つ現代のOSでは、わざわざ罫線素片を使わずに図像を表現できるが、 BIOSの設定画面やコンソール画面などでは、罫線素片とブロック要素を使用してGUIっぽいダイアグラムが見られる場合がある。

4. PC-98における罫線素片
----------------

98罫線とは、1982年よりNECが展開したパソコンのNEC PC-9801シリーズで採用された罫線素片である。含まれる記号は、縦横網羅する細罫線、太罫線とその組み合わせ、縦及び横の細破線、太破線、表内の横2重線である。「JIS X 0208-1983」に収録された「JIS83罫線」とは、形は同じだが収録位置が違う。

98罫線といわれているものは2種類ある。PC-98においては、英数字と一部のカナが1バイトで、漢字や「ひらがな」などそれ以外の文字が2バイトで表現されていたが、罫線素片は1バイトで表現するものと2バイトで表現するものがあった。いずれにしても、NECの独自拡張文字であり、別の環境で見ると文字化けする。

「98罫線」は、1990年代のPC-98シリーズの標準OSとなったWindowsにおいて、1993年発売のWindows 3.1の文字コード「Windows-31J」策定の際に収録が見送られたため、現代のパソコンでは表示できない。ただし、同じ形の「JIS83」罫線がWindowsの標準の文字コード「シフトJIS」で収録されており、また1991年策定のUnicode 1.0でも、U+2500〜U+254Bの範囲に、並び順もそのまま収録されており、Windows以外のUnicodeを採用した現代のコンピュータでも標準的に表示可能である。

4.1. 1バイト罫線素片
-------------

最初期のPC-98シリーズは、標準搭載のROM-BASICであるN88-BASICが稼働することを前提としていた。1982年当時は既にJIS規格である「JIS C 6226-1978」が存在していたが、当時のコンピュータではまだまだ漢字の表示は一般的ではなかったこともあり、各社・各機種で独自の文字コードを採用していた。このROM版のN88-BASICにおいては、いわゆる「JISコード」を採用していた。この「NEC JIS」においては、1バイトで罫線を表現することができ、「GRPH」キーを使うことで罫線の入力が可能となっていた。「2バイト罫線」とは形はほぼ同じだが同時に使うと微妙にずれるらしい。

一方、マイクロソフト社は1981年にパソコン用OSであるMS-DOSを発売した。MS-DOSは1983年にPC-98シリーズ版が発売され、やがてPC-98にMS-DOSがプリインストールされて販売されるようになった。MS-DOSは文字コードに、いわゆる「シフトJIS」を採用しており、「NEC JIS」の1バイト罫線は「シフトJIS」の2バイト文字とバッティングするので使えなくなった。

ただし、「MS-DOS上で動くアプリ」という形になってPC-98に搭載され続けたN88-BASICにおいては、旧環境との互換性の為にコンバータが用意されているため、MS-DOSでもMS-DOS版N88-BASIC上に限っては1バイト罫線が表示可能となっている。

4.2. 2バイト罫線素片
-------------

JIS C 6226における空き領域であった12区に入れられた罫線。

N88-BASIC上だけでなく、「シフトJIS」を採用したPC-98版のMS-DOSでも標準的に利用可能だった。これはマイクロソフト社が、OEM先による「シフトJIS」の独自拡張を認めていたからだが、そのために各機種のOEM版MS-DOSにおける文字コードの実装がバラバラになっていることをマイクロソフト社が問題視し、1993年にその方針は撤回され、マイクロソフト社自身が新たにこれらを統合した文字コードを策定することにした。

1993年、Windows 3.1の発売に合わせて各社の機種依存文字を統合する形で作られた文字コードの「Windows-31J」では、記号など多くのNEC機種依存文字がWindowsの文字セットとして公式に収録されたものの、98罫線の収録は見送られた。MS-DOSでは普通に表示できていた罫線が、Windowsでは文字化けする、ということは、Windows 95の発売後、MS-DOSからWindowsへの移行期になって初めて判明し、問題となった。

ちなみに、同じ98でも当時「国民機」と呼ばれたエプソン製のPC-98互換機は、98罫線ではなくJIS83罫線を使っていたため、Windowsに移行する際に罫線の文字化け問題が起こらなかったらしい。

5. JIS X 0208における罫線
-------------------

8区の1点から32点に入れられた罫線素片。

含まれる記号は縦横網羅する細罫線、太罫線とその組み合わせである。

縦書き時には90度時計回りに回転した字形となる。

6. JIS X 0213における罫線
-------------------

JIS X 0208に含まれる罫線以外に歯科用記号を表記するのに必要であることから入れられた罫線がある。

JIS X 0208の罫線と、下線及び上線との組み合わせで使えるようにしてある。

罫線に重なるように丸や三角、波をつけたものも含まれる。

7区の34点から48点が使用される。

7. Unicodeにおける罫線
----------------

Unicodeでは、U+2500からU+257Fの罫線素片ブロックに128の罫線素片を収録している。また、その他の技術用記号ブロックのU+23BEからU+23CCに歯科用罫線素片が収録されている。

JIS X 0213における罫線素片、PC-98シリーズの罫線素片などを含んでいる。

8. コード一覧
--------

8.1. 罫線素片のうち、JIS X 0213に含まれるもの
------------------------------



8.2. 罫線素片のうち、JIS X 0213に含まないもの
------------------------------



9. 関連項目
-------

テキストユーザインタフェース

10. 脚注
------