通过组合字形创建unicode下标和上标

时间:2019-03-25 04:24:28

标签: unicode combining-marks

在Unicode中是否有任何非打印/组合字符来表达字形相对于基线的语义上显着的垂直调整

我正在尝试用Unicode表达简单的乐谱符号,为此我需要能够表达一堆字形并垂直调整位置。毕竟 ̶̅​̶̅ ̶̅ ̶̅ ̶̲​̶̲ ̶̲ ̶̲具有不同的含义。

我想获得这样的效果,而不依赖于非常窄的可用组合线标记集,因此我可以堆叠一组具有不同垂直偏移的字形以实现所需的效果。水平已经很容易了。

我想引入垂直间隔元素等,并最终对诸如Pango之类的Unicode文本布局引擎的合并功能进行适当的增强,这样我就可以产生“内联”的原始职员符号,尽管效果如下: >

baby shark doo doo dee doo doo

...如果没有布局帮助,将是不切实际的。

Unicode具有多种组合字符,零宽度字形和仅空格字形,可用于创建组合字符。可以使用e + èe将字符修改为字母标记(̀U+0065 U+0340),并由布局引擎进行合并和重新排列(العربية是char-by -char 'ا ل ع ر ب ي ة,即U+0627 U+0644 U+0639 U+0631 U+0628 U+064a U+0629)等。它还具有用于桥(上图中音符下方的线),斜线等音乐符号的组合字符(尽管不支持它们)通过很多软件)。

所以期望似乎是合理的事情,但是我在标准中找不到任何表达我想要的代码点。请注意,目前我不在乎是否可以实际渲染它们,到目前为止,我只对文本的语义表达感兴趣。

例如给出以下简单顺序

  • (文本):  ♭        
  • (Python3):\u2000\u2000♭\u2000\u2000\u2000\u2001\ue8e0\u2001\ue8e0\u2001\u2001\ue8e1\ue8e1\u2000
  • (HTML)<html><body>&#x0001d11e;&#x0001d15f;&#x2000;&#x0001d15f;&#x2000;&#x266d;&#x2000;&#x0001d162;&#x2000;&#x0001d13f;&#x2000;&#x0001d161;&#x2001;&#x0000e8e0;&#x0001d15f;&#x2001;&#x0000e8e0;&#x0001d15f;&#x2001;&#x0001d15f;&#x2001;&#x0000e8e1;&#x0000e8e1;&#x2000;</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专注于语义。但是位置和组合在语义上很重要,如在标准中包括上标字形等。

一些参考文献:

0 个答案:

没有答案