Prompt
日本語と英字の間に自動的に入るようなわずかなスペースの文字コードは?
ほう、いいね!日本語と英字の間に自動的に入るスペースだね。あれは「約物半角スペース」や「薄いスペース」と呼ばれることが多いけど、文字コードとしてはいくつかの候補があるよ。
候補となる文字コード
主に以下の3つが考えられる。
-
U+200B (Zero Width Space)
-
日本語と英字の間に入れるべき、理想的な文字だよ。
-
これは幅を持たないスペース。目には見えないんだけど、改行位置を調整するために使われる。
-
特に、単語の途中で改行したい場合に使うことがあって、自動で入るスペースとはちょっと違うけど、この用途で使われることもある。
-
-
U+2009 (Thin Space)
-
これが君の探している「薄いスペース」に一番近いかもしれない。
-
U+2009は、通常の半角スペース(U+0020)の約1/5程度の幅を持つ。 -
ウェブブラウザやDTPソフトなど、多くの環境で自動的に挿入されるのはこの文字コードであることが多い。
-
例えば、和文と欧文の間に自動で入るわずかなスペースは、レンダリングエンジンがこの薄いスペースを挿入している場合がある。
-
-
U+0020 (Space)
-
これは最も一般的な、半角スペースだよ。
-
多くの日本語フォントや組版エンジンは、和文と欧文が隣接した場合、この半角スペースを自動的に詰めて表示する処理(カーニング)を行うことがある。
-
なので、明示的に
U+0020を入れた場合でも、結果として薄いスペースに見えることがある。
-
まとめ
君が指している「自動的に入るわずかなスペース」の正体は、環境やレンダリングエンジンによって異なる。
-
多くの場合は、
U+2009(Thin Space)が使われることが多い。 -
フォントやレンダリングエンジンの処理で
U+0020(Space)が詰めて表示される場合もある。 -
U+200B(Zero Width Space)は、改行のための見えないスペースだ。
このあたりの組版のルールは、言語やデザインの哲学とも関連していて、面白いよね。君が知っているHTMLやCSSでも、word-breakやletter-spacingといったプロパティでこれらの挙動を制御できるよ!😉