web-dev-qa-db-ja.com

小さな文字や文字などの文字体裁スタイルをシミュレートするのにUnicode文字を使用しないのはなぜですか。

Unicodeには、基本的なラテンアルファベットの文字の活版印刷で様式化されたバリエーションのように見え、マークアップなどに頼らずに対応する活字印刷スタイルでテキストを書くことを可能にするさまざまな文字が含まれています。たとえば、次のようにシミュレートできます。

  • 小さな帽子:

    ʙᴇʜᴏʟᴅꜰᴀɴᴄɪʟꜰᴀɴᴄɪʟᴇɴᴄᴏᴅᴇᴅᴛᴇᴛᴛ。

  • スクリプト:

    ?????????????????????? ???????????????? ?????????????????????????? ?????????????????????????? ????????????????.

  • ブラックレター:

    ?????????????????????? ???????????????? ?????????????????????????? ?????????????????????????? ????????????????.

これはStack Exchangeに興味をそそりました(例: ここここ 、そして ここ )そしてそのような技術に対する批判がなされました。しかし、それらを使用すると何が悪くなる可能性がありますか?

124
Wrzlprmft

全般

これらの文字は、通常のラテンアルファベットのテキストではなく、音声記号、キリル文字のアルファベットのテキスト、数学記号(変数を表す)などとしての使用を目的としています。基本ラテン系アルファベットでテキストをエンコードする唯一のUnicode準拠の方法は、この目的で主に使用される文字を使用することです(つまり、基本ラテン系Unicodeブロックから)。

他の多くの標準と同様に、Unicodeに違反することについて二度考えるべきです。さらに、Unicodeは他の標準との後方互換性のために存在する非常に多くの書記体系、ユースケース、およびものから構成されています。1 すべての動機を完全に理解することはそれ自身の科学です。あなたが本当に自分のしていることを本当に知っていない限り、遠く離れて考えることさえできない何かが壊れる可能性が非常に高いです。

具体例

アクセシビリティ

エンコードされたテキストは、何らかのフォントでレンダリングされるように存在するだけではありません。例えばスクリーンリーダーによって解釈することもできる。そしてスクリーンリーダーは次のことを推測する必要はないはずです。

????????????

定冠詞または数学的積であることを意味する2 ????、????、および????の意味それがそれらのキャラクターのためのものです。したがって、最善の動作は、これらの文字を綴ることです。文字通り次のように言っています:

太字の文字t、太字の文字h、太字の文字e

それは単に「the」と言うべきではありません。記号が偶然発音可能なWordを形成している数学的テキストを正しく読むことができないからです。3

移植性

あなたのテキストがあなたのマシン上でうまくレンダリングされているとしても、それはそれが読者の上にもあるという意味ではありません。最も明白な例は、読者がこれらの文字をサポートするフォントを持っていないか、テキストが代替フォントをサポートしていないソフトウェアによってレンダリングされることです。確かに、これはますます一般的ではなくなりつつあります。ただし、ディスレクシアのような人々はこれらの文字をサポートする可能性が低い特別なフォントを必要とすることに注意してください。

しかし、読者のマシンが別のフォントしか使用していなくても、テキストがかなり読みにくくなる可能性があります。 最初の例では、これは2つの異なるフォントでレンダリングされた????????です。

????????ℯ rendered with FreeSerif and STIX

Free Serifは、特殊文字を使用してテキストをシミュレートするとき、つまり連続的なストロークで手書きをシミュレートするときにおそらくレンダリングしたいと思うようにテキストをレンダリングします。ただし、これらの文字は数学記号として使用するために作成されているため、接続するのは意味がありません。したがって、数学的な目的のために特別に設計されている STIX によるレンダリングは、これらの文字がどのように使用されることを意図しているかによりよく一致しています。

2番目の例で、あなたまたは読者が何らかの理由で「сᴜтмyвᴀʀ」をイタリック体にしているとします。良いフォントでは、あなたは得るでしょう4

сᴜт мy вᴀʀ rendered in upright and italics. italics reads as "cum my bar"

その理由は、小さな大文字は(部分的に)キリル文字でシミュレートされていて、 キリルイタリック体は直立したものとはまったく違って見える です。繰り返しますが、これは正しい動作です。

検索性

最初の例として、文字を使って合理的な検索をしたい場合の考慮事項(数学スクリプトW)検索には、デフォルトモード完全モード(通常は大文字と小文字を区別するの2つのモードがあるとします。 ))。この文字は次のようになります。

  • デフォルトモードでwまたはWを検索したときに見つかりました - 特殊文字を入力したりコピーペーストしたりしたくない人のために検索フィールド

  • ????を検索するときに見つかりました正確モードで - 対応する変数が数学文書で言及されている場所を検索したい人のためのものです。

  • ????、w、またはWを検索しても上記と同様に検索が中断されるため、見つかりません。

ただし、通常のテキストをシミュレートするためにこの文字を使用すると、Wまたは????を検索したときに見つかるはずです。上記と矛盾する正確モードで。

2番目の例として、ラテン文字を検索するときにキリル文字が見つからないこと、およびその逆のことが考えられます。これらはまったく異なるものです。しかし、ラテンのスモールキャップをシミュレートするためにキリル文字を使用する場合、検索可能性を損なわないようにするには、これを行う必要があります。これは、まれなラテンアルファベットのWordを検索すると、多くの無用なものが見つかることにつながります。

正確な検索オプションはこの問題を解決することができません、なぜならこれはそれらのアルファベットで他の目的のために予約されているからです。

一般に、特殊な文字を使用してスタイル付きラテン語テキストをシミュレートしても壊れない検索を構築することは不可能です(非常に多くのオプションなしで)。


1あなたは 統一規格の不可避の失敗についてのそのXKCD を知っていますか?まあ、Unicodeは成功しました。
2または空の演算子が適切な規約に含まれているものは何でも
3このエンコーディングまたはそれと互換性のあるものをサポートしている数学的テキストは非常に少ないのですが、重要なのはいつか彼らがうまくやれているということです。あなたのUnicodeを悪用したテキストはまだ出回っている可能性があります。
4あなたがマケドニア語またはセルビア語にローカライズしているのでなければ、あなたは異なった、しかしまだ望ましくない結果になるでしょう。

219
Wrzlprmft

何がうまくいかないのですか?まあ、私はこれを見ます:

enter image description here 

windows 7上のFirefox 50.1.0の場合。

グリフの欠落の問題は、この場合はモバイルデバイス上で、user Chris Kent in aで示される画像にさらに示されています。 comment 、私はトリミングしてサイズを変更しました 元の

enter image description here 

そしてuser oals kindly 貢献 他の例:

enter image description here 

66
Andrew Morton

私はこれでXY問題を抱えています。

Y and X appear smaller than the rest of the text

ここでは、YとXが残りのテキストよりも小さく見えることがわかります。特定のズームレベルでは、それらは同じサイズであるように見えますが、これはこの特定のフォントでこれらの特定のグリフに関する問題を露呈したように見えます。

28
Michael Hampton

ちょっとした意味でラテン文字のように見えるラテン文字以外の文字を使用すると、スパマー、ポルノの仕掛け人、およびテキストを検索できず、インデックスを付けられず、見分けがつかないような人に知られるようになります。 (「私はそれが安全だと言ったことは一度もなかった。私はそれがシグマ - アルファ - 整数 - 符号 - エピスロンだと言った。私を訴えることはできない!!!」

あなたがそのクラブに満足しているならば、それからそれのために行きなさい。

13
CCTO