問題タブ [directwrite]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
directwrite - DirectWrite API でのソフト ハイフン
サンプル アプリケーション DWriteSimpleHelloWorld では、テキストをレンダリングします
DWrite にHwndRenderTarget
-- 事実上、私のアプリケーションのウィンドウに。DrawText
のメソッドでテキストをレンダリングしますID2D1HwndRenderTarget
。­
Web ブラウザでエンティティ (ソフト ハイフンまたは音節ハイフン) を含むテキスト文字列のレンダリングに準拠した動作を期待してい ます。
レンダリングされたフレーズの幅にウィンドウが十分に収まる場合、次のようなテキストが表示されます。
しかし、フレーズの末尾がウィンドウに収まらないようにウィンドウのサイズを変更すると、次のように表示されます。
Web ブラウザーは、最初の行の末尾にハイフンを付けてこのテキストをレンダリングします。
私の目的は、ユーザーDWrite
がアプリケーションに長い単語のハイフネーションのヒントを挿入できるようにすることですが\u00AD
、「隠された」空白として機能するように見えます。
ソフトハイフンの定義と使用に関する微妙な点について読んだことがあります (たとえば、https://www.cs.tut.fi/~jkorpela/shy.html ) DWrite
。 ? もしそうなら、必要に応じて行末にハイフンを生成するハイフネーションのヒントをどのように実装できますか?
文字列のグリフ インデックスを使用して、 のメソッドでwszText_
作成されたジオメトリとしてテキストを描画すると、本来の位置にハイフンを含む文字列が表示されることに注意してください。GetGlyphRunOutline
IDWriteFontFace
fonts - 一部のフォントの文字間隔がフォント レンダリング間で異なるのはなぜですか?
フォント レンダラーがフォントを処理する方法に大きな違いがあるのはなぜですか? 具体的には、フォントによって文字間隔が異なるのはなぜですか?
たとえば、「Open Sans」の文字間隔がすべての環境でほぼ同じなのはなぜですか? しかし、「Arial」の文字間隔は大幅に異なりますか? 「Arial」フォントには、「Open Sans」にはないメタデータがありますか?
Open Sans、16pt
アリアル、16pt
ありがとう。