漢字の配置

漢字の配置

中央揃えの段落をいくつか作成したいのですが、コードは次のとおりです。

\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

ここに画像の説明を入力してください

関連情報