如何创建像 \doublespacing 这样的行距命令,但可以是任意倍数?

如何创建像 \doublespacing 这样的行距命令,但可以是任意倍数?

setspace包提供了几个多行间距命令,例如\doublespacing。但据我所知,它不提供按任意因子计算的简单间距命令。它提供了\setstretch但只是乘以\baselineskip而不是像字体大小那样乘以\doublespacing,因此\doublespacing和导致不同的间距。我想知道为什么没有这样的命令以及是否可以创建一个。到目前为止,我的尝试(基于中\setstretch{2}的定义)如下:\doublespacingsetspace

\documentclass{article}
\usepackage{setspace}
\usepackage{xfp}

\makeatletter
\newcommand{\multispacing}[1]{%
  \setstretch {\fpeval{round(#1*10/12, 3)}}%  default
  \ifcase \@ptsize \relax % 10pt
    \setstretch {\fpeval{round(#1*10/12, 3)}}%
  \or % 11pt
    \setstretch {\fpeval{round(#1*11/13.6, 3)}}%
  \or % 12pt
    \setstretch {\fpeval{round(#1*12/14.5, 3)}}%
  \fi
}
\makeatother
\multispacing{3}

\begin{document}
First line

Second line
\end{document}

编辑

我已经找到编译失败的原因,并相应地更改了代码。现在我只想知道为什么包中没有提供这样的命令setspace

相关内容