活版印刷スタイル(スモールキャップやスクリプトなど)をシミュレートするためにUnicode文字を使用すべきではないのはなぜですか


129

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

  • 小さな帽子:

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

  • 脚本:

    𝓑𝓮𝓱𝓸𝓵𝓭𝓽𝓱𝓲𝓼𝓯𝓪𝓷𝓬𝓲𝓵𝔂𝓮𝓷𝓬𝓸𝓭𝓮𝓭𝓽𝓮𝔁𝓽。

  • ブラックレター:

    𝕭𝖊𝖍𝖔𝖑𝖉𝖙𝖍𝖎𝖘𝖋𝖆𝖓𝖈𝖎𝖑𝖞𝖊𝖓𝖈𝖔𝖉𝖊𝖉𝖙𝖊𝖝𝖙。

これはStack Exchange(たとえば、hereherehere)に対する関心を満たし、そのような手法に対する批判がなされました。しかし、それらを使用すると何がうまくいかないのでしょうか?


224
私は自分の携帯電話からこれを読んでいますが、最後の2つの素晴らしいテキストを見ることができません。
Scimonster 16

22
一部のデバイスでは読み取れないため:i.stack.imgur.com/kM73J.png
Chris Kent

15
私たちの中には、読みやすいフォント(およびサイズ、色、&c)であると考えるものでWebページを見たいため、たとえばユーザーCSSスタイルシートを使用して著者スタイルをオーバーライドします。あなたの3つの例が私のデバイスに表示されているように見えても、明らかにあなたがそれらを表示するように意図しているように見えますが、私にはそれらはボーダーラインでしか読めません。芸術的な渇望を読者の読みやすさよりも優先するのはなぜですか?
jamesqf 16

38
興味深い観察結果は次のとおりです。Edgeは後者の2つのサンプルでテキストを見つけることができず、Chromeは最初のサンプルでテキストを見つけることができません。(両方のブラウザで「見ながら」Ctrl + Fを押してください。)Firefoxをチェックしていません。
分裂

22
@Schism Firefoxはそれらのどれも見つけません。Chromeはおそらく検索前にNFKC / NFKD正規化を使用しているように見えます。これにより、スクリプトとブラックレターテキストがBasic Latinに分解されます。Firefoxはそうしていないようです。エッジ...奇妙なことをしています。
ボブ

回答:


224

全般

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

他の多くの標準と同様に、Unicodeの違反についてよく考えてください。また、Unicodeは非常に多くの書記体系、ユースケースを含み、そしてちょうど他の規格との後方互換性のために存在するもの1、完全にそのすべての動機を理解し、独自の科学です。簡単に言えば、自分が何をしているのかを本当に理解していない限り、リモートでさえ考えていなかった何かが壊れる可能性が非常に高くなります。

具体例

アクセシビリティ

エンコードされたテキストは、一部のフォントでレンダリングされるためだけに存在するわけではありません。また、スクリーンリーダーなどで解釈することもできます。また、スクリーンリーダーは次のことを推測する必要はありません。

𝓽𝓱𝓮

は、定冠詞または変数𝓽、𝓱、およびmathematicalの数学的積2であることを意味します。したがって、最良の動作は、これらの文字を綴ることです。たとえば、文字通り次のように言います。

大胆なスクリプト小t、大胆なスクリプト小h、大胆なスクリプト小e

代わりに「the」を言うべきではありません。シンボルが発音可能な単語を形成する数学テキストを適切に読み取れないからです。3

移植性

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

しかし、読者のマシンが異なるフォントのみを使用している場合でも、これによりテキストがかなり読みにくくなる可能性があります。以下のために最初の例は、これは𝓉𝒽ℯ2種類のフォントでレンダリングされます。

Free FreeSerifおよびSTIXでレンダリング

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

では第二の例、あなたや読者が何らかの理由で「сᴜтмyвᴀʀ」をitaliciseとします。良いフォントを使用すると、4が得られます。

сᴜтмyвᴀʀは直立および斜体で表示されます。 斜体は「cum my bar」と表示されます

これは、スモールキャップが(部分的に)キリル文字でシミュレートされており、キリルイタリックが直立した文字とは大きく異なる場合があるためです。繰り返しますが、これは適切な動作です。

検索可能性

最初の例として、文字𝒲(数学スクリプトW)を使用して合理的な検索を行う場合を考えます。検索には2つのモード、デフォルトモード正確なモード(通常は大文字と小文字を区別する)があると仮定します。この文字は次のとおりです。

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

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

  • 上記と同様の検索を中断するために、正確モードで𝓌、wまたはWを検索する場合は見つかりません。

ただし、この文字を使用して通常のテキストをシミュレートする場合、Wまたはforを正確モードで検索すると検出されるはずです。これは上記と競合します。

2番目の例として、ラテン文字を検索するときはキリル文字は絶対に見つけられないことを検討してください。ただし、キリル文字を使用してラテン語のスモールキャップをシミュレートする場合、検索可能性を壊したくない場合は、これを行う必要があります。これにより、人気のあるキリル文字(またはその逆)の偽のスモールキャップに偶然一致するまれなラテン文字を検索すると、人々は多くの無駄なものを見つけることになります。

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

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


1  あなたは、XKCDが標準を統一することの避けられない失敗について知っていますか?さて、Unicodeは成功しました。
2  または空の演算子が適切な慣習にあるもの
3  現在、このエンコードまたはそれに互換性のあるものをサポートしている数学テキストは非常に少ないことを知っていますが、ポイントはいつかできることです。Unicodeを乱用するテキストがまだ残っていて、読んでいる可能性があります。
4  マケドニア語またはセルビア語にローカライズしている場合を除き、異なる場合でも、望ましくない結果が得られます。


コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
ジャーニーマンオタク

1
3番目の例はどうですか?なぜ一部のフォントに対してUnicodeでブラックレターテキストが存在するのですか?
posfan12 16

2
@ posfan12:スクリプト文字のように、数学的なアルファベットとして使用されます。(ここでの番号付けの例は、質問の箇条書きとは関係がないことに注意してください。)
Wrzlprmft

3
斜体ときに別の文になり、有効な文を検索...(両方とも言い、人間ラテンベースの読者によって解釈):あなたの小公認会計士の例では、パズル/ competitoin示唆
ハーゲン・フォン・Eitzen

67

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

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

Windows 7上のFirefox 50.1.0で。

問題欠落グリフは、モバイルデバイス上で、この場合には、さらに、ユーザにより与えられた画像に示されているクリスケントコメント私はトリミングからリサイズた、オリジナル

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

そして、ユーザーoalsは別の例を親切に貢献してくれました

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



7
@Lilienthal更新を確認したりインストールしたりせずに何年経ったに違いないことに感心しました。つまり、一部のデバイスではまだFirefox 3.5に基づいたものを使用していますが、正確には選択肢がありません(デバイスが良すぎますが、使用可能な新しいブラウザーはありません)
mtraceur

16
@Lilienthal 2020年には、Firefoxのメジャーバージョン番号に64ビットの番号が必要になる場合があります。その後すぐに、バージョン番号には実際のプログラムよりも多くのスペースが必要になります。市場シェアを取り戻すには、Chromeのバージョン番号を保存するために惑星全体が必要になります。
アンドリューモートン

2
このような古代のブラウザを使用して、どれだけ多くの既知のアクティブなセキュリティ脆弱性にさらされているのか、皆さんご存じでしょうか?
ザックリプトン

3
@ザック・リプトン:それが私の優先事項のリストにあることに気付いていますか?#1には、実際に使用できるものがあります。Firefoxの人々(および他の多くの人々)は、新しいパラダイムを受け入れました:使用不能によるセキュリティ。
jamesqf

29

これでXYの問題が発生しています。

YおよびXは、残りのテキストよりも小さく表示されます

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


私はあなたが見ているものについて3つの可能な説明を提供することができます:1)悪いヒント。2)フォールバックフォントは、xy以外のすべてに使用されます3)悪いフォントデザイン:スモールキャップは小文字よりもわずかに大きくなるように設計され(有効な選択です)、音声およびキリル文字のUnicode文字に使用されます。基本的なラテン文字と調和する必要があります。—どちらにしても:ポイント1)と3)はUnicodeの乱用によるものではありません。ポイント2)は、他の回答ですでに取り上げられています。
Wrzlprmft 16

12
@Wrzlprmft:定義により、Unicodeにはスモールキャップがないため、Unicodeの不正使用です。unicodeには、フォネティックアルファベットブロックとラテン語拡張Dブロックのスモールキャップのように見える文字があります。具体的には、2つのフォネティックブロックもラテン拡張DブロックにもスモールキャップXのような文字が含まれていないため、Xは他のどこか、おそらくキリル文字ブロックから来ていると推測します。違いは、1、2、3のいずれにも起因しません。別のアルファベットに属する文字に起因します。
スリーブマン16

@slebetman:小文字のxは、通常の小文字のxです(質問から文字をコピーして、自分で調べることができます)。また、小文字のxは、表音文字としても使用されるため、表音文字と調和する必要があります。また、単一のキリル語をラテン語のテキストから目立たせたくない(およびその逆)ため、キリル文字の小文字と同じ高さにする必要があります。
Wrzlprmft 16

19
「XY問題」で笑に賛成:)
アンドリューモートン

13

ラテン語のように見えるラテン語以外の文字を使用すると、テキストを検索できず、インデックスに登録できず、嫌悪感を抱きたいスパマー、ポルノ商人、そして彼らが知っているディセンブラーの仲間になります。(「安全だとは言いませんでした!! sigma-alpha-integral-sign-epislonだと言いました!!!私を訴えないでください!!!」)

あなたがそのクラブで快適であれば、それのために行きます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.