在Unicode中是否有任何非打印/组合字符来表达字形相对于基线的语义上显着的垂直调整?
我正在尝试用Unicode表达简单的乐谱符号,为此我需要能够表达一堆字形并垂直调整位置。毕竟 ̶̶̅̅ ̶̅ ̶̅
与 ̶̶̲̲ ̶̲ ̶̲
具有不同的含义。
我想获得这样的效果,而不依赖于非常窄的可用组合线标记集,因此我可以堆叠一组具有不同垂直偏移的字形以实现所需的效果。水平已经很容易了。
我想引入垂直间隔元素等,并最终对诸如Pango之类的Unicode文本布局引擎的合并功能进行适当的增强,这样我就可以产生“内联”的原始职员符号,尽管效果如下: >
...如果没有布局帮助,将是不切实际的。
Unicode具有多种组合字符,零宽度字形和仅空格字形,可用于创建组合字符。可以使用e
+ è
即e
将字符修改为字母标记(̀
至U+0065 U+0340
),并由布局引擎进行合并和重新排列(العربية是char-by -char 'ا ل ع ر ب ي ة
,即U+0627 U+0644 U+0639 U+0631 U+0628 U+064a U+0629
)等。它还具有用于桥(上图中音符下方的线),斜线等音乐符号的组合字符(尽管不支持它们)通过很多软件)。
所以期望似乎是合理的事情,但是我在标准中找不到任何表达我想要的代码点。请注意,目前我不在乎是否可以实际渲染它们,到目前为止,我只对文本的语义表达感兴趣。
例如给出以下简单顺序
♭
\u2000\u2000♭\u2000\u2000\u2000\u2001\ue8e0\u2001\ue8e0\u2001\u2001\ue8e1\ue8e1\u2000
<html><body>𝄞𝅘𝅥 𝅘𝅥 ♭ 𝅘𝅥𝅰 𝄿 𝅘𝅥𝅯 𝅘𝅥 𝅘𝅥 𝅘𝅥  </body></html>
[
'g-clef',
'quaver', 's1',
'quaver', 's1',
'flat', 's1',
'demisemiquaver', 's1',
'semiquaver rest', 's1',
'semiquaver', 's2',
'begin beam',
'quaver', 's2',
'begin beam',
'quaver', 's2',
'quaver', 's2',
'end beam',
'end beam',
's1'
]
所以:
如果我有²
(U+00B2
),是否有一个组合字符系列可以让我表达出来?我可以将ç
(U+00E7
)写成ç
(U+0063 U+0327
)的方式几乎相同,我想将²
写成U+????????
{{ 1}}。
有什么方法可以控制高度和大小?
类似于U+0032
可以用水平组合字形写成=͟͟͞͞s
= ͟ ͟ ͞ ͞ s
。
我知道许多渲染器(例如Pango)目前甚至不渲染诸如桥梁之类的简单事物,但是部分意义在于创建合理的套件来着眼于改善渲染。
Unicode专注于语义。但是位置和组合在语义上很重要,如在标准中包括上标字形等。
一些参考文献: