我需要修复我正在编写的文档中的精确行距,但仅限于文档的普通部分。换句话说,我正在编写数学,文本中有很多环境(定理、命题、定义等):有没有办法让行距仅在这些环境之外工作,而无需每次使用环境时都插入命令?
我想我可以在文档开头重新定义所有环境,有没有更简单的方法可以做到这一点?
答案1
使用etoolbox
并setspace
在序言中写下如下内容:
\AtBeginEnvironment{mytheorem}{\singlespacing}
或\BeforeBeginEnvironment{mytheorem}{\singlespacing}
(尚未测试哪一个有效 - 请参阅 etoolbox 的文档)。
并使用以下命令恢复文档全局间距:
\AtEndEnvironment{mytheorem}{\linespread{…}}
或者\AfterEndEnvironment{mytheorem}{\linespread{…}}
除了评论之外,您可能应该使用\setspace{…}
命令(来自同名包)而不是\linespread
,因为该包会处理许多副作用。请参阅l2tabu
,§1.4 中的详细信息。