漢字的對齊方式

漢字的對齊方式

我想做幾個中間對齊的段落,這是程式碼:

\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。)

當字元放入 a 時hbox,兩個段落變為左對齊!

如何修改\start ... \stopalignment環境才能達到指令產生的效果\midaligned

在此輸入影像描述

答案1

當您使用指令 ConTeXt 為中文文字啟用換行時,\setscript請在所有中文字母之間新增一個小的可驗證空格。需要此空間來填充每行上的可用空間並補償標點符號和引號的間隙。

當嘗試將文字在alignment環境中居中時,文字左側和右側的填充材料不夠堅固,無法抵消每個字母之間的可拉伸文字。您可以使用broad關鍵字進行對齊以獲得更強的填充材料,從而防止字母之間的空格用於填充行。

防止字母之間出現空格的另一種方法是將它們放在 a 中\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

在此輸入影像描述

相關內容