
Quero fazer vários parágrafos alinhados ao meio, este é o código:
\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
O código acima não produz o efeito desejado, pois não trata da distância entre os caracteres. (Compare-o com o \midaligned
comando.)
Ao colocar os caracteres em a hbox
, os dois parágrafos ficam justificados à esquerda!
Como modificar \start ... \stopalignment
o ambiente para obter o efeito produzido pelo \midaligned
comando?
Responder1
Ao ativar a quebra de linha para texto em chinês com o \setscript
comando ConTeXt, adicione um pequeno espaço verificável entre todas as letras chinesas. Este espaço é necessário para preencher o espaço disponível em cada linha e compensar lacunas de pontuação e aspas.
Ao tentar centralizar o texto em um alignment
ambiente, o material de preenchimento à esquerda e à direita do texto não é forte o suficiente para cancelar o texto extensível entre cada letra. Você pode usar a broad
palavra-chave para o alinhamento para obter um material de preenchimento mais resistente que evite que o espaço entre as letras seja usado para preencher a linha.
Outra forma de evitar o espaço entre as letras é colocá-las em um, \hbox
mas neste caso é necessário adicionar \dontleavehmode
na frente de cada caixa para garantir que fique centralizado na linha.
\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