CTeX-org / ctex-kit

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

夹注:直排全高窄体夹注的问题请求帮助 #713

Open chianjin opened 1 month ago

chianjin commented 1 month ago

感谢 @qinglee 的夹注包,帮助我编写了传统直排的模板。之前的模板采用默认的半高字体双行夹注。最近打算实现全高窄字体双行夹注,由于缺乏窄字体的支持,作为替代采用设置 FakeStretch 参数方法来实现窄字体,实际效果可以接受。简单样例如下:

\documentclass[oneside]{book}
\usepackage{xeCJK}
\usepackage{atbegshi}
\usepackage{jiazhu}

\defaultCJKfontfeatures{RawFeature={vertical:+vert:+vhal}}
\setCJKmainfont{SimSun}
\newCJKfontfamily{\jiazhufont}{SimSun}[FakeStretch=1.6]

\jiazhuset{
  format=\jiazhufont,
  ratio=0.625,
  beforeskip=0pt,
  afterskip=0pt,
  shortcut=【】
}
\parindent=0pt
\AtBeginShipout{
  \special { pdf:put @pages<</Rotate 90>>}
}

\setlength{\textwidth}{400pt}

\begin{document}
\fontsize{20pt}{30pt}\selectfont

學之書古之大學所以教人之法也蓋自天降生民則既莫不與之以仁義禮
智之性矣然其氣質之【稟或不能齊是以不能皆有以知其性之所】有而全之也
一有聰明睿智能盡其性者出於其閑則天必命之以爲億兆之君師使之治而
教之以複其性此伏羲神農黃帝堯舜所以繼天立極而司徒之職典樂之官所
由設也

三代之隆其【法寖備然後王宮國都以及閭巷莫不有學人生八歲則自王公以
下至於庶人之子弟皆入小學而教之以灑掃應對進退之節禮樂射禦書數之
文及其十有五年則自天子之元子眾子以至公卿大夫元士之適子與凡民之
俊秀皆入大學而教之以窮理正心修己治人之道此又學校之教大小之節所
以分也】

夫以學校之設其廣如此教之之術其次第節目之詳又如此而其所以爲教則
又皆本之人君躬行心得之餘不待求之民生日用彝倫之外是以當世之人無
不學其學焉者無不有以知其性分之所固有職分之所當爲而各俛焉以盡其
力此古昔盛時所以治隆於上俗美於下而非後世之所能及也

及周之衰賢聖之君不作學校之政不修教化陵夷風俗頹敗時則有若孔子之
聖而不得君師之位以行其政教於是獨取先王之法誦而傳之以詔後世若曲
禮少儀內則弟子職諸篇固小學之支流餘裔而此篇者則因小學之成功以著
大學之明法外有以極其規模之大而內有以盡其節目之詳者也三千之徒蓋
莫不聞其說而曾氏之傳獨得其宗於是作爲傳義以發其意及孟子沒而其傳
泯焉則其書雖存而知者鮮矣
\end{document}

屏幕截图 2024-05-13 225355

但也有存在一些问题。截图中第二行末,正文与夹注之间出现间距,无法对齐。经观察似乎总是出现在跨行夹注的首行,但也并不是一定出现。上述设置每行20字的情况。

每行21字时,第二行末仍然不能对齐,原本能够对齐的第七行也出现了间距无法对齐。 屏幕截图 2024-05-13 230225

每行17字时,原本第二行的跨行夹注成为第三行的行内夹注完美对齐。原本第七行的跨行夹注移至第八行,夹注首行字间距明显加大,无法对齐,而且末行夹注两行也无法自身对齐。 屏幕截图 2024-05-13 230715

故在此,寻求以上问题的解决方案。