我希望创建一个上下有紧密水平线的文本块,例如
这是一个段落。
下面的示例似乎在段落和下面的水平线之间产生了比上面的水平线更多的空间。
\noindent\rule{\linewidth}{0.4pt}
\noindent This is a paragraph, possibly with more than 1 line of text.\\ \noindent\rule{\linewidth}{0.4pt}
据我所知,这种行为是由于 LaTeX 中规则的格式造成的。我更希望有一种解决方案,它能让段落和两行之间的间距相同,并且行与段落之间的间距相当近。理想情况下,该解决方案不应使用任何附加包,并且对字体、字体大小、文本格式和行距的变化具有鲁棒性。我读到 \offinterlineskip 可能会解决这个问题,但我想检查这是否确实是首选解决方案,以及如何实现它以避免破坏其他任何东西。
答案1
是否有“更多空间”取决于您从哪里测量。如果(如您的示例所示)规则放置在等距基线上,则字母顶部与顶部规则之间的空间小于字母底部与底部规则之间的空间。然而,这确实意味着规则之间的空间仅取决于行数,而不取决于文本的内容。
您可以删除相等基线要求,但是如果第一行没有大写字母,则顶部规则位置会移动,如果有降部,则底部规则位置会移动。
当然,您可以通过某种方式调整空间,但首先您必须定义“紧”。
\documentclass{article}
\setlength\parindent{0pt}
\setlength\textwidth{5cm}
\begin{document}
\rule{\linewidth}{0.4pt}
1 This is a paragraph, possibly with more than 1 line of text.
\rule{\linewidth}{0.4pt}
\bigskip
\rule{\linewidth}{0.4pt}
\nointerlineskip
2 This is a paragraph, possibly with more than 1 line of text.
\nointerlineskip
\rule{\linewidth}{0.4pt}
\bigskip
\rule{\linewidth}{0.4pt}
3 This is a paragraph, possibly with more than 1 ggg.
\rule{\linewidth}{0.4pt}
\bigskip
\rule{\linewidth}{0.4pt}
\nointerlineskip
4 This is a paragraph, possibly with more than 1 ggg.
\nointerlineskip
\rule{\linewidth}{0.4pt}
\bigskip
\rule{\linewidth}{0.4pt}
5 this is a paragraph, possibly with more than 1 line of text.
\rule{\linewidth}{0.4pt}
\bigskip
\rule{\linewidth}{0.4pt}
\nointerlineskip
6 this is a paragraph, possibly with more than 1 line of text.
\nointerlineskip
\rule{\linewidth}{0.4pt}
\end{document}