为什么空白环境中的行距​​更大?

为什么空白环境中的行距​​更大?

我发现自己对这样的事实感到困惑:同样的命令在空的环境。

有人可以解释一下原因吗,或者至少给我一种方法,使环境内部的线距与外部一样小?

这是代码:

\documentclass{article}

\newenvironment{footnotepar}{}{}%Empty environment

\begin{document}

\begin{footnotepar} %The line spacing here is too large
\fontsize{8pt}{8pt}\selectfont This is a blind text. This is a blind text.
This is a blind text. This is a blind text.
This is a blind text. This is a blind text.
This is a blind text. This is a blind text. This is a blind text. 
\end{footnotepar}

\fontsize{8pt}{8pt}\selectfont This is a blind text. This is a blind text.
This is a blind text. This is a blind text.
This is a blind text. This is a blind text.
This is a blind text. This is a blind text. This is a blind text. 
\end{document}

它输出:

在此处输入图片描述

LaTeX 版本:这是 pdfTeX,版本 3.14159265-2.6-1.40.16(TeX Live 2015/Debian)(预加载格式=pdflatex 2019.8.29)

答案1

让我们分析一下发生了什么。

您的footnotepar环境基本上不执行任何操作,除了对其中的文本进行分组之外。

在 时\end{footnotepar},TeX 执行\endgroup,这将撤消环境内的所有设置,包括\fontsize{8pt}{8pt}\selectfont。这不会影响字符的大小,因为它们已经进入了 TeX 的扫描仪,但它影响行间间距,因为 TeX 对每个段落仅使用一个值\baselineskip,并使用段落结束时的当前值\par(或空行,它们是相同的)。

在你的例子中,TeX 什么时候看到 a ?在when\par后面的空行已经撤消了组内执行的指令。太糟糕了,使用了标准。\end{footnotepar}\endgroup\setlength{\baselineskip}{8pt}\selectfont\baselineskip

在第二段中,\par由 自动提供\end{document}

每次你进行涉及跨行划分文本的字体大小更改时,确保\par在适当的时候发出。

答案2

在此处输入图片描述我通过一些调整找到了解决方案。

只需添加\par到环境定义中

\newenvironment{footnotepar}{}{\par}%Empty environment 

它确实有效,但我完全不满意,而且我不明白为什么会这样。

相关内容