为什么在“center”环境之间生成的垂直空间始终为“10pt”(无论字体大小如何)以及为什么需要删除“\vspace{-20pt}”?

为什么在“center”环境之间生成的垂直空间始终为“10pt”(无论字体大小如何)以及为什么需要删除“\vspace{-20pt}”?

我的第一个困惑是,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}

相关内容