【发布时间】:2023-03-17 10:00:01
【问题描述】:
这里有一些背景: 我已经下载了 this 示例并让它在我的 Ubuntu 上运行。一切安好。我将自己的 OpenType 字体放入项目中,它也可以正常工作!我确保 HarfBuzz 支持我的字体和我的语言。现在我需要更进一步。
我需要一些指导:
-
在上面的例子中,三种语言都有自己的字体来支持显示。我的意思是,这三种语言是分开渲染的(就我对代码的理解而言)。
那么,如何让HarfBuzz在多种语言混合在一起时选择正确的字体并一次渲染?我的意思是,没有制作支持世界上所有语言的字体文件。
在这个例子中,中文脚本是垂直显示的(这正是我想要的),但是如果我将拉丁脚本的text_directions设置为
HB_DIRECTION_TTB,这当然不是我想要的。我希望整个单词“拉丁”旋转 90 度。
那么,我该如何实现呢?如何在不破坏中文布局的情况下做到这一点?
3 .最后但同样重要的是,在解决了以上问题后,我想制作一个文本编辑器来同时显示和编辑多种语言,同一个地方。我不知道我是否需要在 HarfBuzz 或 FreeType 上做一些工作,或者实现一个支持这种复杂文本布局的文本编辑器?有什么可以参考的例子吗?
提前感谢您的帮助。
【问题讨论】:
-
我对“这当然不是我想要的”评论感到困惑 - 在日语或中文中,这正是您想要的:您不希望正常书写的单词但是旋转了 90 度。正确的行为将字母排列在彼此下方,您想要的是覆盖字体布局说明的东西。
-
是的,对于您的评论,日文或中文,这正是我想要的,但如果我想显示英文或其他拉丁语言,线条是垂直的,而字母保持直立 - 这就是我不想要。我可能没有清楚地描述这个问题,因为我的英语很差,对此感到抱歉。我想要实现的是垂直方向布局所有文本,中文或日文单词保持直立,拉丁字母旋转90 度。
-
一张图片胜过千言万语。您可以添加图像或链接到显示外观的图像吗? (因为在多行文本中,如果你的意思是我认为你的意思,那会做可怕的事情)
-
当时我没有足够的声誉在我的帖子中添加图片。现在我已经添加了该示例的屏幕截图。顶部的文字是传统的蒙古文,应该是垂直的,但是由于垂直显示的问题(我不知道如何解决),它不能正常显示。下面是垂直方向的拉丁文。
-
我的意思是你能张贴一张你想要它看起来像什么的照片吗?
标签: text-editor freetype opentype harfbuzz