ソフトハイフン(Soft Hyphen)とは
ソフトハイフン(soft hyphen)は、テキストデータにおいて、単語を途中で分割して改行する位置を示すための制御文字です。通常は画面上には表示されませんが、行末で単語が収まりきらない場合に、指定された位置でハイフンを挿入して改行を行います。これは、特に
英語のように単語間が
スペースで区切られる言語で、行末の見た目を調整するために用いられます。
ソフトハイフンは、「SHY」と略されることもあり、「discretionary hyphen(任意のハイフン)」とも呼ばれます。
ハイフネーションの必要性
アルファベットを使用する言語では、通常、単語と単語の間で改行が行われます。しかし、行の終わりに長い単語が来てしまうと、その行だけが不自然に間延びして見えることがあります。これを避けるために、単語を
音節単位で分割し、残りの部分を次の行に送る「ハイフネーション」という処理が行われます。
ハイフネーションを行う位置は、言語や単語の意味によって決まります。そのため、自動で適切なハイフネーションを行うには、大規模な辞書や複雑なアルゴリズムが必要となります。
ソフトハイフンは、このようなハイフネーションの位置を、手動で明示的に指定するために用いられます。これにより、テキストを表示する環境に依存せず、常に適切な位置で単語を分割することが可能になります。また、ソフトハイフンが不要な場合には、表示に影響を与えません。
ソフトハイフンの挙動
ソフトハイフンは、ハイフンそのものを表示する文字ではなく、あくまでハイフネーションを行う位置を示すための制御文字です。そのため、ソフトハイフンがあるからといって必ずしもハイフンが表示されるわけではありません。
例えば、「hyphen」という単語にソフトハイフンが含まれている場合、通常はそのまま「hyphen」と表示されます。しかし、行の幅が狭く、単語が収まりきらない場合には、「hy-」と表示され、次の行に「phen」と表示されます。この時、表示されるハイフンはソフトハイフンそのものではなく、ソフトハイフンが指定する位置でハイフネーションが行われた結果です。
ソフトハイフンがない場合でも、高度な自動ハイフネーション機能を持つレンダラーであれば、同様にハイフネーションが行われる場合があります。しかし、自動ハイフネーション機能がない環境では、ソフトハイフンがない限り単語の分割は行われず、行が不揃いになることがあります。
ソフトハイフンは、ハイフネーションを強制するものではなく、あくまで「ここでのハイフネーションが許容される」ということを示すものです。また、ソフトハイフンがある場合でも、別の場所でのハイフネーションを禁止するものではありません。
ソフトハイフンと綴りの変化
一部の言語では、ハイフネーションによって単語の綴りが変化することがあります。例えば
スウェーデン語の「tuggummi」は、ハイフネーションされると「tugg-gummi」のように、gが1つ増えることがあります。
このような場合に、ソフトハイフンを単純に「tugg<SHY>ummi」と挿入してしまうと、ハイフネーション時に正しい綴りが表示されません。理想的には、ハイフネーション時の綴り変化をレンダラーが考慮する必要がありますが、これを実装している例は少ないのが現状です。
符号位置
ソフトハイフンは、
Unicodeにおいて U+00AD の符号位置が割り当てられています。
まとめ
ソフトハイフンは、テキストデータの表示を美しく整えるための重要な機能です。特に、様々な表示環境でウェブコンテンツを閲覧する現代においては、ソフトハイフンの適切な使用が、可読性の向上に貢献すると言えるでしょう。自動ハイフネーションと組み合わせることで、より柔軟なテキスト表示が可能になります。
参考情報
- - Unicode Standard 6.2: 16 Special Areas and Format Characters
- - Unicode Standard Annex #14 Unicode Line Breaking Algorithm