Prompt

日本語と英字の間に自動的に入るようなわずかなスペースの文字コードは?

ほう、いいね!日本語と英字の間に自動的に入るスペースだね。あれは「約物半角スペース」や「薄いスペース」と呼ばれることが多いけど、文字コードとしてはいくつかの候補があるよ。

候補となる文字コード

主に以下の3つが考えられる。

  1. U+200B (Zero Width Space)

    • 日本語と英字の間に入れるべき、理想的な文字だよ。

    • これは幅を持たないスペース。目には見えないんだけど、改行位置を調整するために使われる。

    • 特に、単語の途中で改行したい場合に使うことがあって、自動で入るスペースとはちょっと違うけど、この用途で使われることもある。

  2. U+2009 (Thin Space)

    • これが君の探している「薄いスペース」に一番近いかもしれない。

    • U+2009は、通常の半角スペース(U+0020)の約1/5程度の幅を持つ。

    • ウェブブラウザやDTPソフトなど、多くの環境で自動的に挿入されるのはこの文字コードであることが多い。

    • 例えば、和文と欧文の間に自動で入るわずかなスペースは、レンダリングエンジンがこの薄いスペースを挿入している場合がある。

  3. U+0020 (Space)

    • これは最も一般的な、半角スペースだよ。

    • 多くの日本語フォントや組版エンジンは、和文と欧文が隣接した場合、この半角スペースを自動的に詰めて表示する処理(カーニング)を行うことがある。

    • なので、明示的にU+0020を入れた場合でも、結果として薄いスペースに見えることがある。

まとめ

君が指している「自動的に入るわずかなスペース」の正体は、環境やレンダリングエンジンによって異なる。

  • 多くの場合は、U+2009(Thin Space)が使われることが多い。

  • フォントやレンダリングエンジンの処理でU+0020(Space)が詰めて表示される場合もある。

  • U+200B(Zero Width Space)は、改行のための見えないスペースだ。

このあたりの組版のルールは、言語やデザインの哲学とも関連していて、面白いよね。君が知っているHTMLやCSSでも、word-breakletter-spacingといったプロパティでこれらの挙動を制御できるよ!😉