CTeX-org / ctex-kit

Macro Packages and Scripts for Chinese TeX users
983 stars 124 forks source link

jiazhu 宏包是否支持 linespread < 1 的排版? #660

Open ChihSee-Hsie opened 1 year ago

ChihSee-Hsie commented 1 year ago

如题,在排版实践时,有时会在注文中使用一些瘦长的字体以复现古籍排版的效果。我在一次排版中利用自制的瘦长字体(使用 FontForge,字宽缩减为原先的 49%,字高不变)排版,指令 ratio = 1,并设置 format = \linespread{0.5},希望实现注文字高与正文相同的效果。但此时夹注的断行出了问题。于是我改通过设置 format = \setlength{\baselineskip}{正文字号 / 2} 的方式,迂回地实现了这一目的,然而这样做在断页时仍有问题——当页面最后一行出现了夹注,则会提前一行跨页。具体如下图:

效果示例

(TL 2023, upLaTeX)

几个 MWE 如下:

  1. \linespread{0.5} 时夹注断行出现的问题
    
    %arara: uplatex
    %arara: dvipdfmx
    \documentclass[tate, uplatex, dvipdfmx, jafontsize = 3pt]{jlreq}
    \usepackage[T1]{fontenc}
    \usepackage[scheme = plain]{ctex}
    \usepackage{lltjp-geometry}
    \usepackage{geometry}
    \geometry{
        paperheight = 10mm,
        paperwidth = 10mm,
        %bottom = 19mm,
        textwidth = 5zw,
        textheight = 9pt, % 一页三行
    }
    \usepackage{jiazhu}
    \jiazhuset{
        ratio = 0.5,
        format = \linespread{0.5}\color{red},
        beforeskip = 0pt,
        afterskip = 0pt,
    }
    \usepackage{color}

\begin{document} \lineskiplimit = -1000pt \baselineskip = 3pt \parindent = 0pt \pagestyle{empty} 〇〇〇〇〇〇〇〇〇\jiazhu{一二三四〇〇〇〇〇〇〇〇〇〇}〇〇〇 %第一行夹注只显示其中的第一排,且位置靠左。本应靠左的第一行第二排内容不见 \end{document}

![断行](https://user-images.githubusercontent.com/91021998/233773802-8c9bd4d0-23d2-42ce-a909-d11b859871bb.png)

2. 提前跨页的问题

%arara: uplatex %arara: dvipdfmx \documentclass[tate, uplatex, dvipdfmx, jafontsize = 3pt]{jlreq} \usepackage[T1]{fontenc} \usepackage[scheme = plain]{ctex} \usepackage{lltjp-geometry} \usepackage{geometry} \geometry{ paperheight = 10mm, paperwidth = 10mm, %bottom = 19mm, textwidth = 5zw, textheight = 9pt, % 一页三行 } \usepackage{jiazhu} \jiazhuset{ ratio = 1, format = \setlength{\baselineskip}{1pt}\color{red}, beforeskip = 0pt, afterskip = 0pt, } \usepackage{color}

\begin{document} \lineskiplimit = -1000pt \baselineskip = 3pt \parindent = 0pt \pagestyle{empty} 〇〇〇〇〇〇〇〇〇\jiazhu{〇}〇〇〇〇\newpage %当最后一行没有夹注,则可以填满三行 〇〇〇〇〇〇〇〇〇\jiazhu{〇〇〇}〇〇〇〇 %当最后一行出现夹注,则会提前跨页 \end{document}


[编译结果](https://github.com/CTeX-org/ctex-kit/files/11300697/test.pdf)

如有解答,我在这里预致谢忱。
RuixiZhang42 commented 1 year ago

第一个现象,即「部分夹注内容消失」,其本质与 https://github.com/CTeX-org/ctex-kit/issues/616#issuecomment-1112350392 分析的是一样的。这里的情况,是想取出两个50%高的行,但无奈只取出了第一行的「一二」出来,而丢掉了第二行的「三四」。