我的第一个困惑是,center
环境之间生成的空间始终10pt
与全局字体大小无关。因为行间距应该取决于字体大小,但在这种情况下并非如此。
第二,负数vspace
必须是-20pt
要移除center
环境之间生成的空间。为什么不能呢-10pt
?(由于某种原因,这不会导致任何变化)。
非常欢迎您的解释(我需要解决这个问题才能继续进行文档排版)。
\documentclass[varwidth]{standalone}
\begin{document}
\LARGE % comment/uncomment this line and still get same space (for different font-size)
\begin{center}
\hrule height 0.01pt
hello world
\hrule height 0.01pt
\end{center}
\vspace{-20pt} % space here is 10pt but requires -20pt to remove (why?)
\begin{center}
\hrule height 0.01pt
hello world
\hrule height 0.01pt
\end{center}
\end{document}
附录(与数学显示模式类似,除了不需要像上一个center
环境中的示例那样否定两倍的空间之外;为什么会生成额外的 1pt 并且出于与上例相同的原因添加了 10pt 还是它来自其他地方 [不是作为列表间距的一部分]?;这次,\LARGE 会影响间距并使其大于 [10pt+1pt]):
\documentclass[varwidth]{standalone}
\usepackage{amsmath}
\begin{document}
hello world
\hrule height 0.01pt
$$\boxed{\begin{gathered}2+2=4\end{gathered}}$$
% remove following line to get generated space
\vspace{-\dimexpr(10pt+1pt)}
\hrule height 0.01pt
hello world
\end{document}
答案1
环境center
实现为因此获得列表间距,这里的两个列表都以垂直模式开始因此获得+trivlist
的垂直空间。\partopsep
\topsep
在标准样式和standalone
默认 10pt 选项中,这是
(2pt 加 1pt 减 1pt) + (8pt 加 2pt 减 4pt)
所以
10pt 加 3pt 减 5pt
所以正如您所说,自然长度为 10pt。
在标准类中\topsep
,并且\partopsep
不会因大小更改命令而改变,因此不会受到\LARGE
您示例中的影响。
答案2
可以通过不使用环境来避免此问题center
,从而不插入与之相关的额外垂直空间
\documentclass[varwidth]{standalone}
\begin{document}
% \LARGE % comment/uncomment this line and still get same space (for different font-size)
% \begin{center}
{
\centering
\hrule height 0.01pt
hello world
\hrule height 0.01pt
% \end{center}
}
% \vspace{-20pt} % space here is 10pt but requires -20pt to remove (why?)
{
\centering
% \begin{center}
\hrule height 0.01pt
hello world
\hrule height 0.01pt
% \end{center}
}
\end{document}