Раскраска диакритических знаков отдельно Java - PullRequest
0 голосов
/ 28 января 2020

Я сталкиваюсь с проблемой, когда пытаюсь раскрасить диакритические знаки на иврите, справа налево на Java. Результат должен быть примерно таким: https://tex.stackexchange.com/questions/13069/coloring-combining-characters-without-changing-color-of-a-base-character

Для действительно базового c вида для архивации я попытался использовать код html, который содержит объединение Unicode:

<html>\u05db\u05bc\u05b8\u05ea\u05b7\u05d1\u05b0\u05ea\u05bc\u05b8</html>

Результат выглядит следующим образом: Нормальное, правильное представление иврита

Когда я сейчас пытаюсь раскрасить только указанные c вещи с помощью <span color='red'>, или даже просто окружая диакритические знаки простым <span>, диакритические знаки смещаются и появляется неправильное представление:

Добавлен диапазон для одного символа

с использованием <html>\u05db\u05bc\u05b8\u05ea\u05b7\u05d1\u05b0\u05ea<span>\u05bc</span>\u05b8</html>

Интервал окружает только символ точкой, символ T под символом (\ u05b8) все равно смещается. Если сначала поставить Т, а затем точку, Т остается в правильном положении. Кажется, что тег span после радикала (сама буква) мешает использованию языков RTL. Еще один способ показать это - раскрасить как радикалы, так и диакритические знаки:

<html>\u05db\u05bc<span color='red'>\u05b8</span>\u05ea<span color='red'>\u05b7</span>\u05d1<span color='red'>\u05b0\u05ea\u05bc\u05b8</span></html>

Не смещено Но при окраске только части этого промежуток, похоже, снова мешает.

Есть ли способ раскрашивать диакритические знаки отдельно, используя Java и JLabel (или любой другой эквивалент), не путаясь с позиционированием?

...