\vbox 下面有一些额外的空间

\vbox 下面有一些额外的空间

我不明白为什么当使用\vbox某个高度时,其下面会增加一些额外的空间。

我正在尝试 - 面向网格排版 - 将例如图形放在特定高度的 vbox 中(例如2 \baselineskip),因此图片应占据 的多重性\baselineskip。但是,它失败了,因为在 下方添加了一些额外的空间\vbox。为什么?

我曾尝试使用\nointerlineskip\vbox但没有结果。

我知道这个帖子我怎样才能使行间距忽略 vbox?,但这对我没有帮助。

下面有一个 MWE,我包含了一些标尺以便更容易地澄清问题:

\documentclass[11pt]{article}  
\usepackage{lipsum}
%%% rulers
\usepackage{atbegshi,picture}
\makeatletter 
\AtBeginShipout{%
\AtBeginShipoutUpperLeft{%
  \put(\dimexpr
    \ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + 1in\relax,
      -\dimexpr\topmargin + 1in + \headheight + \headsep\relax){%
       \begin{picture}(0,0)%
       \setlength{\unitlength}{13bp}%
        \setlength{\dimen0 }{0pt}%
        \@whiledim\dimen0<\dimexpr\textheight+1sp\relax\do{%
        \put(0,-\dimen0){\line(1,0){\textwidth}}%
        \addtolength{\dimen0 }{\unitlength}%
      }%
   \end{picture}%
  }%
 }%
}
\makeatother
 \makeatletter
 \setlength{\topskip}{13bp}
 \renewcommand\normalsize{%
  % \baselineskip to 13bp for \normalsize
  \@setfontsize\normalsize\@xipt{13bp}%
  % the following values are taken from size11.clo.
  \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI 
   }
   \usepackage{parskip}
   \setlength{\parskip}{13bp}
   \makeatother
  \begin{document}
  \lipsum[1]
  \vbox to 2\baselineskip{ }
   \lipsum[1]
   \end{document}

答案1

在此处输入图片描述

您需要注意前一行的深度。

\documentclass[11pt]{article}  
\usepackage{lipsum}
%%% rulers
\usepackage{atbegshi,picture}
\makeatletter 
\AtBeginShipout{%
\AtBeginShipoutUpperLeft{%
  \put(\dimexpr
    \ifodd\value{page}\oddsidemargin\else\evensidemargin\fi + 1in\relax,
      -\dimexpr\topmargin + 1in + \headheight + \headsep\relax){%
       \begin{picture}(0,0)%
       \setlength{\unitlength}{13bp}%
        \setlength{\dimen0 }{0pt}%
        \@whiledim\dimen0<\dimexpr\textheight+1sp\relax\do{%
        \put(0,-\dimen0){\line(1,0){\textwidth}}%
        \addtolength{\dimen0 }{\unitlength}%
      }%
   \end{picture}%
  }%
 }%
}
\makeatother
 \makeatletter
 \setlength{\topskip}{13bp}
 \renewcommand\normalsize{%
  % \baselineskip to 13bp for \normalsize
  \@setfontsize\normalsize\@xipt{13bp}%
  % the following values are taken from size11.clo.
  \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI 
   }
   \usepackage{parskip}
   \setlength{\parskip}{13bp}
   \makeatother
  \begin{document}
  \lipsum[1]
  \par\kern-\prevdepth%%%%%%%%%%%%%%%%%%%%%%%%
  \nointerlineskip
  \vbox to 2\baselineskip{ }
   \lipsum[1]
   \end{document}

相关内容