Skip to content

jiazhu: 传统直排半高夹注正文对齐求助 #714

Description

@chianjin

中文传统直排要求正文垂直方向对齐。在ratio=0.5,夹注字符尺寸是正文的一半,当夹注字数除以 4 余数为 1、2 的时候,夹注本身的宽度是夹注字体尺寸的奇数倍,就会造成正文在垂直对齐错位半个正文字符。(附图左边情形)我最初解决这个问题的方法是在夹注末尾手动插入全角空格,强行使得夹注宽度是夹注字符尺寸的偶数倍。

感谢 @qinglee 给出的一个 Patch,保证了夹注的宽度总是夹注字体尺寸的偶数倍,解决了正文垂直对齐的问题。(附图中间情形)这个方案会出现夹注的第一行比第二行多出 2 个或 3 个字符的情形。但是总是感觉不够美观。

\cs_set_protected:Npn \__jiazhu_dim_normalize:N ##1 {
  \int_set:Nn \l_tmpa_int { \dim_ratio:nn { ##1 } { \l__jiazhu_unit_dim } }
  \int_if_even:nF { \l_tmpa_int } { \int_incr:N \l_tmpa_int }
  \dim_set:Nn ##1 { \l__jiazhu_unit_dim * \l_tmpa_int }
}
\cs_set_protected:Npn \__jiazhu_extract_max_width:N ##1 {
  \dim_set:Nn \l__jiazhu_width_dim { \box_wd:N ##1 }
  \dim_set_eq:NN \l__jiazhu_max_dim \l__jiazhu_width_dim
}

我现在的临时手工解决方案是不再采用这个 patch,手动在夹注末尾和正文之间插入\hspace{0.5em}增加空白来对齐。(附图右边的情形)

是否可以通过判断,夹注本身宽度为夹注字符尺寸奇数倍的时候,自动在夹注末尾和正文之间自动插入一个夹注字符高度的空白?本身水平有限,虽然读了夹注包的源代码,没有读懂而无从下手。请求帮助。感谢。

zhvt

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions