![如何创建像 \doublespacing 这样的行距命令,但可以是任意倍数?](https://linux22.com/image/421419/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E5%83%8F%20%5Cdoublespacing%20%E8%BF%99%E6%A0%B7%E7%9A%84%E8%A1%8C%E8%B7%9D%E5%91%BD%E4%BB%A4%EF%BC%8C%E4%BD%86%E5%8F%AF%E4%BB%A5%E6%98%AF%E4%BB%BB%E6%84%8F%E5%80%8D%E6%95%B0%EF%BC%9F.png)
该setspace
包提供了几个多行间距命令,例如\doublespacing
。但据我所知,它不提供按任意因子计算的简单间距命令。它提供了\setstretch
但只是乘以\baselineskip
而不是像字体大小那样乘以\doublespacing
,因此\doublespacing
和导致不同的间距。我想知道为什么没有这样的命令以及是否可以创建一个。到目前为止,我的尝试(基于中\setstretch{2}
的定义)如下:\doublespacing
setspace
\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
。