![为什么空白环境中的行距更大?](https://linux22.com/image/401535/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A9%BA%E7%99%BD%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%E8%A1%8C%E8%B7%9D%E2%80%8B%E2%80%8B%E6%9B%B4%E5%A4%A7%EF%BC%9F.png)
我发现自己对这样的事实感到困惑:同样的命令在空的环境。
有人可以解释一下原因吗,或者至少给我一种方法,使环境内部的线距与外部一样小?
这是代码:
\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
在适当的时候发出。