間違い -RTLテキストの文脈における矢印の方向

Unicodeメーリングリストに参加し、このようなケースの解決策となるUnicodeへの追加を提案しました。寄せられた回答の一つがこれです。

(私:)問題は、この置換が(私の知る限り)レンダリングコンテキストなしで行われることです。テキストは単なる文字コードのシーケンスです。テキストの方向を知ることは合理的ではありません。テキストの方向が、置換時に利用できないコンテキストに依存する場合、完全に不可能なこともあります。

上記は厳密には不正確です。今日の真剣なテキストレンダリングは、HarfBuzzのようなシェーピングエンジンを必要とし、「-」と「>」の合字「→」は、合字をサポートするフォントと連携してそのようなシェーパーによって行われます。シェーピングエンジンは、bidiコンテキストとシェーピングするテキストのスクリプトを認識しているため、原理的には矢印をミラーリングできます。

彼らはこのようなものについて話しています:GitHub - tonsky/FiraCode: Free monospaced font with programming ligatures

盲目的な文字置換ではなく、合字アプローチに切り替えることを検討してください。もう一つの議論の余地のある利点は、コピー&ペーストした場合、テキストは矢印ではなく「-」と「>」のままになることです。

実装方法の技術的な詳細については調べていません。このソリューションを使用することを選択した場合は、あなたに任せます。

編集:案の定、特にFira TextはRTLを念頭に置いて設計されていないため、レンダリングはうまくいっていませんが、少なくとも正しい方向を向いています!https://fonts.google.com/specimen/Fira+Code?preview.text=A%20->%20B,%20א%20->%20ב
Firefox:

今日、これを正しく行い、RTL/bidiを明示的にサポートするフォントが存在するかどうかはわかりません。

「いいね!」 1