全角と半角

全角（ぜんかく）と半角（はんかく）は、文字の縦と横の比がそれぞれ1対1と2対1（横書きの文字を縦組みにするときは1対2）であることを指す。「半角」という表現は、もっぱらコンピュータ上での文字について、全角と対比して用いられる。

意味と用法

印刷や組版の分野では、「全角」は字送りの量や約物の高さ（横組みでは幅）を表す。漢字などのほぼ正方形の文字の高さと同じ量を全角と呼び、この大きさに文字や約物を配置することを全角取り（ぜんかくどり）、文字の前後や間にこの大きさの空きを取ることを全角アキなどと称する。「半角」という表現は用いない。全角の半分の量を二分（にぶ、にぶん）、3分の1の量を三分（さんぶ、さんぶん）、4分の1の量を四分（しぶ、しぶん）などと呼び、これらについても二分取り、四分アキなどの表現を用いる。また、全角アキの4分の3の空き量を二分四分アキ（にぶしぶあき）と称することがある。
コンピュータ上の文字では、全角文字（ぜんかくもじ）とはバイト数が2バイトの文字を呼ぶ場合、ASCIIおよびJIS X 0201以外の文字を呼ぶ場合、表示上の字形の縦横が1対1の文字を呼ぶ場合がある。いっぽう、半角文字（はんかくもじ）とはバイト数が1バイトの文字、ASCIIおよびJIS X 0201の文字、表示上の字形の幅が全角文字の半分である文字をそれぞれ指す場合がある。以下の解説を参照されたい。
一般消費者向けワードプロセッサなどには、文字の縦や横の幅を全角文字の2倍に引き伸ばして表示、印字できるものもある。字送り方向にだけ全角の2倍に引き伸ばす機能を倍角（ばいかく）と呼び、縦書きの場合を縦倍角（たてばいかく）、横書きの場合を横倍角（よこばいかく）とよぶこともある。さらに、縦横とも全角の2倍のサイズに引き伸ばす機能を4倍角と呼ぶことがある。複数のメーカーで実装がある。全角の4分の1のサイズの文字のことを四分角という。
JIS規格では、JIS X 4051『日本語文書の組版方法』で、「全角」を「漢字1文字分の外枠」、「半角」を「字幅が、全角の1/2である文字の外枠」と定義している。また一般機械分野 (B) のJIS B 0191『日本語ワードプロセッサ用語』で、「全角」を「外枠の高さと幅の大きさの比がほぼ1:1である, 当該製品の標準的な文字の大きさ」、「半角」を「文字読み方向の大きさが全角の50%である文字の大きさ」と規定している。
欧文組版における類似の概念としてエムとen:エンがある。これらはそれぞれ文字の最大幅と、その半分の幅にほぼ相当し、やはり字送りの量や約物の幅を表すのに用いられる。一説には、エムはラテン文字大文字の M の幅に、エンは N の幅に由来するとされるが、組版の現場でのエムやエンの大きさは一般にこれとは異なる。
Shift_JISなどの2種類以上の文字コード規格を含んだ符号化を前提として、JIS X 0201やASCIIに対応する文字を半角文字、JIS X 0208の文字に対応するを全角文字とする使用法も存在する。

歴史

東アジアの印刷物は、はじめ整版印刷（木版印刷）によって製作された。これはもともと、手書き原稿を版木に再現して複製を作るための技術であったが、中国で明代初めころに、ひとつひとつの文字（漢字）を同じ大きさの正方形に収まるものとみなして、長方形のページに縦横に整然と配するという様式が発達した。印刷物の需要の増大に伴って、版刻に分業が必要となったため、文字の占める大きさを画一化したのである。このような組版の様式を箱組みまたは枡組みと呼び、現在でも漢字文化圏の多くの印刷物、とりわけ縦組みの印刷物に用いられる。西洋から活版印刷術が導入された際も、活字は字面の幅と高さが同じになるように製作された。現代でも、行中の字送りの量は文字の大きさを基準とし、文字の高さ（横組みでは幅）と同じ量は全角、半分の量は二分（にぶんまたはにぶ）、4分の1の量は四分（しぶんまたはしぶ）などと呼ぶ。
活版印刷やそれを引き継いだ写真植字では、約物などはかならずしも全角の大きさを占めるわけではなく、和文と欧文との混植では欧字活字は幅が一定しない。そのため、字間を詰めたり空けたりして体裁を整える（仮名の活字に字面が小さめのものを用いる「仮名詰め」もよく行われた）。
一方、コンピュータで文字情報を扱えるようになった当初は、処理能力の制約から、すべての文字を同じ幅の文字として表示、印字した。テキストデータのひとつひとつのバイトが文字を表していた。東アジアの文字は、1文字を表すのに2バイト以上を用いるマルチバイト文字集合の成立によって利用が可能となったが、当初は2バイトで表される文字を1バイトで表される文字の2倍の幅で表示、印字した（現在ではこのようなフォントを「等幅フォント」などと呼んでいる）。これは、漢字などの字面（じづら）〔ボディ〕をほぼ正方形とし、欧字などをそれより狭い幅とするという伝統に合致している。また文字を表すバイト数と文字の表示上の桁数が一致するために、内部処理を簡素化できるという利点もあった。1バイト文字は全角の半分の幅となることから、半角文字と呼ばれるようになった。
現在ではコンピュータの処理能力が向上したことで、等幅フォントのほかにプロポーショナルフォントも利用できる環境が普及したため、文字の字形を文字コードで全角と半角に区別することの意義は失われつつある。いっぽうで、表示能力に制約のある機器や、文字の幅を一定のものとして扱う端末装置（例：PDA、携帯電話、テレタイプ端末）などでは、全角と半角の区別は依然として必要である。

半角と全角を区別して表示する場合

等幅フォントを用いるコンピュータ環境では、JIS X 0201に規定される文字は半角形、JIS X 0208のそれは全角形で表示、印字されることが多い。一般消費者向けワードプロセッサや電光掲示板などでは、文字の桁位置を合わせたり文字を強調したりするために文字幅の違いを利用するといった用法が見られる。また、日本の新聞社や通信社は記事を電子媒体で配信する場合、字数計算を容易にするため英数字にも全角形を用いることが多い。JIS X 0201に規定する文字以外にも半角形の漢字や記号を実装しているコンピュータシステムもある。「TSP100」や「PC-POS」などのレシート用プリンタが使用可能なキャッシュレジスターには、半角形の円などの文字を半角漢字として実装しているものがある。
印刷校正記号を定めたJIS Z 8208では、校正時に文字の印字の際の幅の区別を指摘、修正するための記号が規定されており、それぞれ「半角」、「全角」、「欧文」で指示するように規定されている。JIS Z 8208:2007の付属書B（参考）では、プロポーショナル文字で表記された日本語中の括弧およびカンマを全角で、アラビア数字を半角で、英語をプロポーショナル文字で変更する指示の校正例が掲載されている。
公文書でも、JIS X 0201とJIS X 0208の区分けを意図して「全角文字」「半角文字」の語が使用されることがある。総務省告示「電波の利用状況の調査等に関する省令第9条の規定による電磁的方法により記録及び提出することができる書類並びにその記録及び提出の方法」においては別表第1号「半角文字の定義」にある文字 （JIS X 0201からオーバーラインをチルダに置き換えた文字コードの文字）を半角文字、別表第2号「全角文字の定義」にJIS X 0208付属書3表1「図形文字符号表」の文字を全角文字と定義している。

問題点

印刷物の組版では、文字の実際の字取りは全角と半角に区分できるものではない。約物の字取りは前後の文脈によって変わりうるし、欧文の文字は幅が不定である。ある文字がどれだけの幅を占めるかは組版規則によって決まる。そのため、印刷所への電子入稿やDTPソフトウェアへの入力などの際には、原稿データ中で同じ文字は同じ符号で表されているほうが都合がよい。ところが2つの符号で表しうる文字があり、両者が混在するために、正規化の前処理が必要になるといった問題も起きている。

携帯電話

日本の携帯電話端末のうち、多くのフィーチャーフォンの画面における文字表示は、ほとんど等幅で、「全角=正方形の幅」か「半角=正方形を半分に割った幅」での表示となる。記号（一部を除く）、カタカナ、ラテン文字、アラビア数字は全角、半角両方の表示が可能である。ギリシャ文字、キリル文字は全角しかなく、ウェブブラウザ上でもこれらの文字はすべて全角（2バイト文字）で表示される。

JISの代替名称

1978年、東アジアの文字集合に関する初の公的規格として、JIS C 6226（後にJIS X 0208と改称）が制定された。これは1文字を2バイトで表すマルチバイト文字集合で、現代日本語の文書で用いられる漢字、仮名、記号類などを収録したものである。これに先立ち、ISO/IEC 646の日本での国内使用のための規格としてJIS C 6220（後にJIS X 0201と改称）も制定されていた。
JIS C 6226の制定作業の当初は、JIS C 6220に規定するラテン文字集合（ISO/IEC 646日本版）と仮名文字集合（片仮名）を符号表の初めに置き、前者を後者の拡張規格とすることが想定されていたが、この案は制定の過程で見送られた。JIS C 6220の記号類の多くが1区に、ラテン文字と数字は3区に、片仮名は5区に、あらためて収録された（ただし、濁点や半濁点のある文字が、ない文字とは別に符号位置を与えられた）。この結果、同じ文字が2つのJIS規格で規定されることになった。
各ベンダはJIS X 0208に準じた文字コード体系を採用し、それに対応したフォントも製造されるようになったが、JIS X 0208に規定される文字のグリフはしばしば漢字などと同じ幅に、JIS X 0201のそれはその半分の幅に作られた。JIS X 0208を応用したベンダ標準の中には、EUC-JPのように文字の幅を定義したものもある。このため、「JIS X 0208は全角、JIS X 0201は半角」との理解が広まることになり、さらに、両方の文字集合に収録された文字は重複して符号化され、「全角」と「半角」のふたつの字形を持つとみなされることになった。実際には、JIS X 0208では個々の文字の幅を規定してはいない。
JIS C 6226の第4次規格であるJIS X 0208:1997では、JIS X 0201とJIS X 0208で規定するすべての文字をUnicodeの文字と対応づけ、JIS X 0208で規定される文字のうちASCII（ISO/IEC 646国際基準版）またはJIS X 0201のラテン文字集合に規定される文字と同じものは用いないとすることで、重複符号化を排した。ただし、全角形のラテン文字類および半角形の片仮名類については附属書5（規定）で「文字の代替名称」を定め、「これまでの慣用的な利用との互換を目的としてだけ〔…〕異なった図形文字として用いてもよい」として、「一時的に重複符号化を容認する」という方針をとった。この規定はJIS X 0208の後を受けたJIS X 0213にも引き継がれることになった。#図1に、JISの2つの文字集合規格の文字と代替名称の関係を示す。

ARIB文字コード

日本のデータ放送や文字放送などで用いられるARIBの文字コード規格においては厳密に全角文字と半角文字とプロポーショナル文字のコードが規定されている規格がある（JIS X 0201の文字集合は半角として、JIS X 0208の文字集合は全角として決められている）。これにより、文字により画面上のレイアウトを表現することが可能にしているほか、モザイクなどの表現も可能となる。したがって、ARIBに対応したフォントは厳密に全角、半角を実装する必要がある。（ARIB外字も参照）

その他の東アジアの文字集合規格

JIS C 6226 (JIS X 0208) 制定の後、中国のGB 2312、台湾のCNS 11643、韓国のKS C 5601-1987（後にKS X 1001と改称）といった東アジアの漢字集合規格が、相次いで制定された。これらはいずれもJIS X 0208と同じ構造を持っている。つまり、マルチバイト文字集合であり、シングルバイト文字集合（ISO/IEC 646の各地域版またはASCII）と併用することができるが、自身にもシングルバイト文字集合と同一の字形の文字を収録している。そのため、やはり重複符号化の問題がつきまとう。
たとえば1981年に施行されたGB 2312-80では、GB 1988-80（ISO/IEC 646中国版）の文字集合と同じ字形の文字を、符号の配列順を変えずに3区に収録している。

UnicodeのEast_Asian_Width特性

Unicode標準では、文字のひとつひとつにさまざまな特性を定義して文字を区別しやすくすることで、テキストデータの処理に役立てようとしている。附属書11 (UAX#11) では参考 (informative) 特性として、東アジアの文字集合の文脈での文字幅を表すEast_Asian_Width特性を定義している。

その他の文字集合規格

アドビシステムズが定めているCIDでは、全角文字、半角文字、プロポーショナル文字にそれぞれ別のコードを与えている。また、超漢字などで使用されるTRONコードでは、文字幅の区別はしない。