删除两个 vbox 之间的空格

删除两个 vbox 之间的空格

我怎样才能删除两个vbox之间的空间最小代码

\documentclass{article}
\usepackage[left=.5cm,right=.5cm,top=.5cm,bottom=.5cm]{geometry}
\setlength\parindent{0pt}
\begin{document}
    \setbox0=\vbox{\hsize=.5\linewidth Hi}
    \setbox1=\vbox{\hsize=.5\linewidth everyone}
    \setbox2=\hbox{\vrule\box0\vrule\box1\vrule}
    \setbox3=\vbox{\hrule\box2\hrule}
    \copy3\copy3
\end{document}

输出 enter image description here 谢谢

答案1

您必须除去线间胶水。

\documentclass{article}
\usepackage[left=.5cm,right=.5cm,top=.5cm,bottom=.5cm]{geometry}
\setlength\parindent{0pt}
\begin{document}

\setbox0=\vbox{\hsize=.5\linewidth Hi}
\setbox2=\vbox{\hsize=.5\linewidth everyone}
\setbox4=\hbox{\vrule\box0\vrule\box2\vrule}
\setbox6=\vbox{\hrule\box4\hrule}
\copy6\nointerlineskip\kern-0.4pt\copy6

\end{document}

我还添加了字距以叠加两个规则并更改了寄存器编号;作为一般规则,为此目的只应使用偶数寄存器。

enter image description here

答案2

es之间的间距由和胶水\vbox控制。如果你将它们设为 box zero,那么这些盒子就会粘在一起。\baselineskip\lineskip

我将跳过的设置放在一组中,以防止它影响文档的其余部分。

\documentclass{article}
\usepackage[left=.5cm,right=.5cm,top=.5cm,bottom=.5cm]{geometry}
\setlength\parindent{0pt}
\begin{document}
    \setbox0=\vbox{\hsize=.5\linewidth Hi}
    \setbox1=\vbox{\hsize=.5\linewidth everyone}
    \setbox2=\hbox{\vrule\box0\vrule\box1\vrule}
    \setbox3=\vbox{\hrule\box2\hrule}
    {\baselineskip=0pt
    \lineskip=0pt
    \copy3\copy3}
\end{document}

答案3

一旦其他人清楚地解释了如何处理行间跳过,也许对于新手来说值得注意的是,使用一个简单的表格就可以更轻松地获得相同的结果,而不必担心行跳过(......嗯,确实是更好的结果,因为中央水平线只输入一次)。

\documentclass{article}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\linewidth}{|>{Hi}X|>{everyone}X|}
\hline&\\\hline&\\\hline\end{tabularx}
\end{document}

mwe

相关内容