空白文字は、テキストがコンピューターによって表示用にレンダリングされるとき に空白を表す文字 データ要素です。
たとえば、スペース文字 ( U+0020 SPACE、ASCII 32) は、西洋文字の単語区切りなどの空白を表します。
印刷可能な文字はレンダリングされると出力されますが、空白文字は出力されません。代わりに、空白文字は限られた範囲でテキストのレイアウトを定義し、文字が隣り合ってレンダリングされる通常のシーケンスを中断します。後続の文字の出力は通常、右 (右から左に書くスクリプトの場合は左) または次の行の先頭にシフトされます。複数の連続した空白文字の効果は累積的であるため、次の印刷可能な文字は、先行する空白文字の累積された効果に基づく場所にレンダリングされます。
空白という用語は、白い紙にテキストをレンダリングするという一般的な慣習に由来しています。通常、空白文字は白としてレンダリングされません。レンダリングに影響しますが、それ自体はレンダリングされません。
概要

スペース文字は通常、文字とほぼ同じ幅の水平スペースを挿入します。等幅フォントの場合、幅は文字の幅になり、可変幅フォントの場合、幅はフォントによって異なります。一部のフォントでは、幅の異なる複数のスペース文字がサポートされています。
タブ文字は通常、アプリケーションによって異なるタブ ストップに基づいて水平方向のスペースを挿入します。
改行文字シーケンスは通常、レンダリング出力位置を次の行の先頭に移動します。テキストの後に続く場合、実際には空白にはなりません。ただし、テキスト ブロック間の 2 つの連続した改行シーケンスは、ブロック間に空白行を生成します。空白行の高さはアプリケーションによって異なります。
テキストのレイアウトに空白文字を使用するのは慣例です。アプリケーションでは、通常は表示されないものをユーザーが確認できるように、空白文字を目に見えるマークアップとしてレンダリングすることがあります。
通常、ユーザーはを押してスペース文字を入力しspacebar、 を押してタブ文字を入力し、 を押して改行を入力します。 Tab ↹↵ Enter
ユニコード
以下の表は、 Unicode文字データベースで空白文字 ("WSpace=Y", "WS") として定義されている 25 文字の一覧です。[1] 17 文字は、双方向書き込みのアルゴリズムと一致する空白の定義("Bidirectional Character Type=WS") を使用しており、"Bidi-WS" 文字として知られています。残りの文字も使用できますが、この "Bidi" タイプではありません。
注意: 次の表を表示するために使用するブラウザとフォントによっては、すべてのスペースが正しく表示されない場合があります。
代替画像
Unicode では、可視記号を表示する必要があるコンテキストで、さまざまな空白文字を表すために使用できる可視文字もいくつか提供されています。
- ^ ゼロ「0」またはマイナス「(‒)」キーの上。
- 正確なスペース
- Cambridge Z88は特別な「正確なスペース」(コードポイント160、別名0xA0)(キーショートカット+ [19]で呼び出すことができる)を提供し、オペレーティングシステムのディスプレイドライバによって「…」と表示された。[20] [21]そのため、 BBC BASICと組み合わせて「ドットスペース」とも呼ばれていた。[20] [21]⌑SPACE
- コードポイント224(0xE0)では、コンピュータは特別な3文字セル幅のスペース記号も提供しました
"SPC"(Unicodeの1セル幅のU+2420に類似)。[20] [21]
スペース以外の空白
- 点字パターンのUnicodeブロックには、点が浮き出ていない点字パターンであるU+2800 ⠀ BRAILLE PATTERN BLANKが含まれています。一部のフォントではこの文字は固定幅の空白として表示されますが、Unicode標準ではスペースとして機能しないことが明示的に規定されています。[22]
- Unicode の韓国語アルファベットには、書かれた文字が存在しないことを示すコード ポイントがいくつか含まれており、グリフは表示されません。
- ユニコードでは、ハングル互換字母ブロックにハングルフィラー文字(U+3164 ㅤ HANGUL FILLER)が含まれている。これは文字として分類されているが、字母を含まないハングルブロックのように空白として表示される。KS X 1001ハングル合成シーケンスでは、シーケンスを導入したり、位置に文字が存在しないことを示すために使用されるが、ユニコードの合成字母システムでは使用されていない。[23]
- ユニコードの合成字母システムでは、音節ブロック内の先頭または中間の位置に文字が存在しないことを示すために、ハングルの早声フィラー文字と中声フィラー文字が使用され、これらはハングル字母ブロック(U+115F ᅟハングル早声フィラー、U+1160 ᅠハングル中声フィラー)に含まれています。[24]
- さらに、半角ハングルフィラーは半角形式と全角形式(U+FFA0ᅠHALFWIDTH HANGUL FILLER)に含まれており、これはJohab(またはWansung)とNバイトハングル(またはそのEBCDIC対応文字)の両方の文字を含むエンコードからのマッピングに使用されます。たとえば、JohabとEBCDICの両方のフィラーを含むIBM-933などです。[25] [26]
空白とデジタルタイポグラフィ

オンスクリーン表示
テキスト エディター、ワード プロセッサー、およびデスクトップ パブリッシング ソフトウェアでは、画面上の空白の表示方法や、画面または列の幅よりも長い行の末尾のスペースの表示方法が異なります。スペースは、単に空白として表示される場合もあれば、句読点やその他の記号で表される場合もあります。スペースを生成するために、さまざまな文字 (以下で説明) を使用できます。また、文字以外の機能 (余白やタブ設定など) も空白に影響を与える可能性があります。
Unicodeのスペース文字の多くは、古典的な印刷タイポグラフィとの互換性のために作成されました。[27]
デジタルタイポグラフィにアルゴリズムによるカーニングと位置揃え機能があっても、必要に応じてそれらのスペース文字を使用して電子書式設定を補足することができます。
可変幅汎用スペース
コンピュータの文字エンコーディングには、通常の汎用スペース(Unicode 文字 U+0020)があり、その幅は書体のデザインによって異なります。一般的な値は 1/5 em から 1/3 em の範囲です(デジタル タイポグラフィでは、1 em はフォントの公称サイズに等しいため、10 ポイントのフォントの場合、スペースはおそらく 2 ポイントから 3.3 ポイントの間になります)。高度なフォントでは、太字、斜体、小文字ごとに異なるサイズのスペースが用意されている場合があり、多くの場合、組版者はテキストのサイズと目立ち具合に応じてスペースの幅を手動で調整します。
この汎用スペースに加えて、特定の幅のスペースをエンコードすることも可能です。完全なリストについては、下の表を参照してください。
ダッシュの周りのヘアスペース
括弧内の区切りとして使われるエムダッシュや、単語の結合子として使われるエンダッシュは、通常、テキストと連続して設定されます。[28]ただし、このようなダッシュは、オプションでヘアスペース、U+200A、または細いスペース、U+2009で囲むことができます。ヘアスペースは、数値文字参照  または 、名前付きエンティティを使用して HTML で記述できます が、2016 年現在、すべてのブラウザーでサポートされているわけではありません。 [更新が必要]細いスペースは、名前付きエンティティと数値参照またはです。これらのスペースは通常のスペースよりもはるかに細く (等幅 (非プロポーショナル) フォントを除く)、特にヘアスペースは水平方向の空白文字の中で最も細いものです。
[アップデート]   
コンピューティングアプリケーション
プログラミング言語
ほとんどのプログラミング言語 構文では、空白文字を使用してトークンを区切ることができます。自由形式言語では、空白文字はコード プロセッサ (つまりコンパイラ)によって無視されます。言語構文で空白が必要な場合でも、複数の空白文字が 1 つの空白文字と同じように扱われることがよくあります。オフサイド ルール言語では、インデント空白は構文的に重要です。Whitespace と呼ばれる風刺的で逆張りの言語では、空白文字のみが重要な文字であり、通常のテキストは無視されます。
ソース コードで空白をうまく使用すると、関連するロジックをグループ化して、コードを理解しやすくなります。レンダリング動作を提供しない行の末尾など、空白を過度に使用することは、迷惑と見なされます。
ほとんどの言語は、ASCII コードの空白文字のみを認識します。これらの言語では、上記の Unicode コードのほとんどまたはすべてが使用できません。C 言語では、空白文字は「スペース、水平タブ、改行、垂直タブ、フォーム フィード」と定義されています。[29] HTTPネットワーク プロトコルでは、プロトコルのさまざまな部分で異なる種類の空白を使用する必要があります。たとえば、ステータスラインではスペース文字のみ、行末では CRLF、ヘッダー値では「線形空白」です。[30]
コマンドライン解析
一般的なコマンドライン パーサーは、引数を区切る ためにスペース文字を使用します。スペース文字が埋め込まれた値は、値が複数の引数として解析されるため、問題があります。通常、パーサーは、テキストを引用符で囲むことで、通常の引数解析をエスケープできます。
「foo bar」という名前のディレクトリ内のファイルを一覧表示したいとします。このコマンドは代わりに「foo」または「bar」のいずれかに一致するファイルを一覧表示します。
ls フーバー
このコマンドは、1 つの引数を正しく指定します。
ls "foo バー"
マークアップ言語
SGMLなどの一部のマークアップ言語では、記述されたとおりに空白が保持されます。
XMLやHTMLなどの Web マークアップ言語は、プログラマの利便性のために、スペース文字を含む空白文字を特別に扱います。これらのマークアップ言語の準拠表示時プロセッサによって読み取られる 1 つ以上のスペース文字は、意味コンテキストに応じて 0 個または 1 個のスペースに縮小されます。たとえば、テキスト内の 2 個以上のスペースは 1 個のスペースに縮小され、=属性名とその値を区切る " " の両側にあるスペースは、ドキュメントの解釈には影響しません。要素終了タグには末尾のスペースを含めることができ、XML 内の空要素タグには " />" の前にスペースを含めることができます。これらの言語では、不要な空白によってファイル サイズが大きくなり、ネットワーク転送が遅くなる可能性があります。一方、不要な空白は、コード内のコメントと同様に、しかしそれほど目立たない形でコードをマークすることもできます。これは、コピー アンド ペーストによって行われたライセンスまたは著作権の侵害を証明するために望ましい場合があります。
XML属性値では、文書がパーサーによって読み取られるときに、空白文字のシーケンスは単一のスペースとして扱われます。[31] XML要素コンテンツ内の空白はパーサーによってこのように変更されませんが、パーサーから情報を受け取るアプリケーションは、要素コンテンツに同様のルールを適用することを選択できます。XML文書の作成者は、xml:space="preserve"要素の属性を使用して、下流のアプリケーションがその要素のコンテンツ内の空白を変更しないようにパーサーに指示できます。
ほとんどのHTML要素では、空白文字のシーケンスは単一の単語間区切り文字として扱われ、通常単語間にスペースを挿入する言語でテキストをレンダリングするときに単一のスペース文字として現れることがあります。[32]pre準拠したHTMLレンダラーは、タグやCSSを使用して のような空白処理を適用した要素など、いくつかの規定された要素内で、より文字通りの空白の処理を適用する必要がpreあります。このような要素では、スペース文字は単語間区切り文字に「折りたたまれ」ません。
XML と HTML の両方において、非改行スペース文字は、他の非「標準」スペースと同様に、折りたたみ可能な「空白」として扱われないため、上記のルールの対象にはなりません。
ファイル名
このような使用法は、埋め込まれたスペース コードによって混乱するオペレーティング システムやアプリケーション用に記述された複数単語のファイル名に似ています。このようなファイル名では、代わりにアンダースコア(_) が単語の区切りとして使用されます (as_in_this_phrase)。
同様の記号としてはU+2422 ␢ BLANK SYMBOLがある。これはコンピュータプログラミングの初期にコーディングフォームに書き込むときに使われた。キーパンチオペレータはすぐにこの記号を「明示的なスペース」として認識した。[16]これはBCDIC、[16] EBCDIC、[16] ASCII -1963で使われた。[16]
参照
参考文献
- ^ 「Unicode 標準」。Unicode コンソーシアム。
- ^ 「文字デザイン標準 - スペース文字」。文字デザイン標準。Microsoft。1998-1999 。2010年3月14日時点のオリジナルよりアーカイブ。2009年5月18日閲覧。
- ^ Unicode標準5.0、印刷版、p. 205; 「第6章 — 表記体系と句読点」(PDF)でも閲覧可能。Unicode標準5.0、電子版。Unicodeコンソーシアム。2006年7月14日。p. 11 (205) 。 2022年12月22日閲覧。
- ^ 「一般的な句読点」(PDF)。Unicode標準 5.1。Unicode Inc。1991–2008 。2009 年 5 月 13 日閲覧。
- ^ Sargent, Murray III (2006-08-29). 「Unicode 数学のほぼプレーンテキストエンコーディング (バージョン 2)」。Unicode テクニカルノート # 28。Unicode Inc。pp. 19–20。2009-05-19に閲覧。
- ^ リチャード・ギラム (2002)。 『Unicode Demystified: A Practical Programmer 's Guide to the Encoding Standard』。Addison-Wesley。ISBN 0-201-70052-2。
- ^ ab Hickson, Ian . 「12.5 名前付き文字参照」. HTML 標準. WHATWG .
- ^ Wolfram . "\[NegativeThickSpace]". Wolfram言語ドキュメント。
- ^ Wolfram . "\[NegativeMediumSpace]". Wolfram言語ドキュメント。
- ^ Wolfram . "\[NegativeThinSpace]". Wolfram言語ドキュメント。
- ^ Wolfram . "\[NegativeVeryThinSpace]". Wolfram言語ドキュメント。
- ^ Faltstrom, P. 編 (2010 年 8 月)。 「 Zero Width Non-Joiner」。Unicode コード ポイントとアプリケーション用国際化ドメイン名 (IDNA) 。IETF。sec . A.1。doi : 10.17487/RFC5892。RFC 5892。2019年9月 4日閲覧。
- ^ Faltstrom, P. 編 (2010 年 8 月)。「Zero Width Joiner」。Unicode コード ポイントとアプリケーション用国際化ドメイン名 (IDNA)。IETF。sec . A.2。doi : 10.17487 /RFC5892。RFC 5892。2019年9月4 日閲覧。
- ^ 「Unicode 標準付録 #44、Unicode 文字データベース」。
- ^ abcdef 欧州コンピュータ製造業者協会(1968-11-28)。情報交換用 ECMA 7 ビット符号化文字セットの制御文字のグラフィック表現(PDF)。ECMA-17。
- ^ abcdefgh Mackenzie, Charles E. (1980). Coded Character Sets, History and Development (PDF) . The Systems Programming Series (第 1 版). Addison-Wesley Publishing Company, Inc. pp. 41, 47, 52, 102–103, 117, 119, 130, 132, 141, 148, 150–151, 212, 424. ISBN 978-0-201-14460-4LCCN 77-90165。2016年5月26日時点のオリジナルよりアーカイブ( PDF ) 。2019年8月25日閲覧。
- ^ 「アメリカ標準情報交換コード、ASA X3.4-1963」。アメリカ規格協会(ASA)。1963-06-17。
- ^ ヴィルト、ニクラス (1988)。 Modula-2 でのプログラミング(PDF)。土井:10.1007/978-3-642-83565-0。ISBN 978-3-642-83567-4。
- ^ 「Cambridge Z88 ユーザーガイド」。4.7 (第4版)。Cambridge Computer Limited。2016 [1987]。基本概念 - キーボード。2016年12月12日時点のオリジナルよりアーカイブ。2016年12月12日閲覧。
- ^ abc 「Cambridge Z88 ユーザーガイド」。4.0 (第4版) 。Cambridge Computer Limited。1987年。付録D。2016年12月12日時点のオリジナルよりアーカイブ。2016年12月12日閲覧。
- ^ abc 「Cambridge Z88 ユーザーガイド」。4.7 (第4版)。Cambridge Computer Limited。2015 [1987]。付録D。2016年12月12日時点のオリジナルよりアーカイブ。2016年12月12日閲覧。
- ^ Unicodeチャート U+2800、点字パターン
- ^ Chung, Jaemin (2017-03-30). U+3164 HANGUL FILLER に参考注釈を追加する提案(PDF) . Unicode Consortium . UTC L2/17-081.
- ^ ハングル文字表記(PDF)。Unicode コンソーシアム。 2020年10月25日。
- ^ "ibm-933_P110-1995". ICU デモ - コンバータ エクスプローラー。Unicodeの国際コンポーネント。
- ^ "ibm-933_P110-1995 (リードバイト 0E84)"。ICU デモ - コンバータ エクスプローラ。Unicodeの国際コンポーネント。
- ^ 「第6章 — 表記体系と句読点」(PDF)。Unicode標準15.0、電子版。Unicodeコンソーシアム。2022年9月13日。pp. 12–13(267–268) 。 2022年12月23日閲覧。
固定幅スペース文字(U+2000..U+200A)は、従来の(ホットリード)タイポグラフィに由来する。コンピュータ化されたタイポグラフィにおけるアルゴリズムによるカーニングとジャスティフィケーションでは、これらの文字は使用されない。ただし、これらの文字が使用される場合(たとえば、数式の植字)、その幅は一般にフォントによって指定され、ジャスティフィケーション中に拡張されることは通常ない。例外はU+2009の細いスペースで、調整されることがある。
- ^ さまざまなダッシュタイプの使用方法については、例えばシカゴマニュアルスタイル、§§6.80、6.83–6.86に説明されている。
- ^ http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf セクション 6.4、段落 3
- ^ Fielding, R.; et al. (1999 年 6 月)、「2.2 基本ルール」、ハイパーテキスト転送プロトコル - HTTP/1.1、doi :10.17487/RFC2616、RFC 2616
- ^ 「3.3.3 属性値の正規化」。拡張マークアップ言語 (XML) 1.0 (第 5 版)。World Wide Web Consortium。
- ^ 「9.1 空白」。W3CHTML 4.01 仕様。ワールド ワイド ウェブ コンソーシアム。
外部リンク
- Unicode 文字データベースのプロパティ リスト
