
中央揃えの段落をいくつか作成したいのですが、コードは次のとおりです。
\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
、2 つの段落が左揃えになります。
コマンド\start ... \stopalignment
によって生成された効果を得るために環境を変更するにはどうすればよいですか?\midaligned
答え1
ConTeXt コマンドを使用して中国語テキストの改行を有効にする場合は、\setscript
すべての中国語文字の間に小さな可変スペースを追加します。このスペースは、各行の使用可能なスペースを埋め、句読点や引用符によるギャップを補正するために必要です。
環境でテキストを中央揃えにしようとすると、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