我需要一个具有不同字体大小的新环境,例如\large
。我正在做这样的事情平均能量损失:
\documentclass{article}
\usepackage{lipsum} % dummy text
\usepackage{setspace} % for a 'forced' solution
\NewDocumentEnvironment{mynewenv}{}{\large}{}
\NewDocumentEnvironment{myotherenv}{}{\begin{spacing}{1}\large}{\end{spacing}}
\begin{document}
\begin{mynewenv}
\lipsum[1][1-4]
\lipsum[1][1-4]
\end{mynewenv}
Text outside environments and with normal size.
% 'forced' solution:
\begin{myotherenv}
\lipsum[1][1-4]
\lipsum[1][1-4]
\end{myotherenv}
\end{document}
看起来第二段的行距与第一段不一样,所以我认为我做错了什么。
最后两段是尝试借助setspace
软件包强制解决问题。它工作正常,但正如我所说,我肯定有些事情我做得不对,而且一定有一个更简单的解决方案。有什么帮助吗?
答案1
spacing
如果你看一下的定义,setspace.sty
你会看到(删除了评论)
\newenvironment{spacing}[1]{%
\par
\begingroup
\setstretch {#1}%
}{%
\restore@spacing
}
现在你看到了
\newcommand{\restore@spacing}{%
\par
\vskip \parskip
\vskip \baselineskip
\endgroup
\vskip -\parskip
\vskip -\baselineskip
}
您几乎不需要包中的任何内容,除了主要内容,即\par
开头和结尾的内容。
\NewDocumentEnvironment{mynewenv}{}{\par\large}{\par}
末尾的原因是什么\par
?如果没有它,则 的范围\large
在段落排版之前结束,并且 TeX 将使用\par
遇到 时有效的基线间距,因此通常从 开始\normalsize
。