我正在尝试创建一个将使用网格排版的包(在人文学科中,所以没有太大问题),但它应该允许用户自由设置\baselinestretch
。我正在使用该类memoir
作为基础。
为了做到这一点,我定义了一些字体大小,并计算了应该添加的空间量(例如在标题后)\Large
,以保持垂直对齐;然后我相应地设置长度。例如:
\renewcommand{\baselinestretch}{1.1}\selectfont
\renewcommand*{\normalsize}{\fontsize{12}{14.5}\selectfont}
\renewcommand*{\Large}{\fontsize{17}{22}\selectfont}
\def\addto@Large{7.7pt}
\setlength{\beforechapskip}{\addto@Large}
\addtolength{\beforechapskip}{\baselineskip}
到目前为止,它已经可以正常工作,但我希望能够\baselinestretch
随意更改。为了做到这一点,我基本上需要将\addto@Large
命令定义为拉伸系数 1(因此它将7pt
在这里),然后将其乘以该\baselinestretch
系数。
这可能吗?如果可以,我该怎么做?
答案1
您有多种选择。例如,定义\addto@Large
为 dimen 参数:
\newdimen\addto@Large
\addto@Large=7pt
\setlength{\beforechapskip}{\baselinestretch\addto@Large}
\addtolength{\beforechapskip}{\baselinestretch\baselineskip}
您还可以通过使用以下方式一次性完成\dimexpr
:
\setlength\beforechapskip{\baselinestretch\dimexpr\addto@Large+\baselineskip\relax}
在这种情况下\addto@Large
也可以按照你的方式定义;但最好将其作为 dimen 参数。