Вертикальное письмо в современном IT

Привет, Хабр! Двунаправленным письмом в наше время никого не удивить. Оно поддерживается управляющими символами Уникода, для него создан HTML-тег <bdo>. Но горизонтальные письменности – не единственные существующие и применяемые для записи человеческой речи. Кроме обычного слева-направо и справа-налево есть ещё два варианта вертикального письма. Первый – восточно-азиатский, использующийся в языках, основанных на китайском. В них иероглифы идут сверху-вниз, а строки — справа-налево. Этот стиль письма называется "татегаки" по-японски, "шупай" по-китайски и "чонсо" по-корейски. Отмечу, что европейский привычный нам стиль слева-направо в этих трёх языках так же применяется и называется соответственно "йокогаки" по-японски, "хенпай" по-китайски и "хинсо" по-корейски. Именно так, слева-направо, азиатские народы пишут и читают с использованием компьютеров на сегодняшний день. Второй вариант – монгольский, символы идут тоже сверху-вниз, но строки – слева-направо. В современной Монголии этот стиль письма давно заменён европейским, но в некоторых областях Китая до сих пор служит для записи монгольского языка. Так насколько же компьютеры поддерживают такое письмо? Давайте искать вертикальные артефакты в разных приложениях информационных технологий.

Кодовые страницы


Первое, что приходит на ум – кодировки. В Уникоде есть управляющие символы для смены, вставки и замены направления письма в двух направлениях, но вот ничего из перечисленного для вертикального письма нет. Единственное, есть блоки «вертикальные формы» с позиции U+FE10 по позицию U+FE1F, и «формы совместимости ККЯ» с U+FE30 по U+FE4F, содержащие некоторые употребляющиеся в азиатских письменностях знаки пунктуации. Есть ли поддержка вертикального письма в других кодировках? Ответ – нет. Я проверил много разных семейств кодовых страниц: BIG, BS, CP, CZA, EBCDIC, EUC, GB, HP, IBM, INIS, ISO, JIS, MAC, TRON, и НИГДЕ не нашёл даже намёка на возможность писать вертикально. К сожалению, в данном параграфе ставим огромный минус.

Настольные издательские системы


Рассмотрим две системы: Microsoft Office Word 2007 и LibreOffice Writer 6. Я хотел добавить сюда OpenOffice Writer 4, но они с LibreWriter одного поля ягоды. Сперва разберёмся, позволяет ли интерфейс этих программ вообще повернуть текст вертикально, а затем сохраним и откроем документ последовательно в форматах docx, odt, xml DocBook, rtf и pdf.

* Повернуть текст – значит, именно повернуть, задать направление. Способ с одним символом в строчке и уменьшенным интерлиньяжем рассматривать не будем.

Итак, единственный способ написать вертикально в упомянутых текстовых процессорах – создать объект «надпись» и с помощью инструментов надписи на панели изменить направление текста. Давайте попробуем. Возьмём любой азиатский текст, например, "こんにちは世界!" и проделаем указанные действия.

Microsoft Office Word:



Да, Word меня разочаровал. Вместе с направлением текста он повернул и все символы, как будто это обычный европейский текст. Сохранять такой результат нет смысла. Посмотрим, что получится в других редакторах.

LibreOffice Writer:



Другое дело. Притом, LibreOffice знает разницу между европейскими и азиатскими символами, и обычный «Hello world» поворачивает вместе с буквами:



Из всех форматов передать вертикальный текст в надписи смогли только .odt и .pdf. К тому же, мне не удалось с помощью LibreOffice Writer поменять порядок строк. Строки шли только сверху вниз либо справа налево и никак иначе.

HTML


А точнее, его подпространство CSS. Существует универсальное свойство writing-mode, задающее направление текста в элементе. Давайте проверим, как его обрабатывают браузеры Mozilla Firefox и Google Chrome самых новых на момент написания статьи версий. Применим свойство к комбинированному абзацу из латиницы, каны и китайских иероглифов (<p style="writing-mode: vertical-rt;">こんにちは世界! <br /> Hello, world!</p>).

Mozilla Firefox:



Google Chrome:



Оба браузера справились и показали то, что ожидалось. Чтобы сменить направление строк (слева-направо), нужно указать writing-mode: vertical-lt;.

Но подождите. В азиатских языках при вертикальном письме некоторые знаки пунктуации поворачиваются на 90 градусов. Так ли это для браузеров?

Mozilla Firefox:



Google Chrome:



К сожалению, второй браузер почему-то не справился, вместо знаков японской пунктуации показав три иероглифа.

И раз браузер Mozilla Firefox у нас вышел победителем, опробуем на нём ещё такую штуку, как вертикальная фуригана. Это что то вроде аннотаций над иероглифами, подсказывающие, как их правильно произносить. В тексте слева-направо они пишутся над иероглифами, а в тексте сверху-вниз справа от иероглифов. Попробуем добавить в абзац фуригану с помощью тегов <ruby> и <rt>:



Mozilla справился.

А теперь я оставлю несколько ссылок.

Библиотека для WPF, добавляющая вертикальный текст в Windows-приложения
Вертикальная читалки для iOS
Её git
Ещё одна читалка.
Можете дополнить этот список в комментариях.

Таким образом, мы выяснили, что полноценный вертикальный текст можно получить только с помощью CSS в браузере Mozilla Firefox. Печальный вывод. Чтобы наладить работу татегаки и монгольского письма хотя бы для себя, я создал кодовую систему DKOTI (Двоичный Код Обмена Текстовой Информацией). О её содержании и о том, как добавить соответствующую локаль в Linux, я напишу отдельную статью, если вы изъявите такое желание.

Похожие публикации

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 14

    +1
    Второй вариант – монгольский, символы идут тоже сверху-вниз, но строки – слева-направо.

    Как это? Т.е. как то так:
    ->туда
    адюс <-?
    А можно так записывать? Любопытно, быстрее ли так читать?
      +1
      Как это?
      В т
      о а
      т к
        0
        Эх, так не интересно!
          0
          РОКК
          ЕБОЛ
          +2

          Это называется бустрофедон:)

          +3
          фуригана для 世界 будет せ для первого иероглифа и かい для второго.
          image
            –1
            Йо сакай же!
              0
              Хотя может и нет.
                +2

                よ, 世界 /ё, сэкай/ — это японский перевод выражения "Hello, World", "Привет, мир". よ /ё/ — это просто "Привет" в разговорном японском.

              +1
              Из любопытства, а как часто возникает необходимость в вертикальном письме? Ведь и в азии уже давно горизонтальное письмо в IT приоритетно.
                +1
                Но манга и ранобэ то до сих пор издаётся в вертикальном стиле. Да и пресса нередко прибегает к нему. Так что вместо окончательного перевода азиатов на горизонтальное письмо DKOTI предоставит им средства для родного вертикального.
                  0
                  Ну, я имел в виду лично ваши потребности в использовании татегаки. В качестве, как полагаю, не-азиата. Кроме того, уверен, мангу не в офисных программах, и не в браузерах редактируют.
                    +1
                    Мне, как европейцу, татегаки не особо нужно, как не нужна арабица и иврит. Но надо думать не только о себе.
                0
                Да, Word меня разочаровал. Вместе с направлением текста он повернул и все символы, как будто это обычный европейский текст.


                Хм… Это проблема пользователя, а не MS Word.
                Ворд отлично работает с вертикальным текстом с древних времен.
                Картинка
                image


                Просто нужно один раз заранее настроить поддержку такого стиля в настройках.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое