将长度乘以因子

将长度乘以因子

我正在尝试创建一个将使用网格排版的包(在人文学科中,所以没有太大问题),但它应该允许用户自由设置\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 参数。

相关内容