Выравнивание китайских иероглифов

Выравнивание китайских иероглифов

Я хочу сделать несколько абзацев, выровненных по центру, вот код:

\usemodule[zhfonts] % zhfonts is a third-party module which created by Liyanrui, for selecting Chinese fonts,font size, etc. 
% https://github.com/liyanrui/zhfonts

\starttext
    \startalignment[middle]
        天地玄黄

        宇宙洪荒
    \stopalignment

    \midaligned{天地玄黄}

    \midaligned{宇宙洪荒}

    \startalignment[middle]
        \hbox{天地玄黄}

        \hbox{宇宙洪荒}
    \stopalignment
\stoptext

Приведенный выше код не дает желаемого эффекта, поскольку он не учитывает расстояние между символами. (Сравните его с командой \midaligned.)

Если поместить символы в hbox, оба абзаца будут выровнены по левому краю!

Как изменить \start ... \stopalignmentокружающую среду, чтобы получить эффект, производимый \midalignedкомандой?

введите описание изображения здесь

решение1

Когда вы включаете перенос строк для китайского текста с помощью \setscriptкоманды ConTeXt, добавьте небольшой изменяемый пробел между всеми китайскими буквами. Этот пробел необходим для заполнения доступного пространства в каждой строке и для компенсации пробелов от знаков препинания и кавычек.

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

Другой способ избежать пробелов между буквами — поместить их в скобки, \hboxно в этом случае вам придется добавить \dontleavehmodeперед каждым квадратом, чтобы убедиться, что он находится по центру строки.

\definefontfamily [mincho] [rm] [MS Mincho]
\definefontfamily [mincho] [ss] [MS Gothic]
\definefontfamily [mincho] [mm] [Latin Modern Math]

\setupbodyfont [mincho]

\setscript [hanzi]

\starttext

\startalignment[middle]
  天地玄黄\par
  宇宙洪荒
\stopalignment

\blank

\startalignment[middle,broad]
  天地玄黄\par
  宇宙洪荒
\stopalignment

\blank

\startalignment[middle]
  \dontleavehmode\hbox{天地玄黄}\par
  \dontleavehmode\hbox{宇宙洪荒}
\stopalignment

\stoptext

введите описание изображения здесь

Связанный контент