2

ストレスマーク付きのキリル文字を含む Web ページを開発しています。ストレスマークを配置するには、utf8 文字 U0301 (COMBINING ACUTE ACCENT) を使用します。私がすでに使用したすべてのエディターと、私がすでに見たすべてのキリル文字関連の Web ページで、このストレス マークは、テキスト内のこの文字の前に配置された文字の上に表示されます。私の問題は、私のページでは、この文字が文字の上に表示され、テキスト内でこのマークの後に配置されることです。さらに、この誤った動作はキリル文字でのみ見られます。通常のラテン語では正しく表示されます。

すべてのエンコーディング関連のヘッダーを設定します。

[編集]

この問題は Firefox にのみ存在するようです (私はバージョン 13.0.1 を使用しています)。Chrome を使用すると、アクセント記号が正しく表示されます。

4

3 に答える 3

2

テキストのルールで使用するフォントの適切なリストを選択します。これはfont-family、できれば別のプラットフォームで、おそらく別のブラウザーでも、さまざまなフォントを試してからです。さまざまなフォント設定を使用して、お気に入りのワープロ (またはエディター) でフォントをテストできます。結果は Web ブラウザーと必ずしも同じではありませんが、通常は同様です。たとえば、Calibri と Arial は問題ないように見えますが、セリフ側の Cambria も同様です (Times New Roman は U+0301 に問題はありませんが、解像度がかなり高くない限り、一般的にうまくレンダリングされません)。

また、適切なフォントを Web フォントとして使用することも検討してください ( 経由@font face)。

これは面倒に聞こえますが、実際には実際的な方法です。問題は 3 つあります。

  1. 一部のフォントでは、U+0301 がすべて間違っているか、少し間違っています。たとえば、Georgia (一般的には OK フォント) では、U+0301 は基本文字の右側に表示され、結合記号ではなく、別の記号であるかのように見えます。Courier New では、次の文字の上に配置されます。Constantia と FreeSerif では、分音符号として認識できるものの、配置が右すぎます。
  2. 一部のフォントでは U+0301 が完全に欠落しており、ブラウザは基本文字以外のフォントから取得する必要があります。言うまでもなく、これにより混乱が生じる可能性があります (または、たまたま収まった場合は、問題を回避できる可能性があります)。
  3. ブラウザーやその他のプログラムでは、マークの組み合わせの処理が異なります。あなたがそれについてできることはあまりありません。古いブラウザでは、U+0301 が適切に実装されているフォントでも、簡単に悪い結果が得られる場合があります。その理由は、分音記号を適切に配置するのは複雑な演算子だからです。プログラムは、大文字の О と小文字の о では異なる方法で鋭角記号を配置するために、基本文字に関する情報にアクセスする必要があります。

フォントをデフォルトのままにし、ブラウザが別のデフォルトを使用しない限り、Firefox と Chrome で異なる結果が得られる理由はわかりません。

キリル文字の U+0301 が失敗したときにラテン文字の U+0301 の (多くの) 組み合わせがうまく機能する理由は、おそらくまったく異なる処理です。ブラウザは、いわゆる構成済み文字に対応する、文字と結合発音区別符号の組み合わせを単一のグリフとしてレンダリングする場合があり、実際にレンダリングすることがよくあります。そのため、ブラウザがラテン文字の , ówhereoを参照すると、これを、最も一般的に使用されているフォントに含まれる単一の文字「ó」U+00F3 に内部的にマッピングします。

タイポグラフィの詳細として、非常に高品質を目指す場合 (多くの場合、余裕がありません...)、a、e、o、y などのラテン文字は、同じテキスト内の対応するキリル文字と (形状によって) まったく同じに見える必要があります。デザインは、まともなフォントで同じです。しかし、アクセントが追加されると、残念ながらこれが変わる可能性があります. たとえば、Calibri の о́ (キリル文字で急性の o) は、ó (ラテン語で急性の o) とは異なるアクセントを持っています。これは、フォントの設計上の欠陥です。(ただし、通常のコピー テキスト サイズでは、違いはほとんどわかりません。)

于 2012-07-15T13:39:51.950 に答える
1

各ブラウザで設定したデフォルトのフォント、および/またはブラウザ独自のデフォルトのスタイルに関係している可能性がありますか? このJS フィドルを試してみました— Firefox と Times ではアクセントが完全に揃っていますが、Arial ではまともですが、少し右寄りです。

一方、Chrome は Arial でまずまずですが、Times は非常に右にずれています。

これが問題に影響するかどうかを確認するために、どのフォントファミリ、行の高さ、フォントサイズなどを調整してみましたか?

編集:さらに、ペンシルバニア州立大学のウェブサイトでこのアドバイスを読んでください:

Windows では Times New Roman や Georgia などのフォントにキリル文字が含まれていますが、Macintosh では、"Times CY" などの Apple のキリル文字フォント "CY" にのみ含まれている場合があります。

.serifcyr {
    font-family: "Times CY", "Times New Roman", serif
}
.noserifcyr {
    font-family: "Geneva CY", "Helvetica CY", "Arial", sans-serif
}
于 2012-07-15T12:14:49.700 に答える
0

Google Fonts サービスのフォント Roboto を使用しましたが、同じ問題がありました。アクセントの配置が間違っていました。

これを解決するために、このフォント (ttf バージョン) をコンピューターにダウンロードし、インストールし、photohosop を開き、アクセントが実際に正しいことを確認しました! 次に fontsquirrel.com サービスにフォントをアップロードし、独自の Web フォントに変換したところ、アクセントが修正されました。上記のキリル文字 «і» 文字を除いて..しかし、これは何もないよりはましです。

ヒント - 複数のフォント ウェイトがある場合は、fontsquirrel.com で «expert...» を選択し、«Style link» にチェックを入れます — css が作成され、異なるウェイトを持つ 1 つのフォント名が作成されます。

于 2015-08-05T21:11:26.160 に答える