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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions