タブキー

タブキー Tab}} は、タイプライターやワードプロセッサ専用機あるいはコンピュータ用のキーボードのキーの一つで、カーソルを次のタブストップまで移動させるキーである。元々はタイプライターにおける図表作成機能のために使用された。

1. 歴史
-----

//tab//は//tabulator//または//tabular//の略で、//tabulate//とは「データを表にする」という意味である。

英文タイプライターでは、キーを打つと印字の直後に用紙を左に送り、次の印字に備える。すなわち用紙を基準に見ると、印字しようとする位置が右に1文字分ずれる。同様にスペースキーを押すと、印字せずに1文字分ずれる。タイプライターで表を作るとき、当初はスペースキーやバックスペースキーを使って文字の間の空白を手動で調整して入れていた。これを簡単にするために、ページの横幅全体に渡る水平の棒に可動式のレバーをセットし、タブキーを押すと次のタブストップまで用紙が移動するメカニズムが加えられた。当初、タブストップは手動でセットしていたが、後に「タブセット」と「タブクリア」のキーが設けられ、等間隔のタブストップが自動でセットできるようになった。

このタブの機構は、各段落の最初の行を一様に字下げするためにも使われるようになった。最初のタブストップは5文字目か6文字目に設定されていたが、これは活字を組む際の字下げよりもはるかに大きかった。

2. コンピュータにおける用法
---------------

タブの機能は、コンピューターにも持ち込まれた。タイプライター同様、QWERTY配列のキーボードではQの左隣にキーが置かれた。

タブキーを押したときの挙動は、アプリケーションソフトウェアによって様々である。

ワープロソフトやテキストエディタでは、カーソル位置にASCIIのタブ文字を入れるか、8文字や4文字毎に設定した基準線まで空白を入れる。ソフトウェアによってはタブ位置を自由に変更できたり、タブの直後を左揃えにそろえるばかりでなく、中央揃えにしたり右揃えにしたりする機能を持っているものもある。タブは、通常の日本語文書や、欧文タイプライターのように、文字送り幅が等しい場合には、仮にこれがなくてもスペースを1個から数個置くことで代用できる。しかし、通常の欧文文書や一部の日本語文書のように文字送り幅が文字によって異なる場合には、行の途中で縦位置を揃えるためにはタブが必須である。

表計算ソフト等では、タブキーを押すとカーソルを次のセルに移動し、シフトキーとタブキーを同時に押すと前のセルに移動する。

多くのGUIのアプリケーションでは、タブキーを押すと他のウィジェットにフォーカスが移動する。これにより、マウスを使わなくてもキーボードだけでGUIの操作ができるようになっている。これは元々IBMのCommon User Accessの設計の一部であった。macOSではこの機能は「フルキーボードアクセス」と呼ばれている。

タブは、部分的に入力されたテキストを補完するのにも用いられる。例えば、いくつかのコマンドライン・インターフェースでは、コマンドやファイル名の最初の数文字を入力してタブキーを押すと、入力した文字で始まるコマンドやファイル名に補完される。

3. 水平タブと垂直タブ
------------

行の途中で縦をそろえるために、縦に1本ないし数本の基準線を設け、その基準線まで右方向に空白を設けることを水平タブ  という。一般に、単にタブといえばこの水平タブのことを指し、これまで説明してきた「タブ」は全て水平タブである。

コンピュータでは水平タブの他に垂直タブ  もあった。これは垂直方向に間隔を空ける際に改行コードを複数個送る代わりに1つの垂直タブコードで済むようにしたものである。垂直タブコードを受信したとき、プリンターでは縦方向に6行ほどずれ、コンソールでは桁位置を維持して改行する。

4. タブ文字
-------

ASCIIでは、制御文字として水平タブに 9 が割り当てられている。キャレット記法では ^I となり、一般的なキーボードではタブキーの他、Ctrlでも入力できる。C言語など多くのプログラミング言語ではエスケープ文字を使って \t で文字列中にタブ文字を入れることができる。

垂直タブには、ASCIIでは 11が割り当てられている。キャレット記法では ^K 、エスケープ文字は \v である。

EBCDICでは、HTは5、VTは11である。

当初のプリンターは、タブがどこに設定されているかを示すために、機械式のタブストップを使用した。水平方向は可動式の金属の突起で、垂直方向はキャリッジコントロールテープのパンチ穴で示された。当初は、プリンターにセットした用紙に既に印刷されている伝票などの様式に合わせて、タブストップは手動で設定された。後に、別の制御文字を使用してタブの設定と解除が行われるようになった。ISO 6429には、コード136、137と138が含まれている。

実際には、設定可能なタブストップは固定のタブストップに急速に置き換えられた。水平タブは8文字ごと、垂直タブは6行ごととするのがデファクトスタンダードとなった。印刷プログラムは、用紙上のどんな位置へでも移動するために必要なスペースや改行を簡単に送ることができ、これはタブストップを決めるモーダルで非標準な方法よりもはるかに信頼できた。タブ文字は、単に複数のスペースや改行を1つのコードで送るためのデータ圧縮用として使われるようになった。

8文字の水平タブが普及したのは、8が2の累乗であり、当時のデジタル電子機器で扱いやすかったためである。

4.1. タブ区切りのテキスト
--------------------

各種データの交換用に多用されるComma-Separated Valuesの形式の一つとして、各フィールドの区切り文字にタブ文字が使われることがあり、これをTab-Separated Valuesと呼ぶ。

表計算ソフトやワープロの表からデータをコピーしたときや、データを貼りつけるときにタブ区切りのテキストが使われる。

4.2. HTML
---------

HTMLでは や &Tab; で水平タブを表現できるが、HTMLでは水平タブを含む空白文字の連続は1つの空白として表示される。ただし、タグの中や、CSSでwhite-space属性をpreに設定されたタグの中は、この限りではない。

以下は、要素の中でを使った例である。 These 2 lines are tabbed: 2009 This line uses a tab. This line also uses a tab. This line does not use a tab.

上記のHTMLは以下のように表示される。

垂直タブは であるが、XML 1.0やHTMLでは使用できない。

4.3. Unicode
------------

Unicodeでは、水平タブ・垂直タブのコードポイントはASCIIと同じである。

unichar
unichar 制御文字の図形表現として以下のものがある。

Unicodeには、タブキーに刻印される記号もある。

unichar 
unichar 
unichar 

5. 関連項目
-------

キーボード 
キー配列
Comma-separated values 
字下げスタイル

6. 出典
-----

7. 外部リンク
--------

[1] by Jamie Zawinski
[2] by Adam Spiers
[3]
[4]