Создавать юникодные индексы и верхние индексы с объединением глифов - PullRequest
0 голосов
/ 25 марта 2019

Существуют ли какие-либо непечатаемые / комбинируемые символы в Unicode для выражения семантически значимых вертикальных корректировок глифов относительно базовой линии?

Я пытаюсь выразить простую нотацию музыкального персонала вЮникод, для которого мне нужно иметь возможность выражать стопку глифов и вертикально корректировать позиции.В конце концов,  ̶̅?​̶̅ ̶̅ ̶̅ имеет значение, отличное от  ̶̲?​̶̲ ̶̲ ̶̲.

Я хочу добиться такого эффекта, не полагаясь на очень узкий набор доступных комбинированных меток линий, чтобы я мог составлять набор глифов с помощьюразличные вертикальные смещения для достижения желаемого эффекта.Горизонтальное уже довольно просто.

Я хочу представить элементы вертикального разнесения и т. Д., И в конечном итоге внести соответствующие усовершенствования в возможности объединения механизма разметки текста Unicode, такого как Pango, чтобы я мог создавать примитивную нотацию персонала "в линию"хотя что-то столь же хорошее как:

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+???????? U+0032.

Любой способ управлениявысота и размер?

Так же, как =͟͟͞͞s можно написать с помощью горизонтальных объединяющих глифов как = ͟ ͟ ͞ ͞ s U+003d U+035f U+035f U+035e U+035e U+0073.

Я знаю, что многие рендеры, такие как Pango, нев настоящее время визуализируют даже простые вещи, такие как мосты, но часть идеи заключается в том, чтобы создать разумный набор для улучшения визуализации.

Unicode фокусируется на семантике.Но положение и объединение являются семантически важными, поскольку показано, что в стандарт включено включение надстрочных глифов и т. Д.

Некоторые ссылки:

...