ローマ数字にユニコードの特殊文字を使用する必要があるのはなぜですか?


43

これは、ローマ数字のUnicode文字に関するこの質問のコメントで生じた質問に答えることです。

ai、ai-ai、ai-ai-ai、vee-aiなどを入力する通常の方法よりも、なぜこれが必要または優先されるのですか?

最初から始めると、UnicodeのNumber Formsブロックには、一見標準的な大文字のラテン文字またはその組み合わせ(U + 2160 – U + 217F)に外観が非常に似ているローマ数字のコードポイントが存在します。たとえば、U + 2165(ローマ数字6)は、VI(ラテン大文字Vおよびラテン大文字I)に非常によく似ています。

1は、これらの数字と、例えば、タイプ表現するために、後者を使用してはならない理由をこのように、疑問が生じるLouis VIIの代わりにLouis Ⅶ。明らかに、特殊文字を使用しないことで、特殊文字をサポートしていないフォントとの互換性の問題を回避できます。しかし、これらの文字をサポートするフォントでテキストがレンダリングされることを知っていても、なぜそれらを使用する必要があるのですか?

回答:


56

多くのフォントでは、ローマ数字にユニコード文字を使用することと、標準のラテン文字から単にユニコード文字を作成することとの間に違いはほとんどありません。たとえば、次の図は、FreeSansでレンダリングされたLouis VII(上)とLouis Ⅶ(下、ローマ数字のコードポイントを使用)を示しています。

ここに画像の説明を入力してください

おそらく意図的ではなかった間隔のわずかな違いは別として、出力は同じです。

以下は、DejaVu Sansでレンダリングされた同じテキストです。

ここに画像の説明を入力してください

文字はまだ同一に見えますが、間隔にはかなりの違いがあります。後者がローマ数字に適しているかどうかは好みの問題かもしれませんが、通常の全大文字のカーニングの良い選択ではありません。

Linux Libertineはさらに一歩進んでいます。

ここに画像の説明を入力してください

ここで、ローマ数字は大文字よりわずかに小さいため、フォントのアラビア数字と一致します。最も重要なことは、それらは接続されており、手書きのローマ数字でよく見られる特徴を再現しています。

さて、上記の改善がないか、努力する価値がないと主張する人もいます。そのため、Unicode文字を使用しないと恐ろしい結果になるケースがあります。

ここに画像の説明を入力してください

(数字の小さいサイズは、実際の歴史的な組版を反映していることに注意してください。)同様のことが、スクリプトまたはカリグラフィックフォントで発生する場合があります。

ローマ数字に特定のUnicodeポイントがなければ、後者の問題を解決するには次の方法が必要です。

  • 大文字のシーケンスがローマ数字であるかどうかを検出しようとする複雑なOpenType機能(または類似の機能)を使用します。これは必然的に有効なローマ数字である単語の問題を引き起こします。

  • 単純なOpenType機能を使用して、ローマ数字ごとに手動でアクティブ化する必要があります。

  • Unicodeの私用領域を使用します。両方ともローマ数字をサポートする2つのフォントを切り替える場合でも、互換性の問題が発生する可能性があります。

Unicodeの観点から見ると、ローマ数字の別個のエンコードには、大文字のラテン文字とローマ数字の大きな意味の違いがすでに十分にあるはずです。


ローマ数字は頭字語や頭文字とは異なる問題を引き起こしますが、どちらもフォントに小さな大文字のセットを含めることで適切に処理されますか?Smallcapではなく大文字を使用して「VII」を表示するシナリオは、「NATO」または「PM」を同様に表示するシナリオと同じだと思います。「VIP」ではなく「VII」でクロスバーを接続する方法があると便利ですが、テキスト内で数字を使用する場合はクロスバーを接続する必要があるかどうかわかりません。
スーパーキャット

非常に良い拡張セマンティクスを少し追加しましたが、回答に組み込みたい場合は、気軽にsoaを実行し、私のものを削除してください。
joojaa

@supercat:あなたが何を目指しているのか正確にはわかりませんが、私の経験では、現代のタイポグラフィでは、ローマ数字は常に大文字のサイズを持っていますが、ドイツ語以外の言語では、すべて大文字の略語に小さな大文字を使用することが考えられます。ブラックレターのタイポグラフィでは、ローマ字フォントをすべて大文字の略語とローマ数字に使用しますが、場合によっては小さいローマ数字(上記のように)を使用し、非常に特別な場合にはブラックレター全角文字を使用します。
Wrzlprmft

@Wrzlprmft:ローマ数字が「PM」や「NATO」のようなものと同じサイズで印刷されることを期待します。一部のコンテキストでは、そのようなものはフルサイズの大文字として印刷されますが、他のコンテキストでは、それらが目立つようになります。フォントに大文字のセットがあり、そのデザインがフォントの他の部分との関係で「PM」または「NATO」に適している場合、ローマ数字にも適していると思います。
-supercat

@supercat:通常のローマ字フォントの場合、はい(ただし、これが最善の方法であるかどうかは議論できます)。しかし、ブラックレターとスクリプトフォントはどうでしょうか。また、それから何を結論づけますか?
Wrzlprmft

27

TL; DR Unicodeコンソーシアムは、東アジアのタイポグラフィとの互換性のために含まれている数字ではなく、可能な限りラテン文字を使用することを推奨しています。

完全なストーリー:(上記の主張を正当化して)

東アジアのタイポグラフィをしているのでない限り、Unicode(U + 2160 — U + 217F)の(非古風な)ローマ数字を使用するのはハックです。

これらの文字は、Unicode以前の東アジア標準との互換性のために含まれています。これらの文字は、東アジアのテキストが上から下にタイプセットされている場合は垂直のままですが、通常、このコンテキストではラテン文字(名前など)のテキストが横向きに書き込まれます。

Unicode標準の最後のバージョン(v 7.0、chap。22、p。20)を引用するには:

ローマ数字。ほとんどの場合、適切なラテン文字のシーケンスからローマ数字を構成することが望ましいです。ただし、東アジア標準との互換性のために、12を通るローマ数字の大文字と小文字のバリエーション、およびL、C、D、およびMがNumber Formsブロック(U + 2150..U + 218F)にエンコードされています。ラテン文字のシーケンスとは異なり、これらのシンボルは垂直レイアウトで直立したままです。さらに、特定のロケールでは、コンパクトな日付形式では月にローマ数字が使用されますが、単一の文字の使用が想定される場合があります。

したがって、理論上、ローマ数字と文字の区別は、斜体、フォント変更、オプションの合字などのリッチテキストの問題です。とはいえ、@ Wrzlprmftが示すように、一部のフォントはこれを使用して、適切なタイポグラフィを維持しながら各ローマ数字のフォント変更を回避します。

XIIIにではなくXIIに文字が存在するということは、同じ数字にいくつかの異なるエンコードが存在することを意味します。これは、テキスト検索に困難をもたらします。 I + Iですが、XIIを単一の文字として記述しますか?または、X + I + IとしてXIIIと一貫した表示を行うには?ローマ数字を使用している間、この質問に対する良い答えは1つもありません。そのため、Unicodeコンソーシアムは、数字ではなくラテン文字を使用することを推奨しています。

編集: TL; DRアサーションを最初に追加しました


9
Unicodeコンソーシアムは、数字ではなくラテン文字を使用することを推奨しています。」これは現在よりもはるかに目立つはずです。
Ixrec

1
Unicodeセマンティクスの観点からは、これがここでの最良の答えです。特定のフォントではローマ数字を好む実用的な理由があるかもしれません。それはもちろん独立したグラフィックデザインの考慮事項ですが、意味的には常に間違っています。
R ...

13

外観の観点からは、それほど大きな違いはないかもしれません。したがって、Wrzlprmftが優れた回答で指摘しているように、一部のフォントを除いて、印刷物のみを公開する場合、違いはありません。

セマンティクスは重要です

意味の違いは非常に大きいです。ローマ数字を使用すると、文字Vではなく数字5について話していることがはっきりとわかります。確かに同じように見えますが、意味が異なります。つまり、「XXバージョン5」を検索すると、検索エンジンが「XXマークV」を見つける可能性が高くなる可能性があります。

実際、いくつかのことがうまく機能しない理由は、セマンティック情報を埋め込まないためです。私たちがそうするなら、世界は確かにより良い場所になるでしょう。したがって、正しいセマンティックな意味を使用することは、ワードプロセッサでスタイルを使用することと手動でスタイルを設定することとほぼ同じです。人間側ではほとんど違いはありませんが、自動化には大きな力があります。

フォントは異なるローマ数字を作成する必要があります

フォントメーカーはあまり使用されないため、実際にはこれらを使用していません。しかし、これらを使用することで、文字とローマ数字のスラブを取得して、テキストと区別することができます。したがって、この機能はまれにしか使用されないため、十分に活用されていません。フォントは実際にはすべてを実装しているわけではありません。これらを使用することにより、それらが存在する場合にメリットがあります。

結論

これは確かに鶏と卵のタイプの問題です。人々が特殊文字の範囲を使用しない場合、それらの範囲に対する特別な許可は行われません。したがって、フォントは特別なスタイルのローマ字リテラルをサポートしません。これは、誰も使用しない機能に労力を浪費するだけだからです。検索にも同じことが当てはまります。誰もローマ字リテラルを使用しない場合、検索エンジンはローマ字リテラルを見つけられず、セマンティクスは失われます。意味論は、正しい意味論的意味を採用しないことに苦しんでいます。この同じことは、より広い範囲のUnicode文字にも確かに当てはまります。

入力の複雑さに関して、はい、ほとんどのユーザーは拡張文字を書くことができませんが、それが理にかなっている場合、知識のある人がそうすることをスキップする言い訳にはなりません。誰も物事を良くしなければ、進歩はありません。Hell even wordには、/ alphaと入力してアルファを書き込むモードがあります。そのため、数字にタグを付けたり、数字を自動的に提案したりする簡単な方法がない理由はまったくありません。繰り返しますが、誰もこれを行わない場合、それが広く普及することはありません。


実際、「LouisⅦ」ではなく「Louis VII」を検索する場合、実際にはほとんどのコンテンツがこのような細かい意味上の区別を許可しないツールで生成されるため、検索エンジンははるかに良い結果を返します。
-xpereta

1
@xperetaはい、人々はセマンティクスを気にしないからです。ただし、その場合は、数字の7も簡単に一致します。世界の不平等の多くは、人々が簡単にそうすることができるのに、物事の意味の違いを明示的に指摘するのに重要だとは考えていないからです。コンピューターは本当に人間が違いを知らない
joojaa

1
@joojaaこの場合、おそらくVIIはthanよりも入力がはるかに簡単であるという事実と関係があります。それが変わるかどうかはわかりません。
Ixrec

最後の段落を少し拡張して、このような特殊文字の使用を増やすと、フォントの実装が広くなるという結論に達しました。
ネイサンタギー

2
セマンティクスに関するこの答えに強く疑問を呈します。Unicodeローマ数字は<compat>、対応するラテン文字のシーケンスと同等です。これは、それらがUnicodeである唯一の理由が、それらを含むいくつかのレガシー(おそらくCJK)文字セットとのラウンドトリップ互換性であることを強く示唆しています。通常、このような文字は、レガシーエンコーディングで作成されたドキュメントを忠実に往復する場合を除き、使用しないでください。
R ..
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.