gpt4 book ai didi

text - 使用混合脚本在 pango 中自动换行

转载 作者:行者123 更新时间:2023-12-02 18:08:53 27 4
gpt4 key购买 nike

我有一个使用 pango 的文本框实现。如果我在从右到左的脚本中放置一个以单词开头的字符串,后跟一个空格,然后在从左到右的脚本中放置单词,则 pango 使用的自动换行会变得困惑(使用 PANGO_WRAP_WORD_CHAR ) 。对于字符串 ????????? 我得到以下结果:

Bad word wrapping

如果我添加 unicode 字符 U+200F在空格之后,然后我得到预期的自动换行:

Expected word wrapping

此外,如果我将上面的阿拉伯语脚本替换为印地语(与旁边的英语​​一样从左到右),那么我仍然遇到问题,所以它似乎不是严格的从左到-右,从右到左的东西。在印地语案例中,我进行了一个 hack,插入了 0x200E空格后解决了问题。

这是 pango 中的错误吗?我可以尝试是否有足够通用的解决方法来解决问题但不会破坏其他情况?我正在使用的当前工作插入要么 0x200E0x200F在基于字符串中前一个强定向字符的方向的每个空格之后,但我不确定是否有某些字符串会导致问题。

更新:我能够使用 gedit 在 Ubuntu 12.04 上重现此问题(启用启用文本环绕不要在两行上分割单词设置)。我只是输入 Hello world一遍又一遍,直到它包裹了几次,然后替换了 world 的所有实例与 पहुंचगया ,所有内容都折叠成一行。

最佳答案

符号U+200FU+200E是从右到左和从左到右标记。小号:

  • 在每个英文文本和阿拉伯文文本之间,放置一个从右到左的标记
  • 在每个阿拉伯语文本和英语文本之间,放置一个从左到右的标记

这是一个错误,因为 Pango 在查看文本时应该自动执行此操作,但由于 Pango 没有执行此操作,因此您应该手动执行此操作。

关于text - 使用混合脚本在 pango 中自动换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34186659/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com