我不明白为什么当使用\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}