ノーブレークスペース

計算機による文字列処理において,その位置での自動改行を防ぐ空白文字

コンピュータにおいて、ノーブレークスペース: no-break space, non-breaking space, NBSP)は、スペースの箇所での自動的な改行を防ぐ特殊なスペースである。非分割空白[1] [2][注釈 1]とも呼ばれる。HTMLのように空白文字の並びを1つのスペースにまとめるシステムで、行内に複数のスペースを入れるために使うこともできる。

HTMLでは、通常のスペースの幅のノーブレークスペースは   または   と表される。Unicodeでは U+00A0 に割り当てられている。その他の幅のノーブレークスペースも存在する(#変種を参照)。

使用法

改行の禁止

英語などわかち書きをする言語において、文の途中で改行(行の折り返し)をする場合は単語と単語の間(スペース)で行う。テキスト処理ソフトは、スペースがある箇所はどこでも自動的な改行をしても良いものとみなすが、ノーブレークスペースはこれを防ぐ。例えば、文の途中に"100 km"という文言が行末に来て、長すぎて行に収まらない場合、ソフトウェアは"100"と"km"の間に改行を入れてしまうかもしれない。この好ましくないふるまいを避けるために、"100"と"km"の間にノーブレークスペースを入れる。ノーブレークスペースを使用した"100 km"はひと塊の単語のように扱われ、間に改行が入らないことが保証されており、行末にかかった場合はその前で改行されて次の行に表示される。

HTMLなどにおいて、通常のスペースでは日本語の文字の間が開かない場合があるためノーブレークスペースを使用されることがあるが、日本語の文字の間にあるスペースはスペースの箇所で改行されても問題ないスペースであるため使用すべきではない。通常は日本語間の間隔には和字間隔(全角スペース)を使用すべきである[注釈 2][注釈 3]

複数の連続するスペース

SGML・HTML・TeXLaTeXなどのプレーンテキストのファイルフォーマットではレンダリングエンジンが連続する空白文字(スペース・改行・タブ・改ページなど)の並びを1つのスペースとして表示する[注釈 4]。これは、最終的な表示結果とは関係なく、ソーステキストが見やすいように字下げや改行が入れられるようにするためである[3][4]

これに対して、ノーブレークスペースは表示時に周辺のホワイトスペース文字と統合されない。そのため、連続する複数のスペースを出力したいときにノーブレークスペースを使うことができる。

変種

国際符号化文字集合 (ISO/IEC 10646) とUnicodeには、ノーブレークスペースの変種が存在する。

  • U+202F narrow no-break space (HTML:   NNBSP)(狭いノーブレークスペース) - Unicode 3.0でモンゴル語のために導入された[5]。単語の境界を示すことなく、接尾辞を語幹から切り離すのに使う[6]。また、フランス語(" ; ? ! » › " の前と " « ‹ " の後。今日では " : " の前も)やロシア語(" — "の前)の約物の前後、ドイツ語の複数語からなる省略語 (z. B., d. h., v. l. n. r.) においても使用される[7]。モンゴル語で使用する場合は通常のスペースの3分の1の幅、他の言語では70%の幅だが、いくつかのフォントではシンスペース英語版 (U+2009) と同じになっている[8]
  • U+2007 figure space (HTML:  )(図形間隔、数字間隔) - 数字(0–9)と同じ幅のスペース。
  • U+2060 word joiner (HTML: ⁠ WJ)(単語結合子) - Unicode 3.2から導入。スペースを表示せず、その場所での改行を防ぐ[注釈 5]

符号化

規格ノーブレークスペースの表現
UnicodeISO/IEC 10646U+00A0   no-break space
UTF-8C2 A0
ISO/IEC 8859A0
JIS X 02131面9区2点(ラテン1互換)
CP1252(ほとんどのゲルマン諸語ロマンス諸語におけるWindowsのデフォルト)A0
KOI8-R9A
EBCDIC41 – RSP, Required Space
CP437, CP850, CP866FF
HTML(Wikitextを含む) 文字参照#文字実体参照(実体参照)

  または  文字参照#数値文字参照

TeX~チルダ
ASCII(使用不可。ただし、拡張ASCIIのバージョンの中には、文字255 (0xFF) をノーブレークスペースとして提供しているものがある。)

入力方法

ノーブレークスペースの入力法を定めた国家規格や国際規格はほとんどない。フィンランドで2008年にSFS 5966フィンランド語版スウェーデン語版として国家規格となった多言語用キーボードでは、ノーブレークスペースは AltGrキー + Space で入力できる[9]

キーボードドライバやアプリケーションプログラム(ワードプロセッサなど)の作成者は、ノーブレークスペースのためにそれぞれ独自のキーボード・ショートカットを導入した。

システム・アプリケーション入力方法
Microsoft Windows Alt+0+1+6+0 または Alt+2+5+5
macOS Opt+Space
X11Linux または UnixCompose, Space, Space
AmigaOS Alt+Space
Emacs Ctrl+X 8 Space
VimCtrl+K, Space, Space
Ctrl+K, Shift+N, Shift+S
Dreamweaver, LibreOffice, Microsoft Word,
OpenOffice.org(3.0以降)
Ctrl+ Shift+Space[注釈 6]
FrameMaker, LyX, OpenOffice.org(3.0以前)
WordPerfect
Ctrl+Space
Mac Adobe InDesign Opt+ Cmd+X

多くの日本語環境ではキーボードから直接入力では入力できないため文字コード表などを使用して、一覧から入力する必要がある[注釈 7]

符号位置

記号UnicodeJIS X 0213文字参照名称
 U+00A01-9-2 
 
 
ノーブレークスペース

関連項目

脚注

注釈

出典