如何在纯 TeX 中控制 \settabs 下的垂直行距?

如何在纯 TeX 中控制 \settabs 下的垂直行距?

考虑以下示例。

\settabs \+ \hskip 4.5 in & \cr
\+ Silahkan masuk & Come in, please! \cr
\+ Silahkan duduk & Sit down, please! \cr
\+ Silahkan berdiri & Stand up, please! \cr
\bye

如何增加每行之间的垂直空间?

请注意,这个问题是关于TeX不是 乳胶

我已尝试过\parskip,但在这种情况下没有效果。

答案1

如果要开辟整个表格的空间,那么\openup在制表符前使用宏:

\begingroup\openup 6pt
\settabs \+ \hskip 4.5 in & \cr
\+ Silahkan masuk & Come in, please! \cr
\+ Silahkan duduk & Sit down, please! \cr
\+ Silahkan berdiri & Stand up, please! \cr
\endgroup

您可能想要在一个组内隔离这个变化,所以我在begingroupendgroup对中展示了它。

如果您只想在特定行后留有空格,只需添加合适的跳过命令。

\settabs \+ \hskip 4.5 in & \cr
\+ Silahkan masuk & Come in, please! \cr
\medskip
\+ Silahkan duduk & Sit down, please! \cr
\+ Silahkan berdiri & Stand up, please! \cr

答案2

一行\+被实现为一行\halign,但通过\ialign清除来调用\everycr。可以定义一个\ialign不执行该步骤的不同版本,并添加\everycr{\noalign{\vskip2pt}}或任何所需的长度,其效果是插入这样的跳过两次\vskip,因此顶部需要一个双倍来平衡底部的一个。

如果不希望桌子周围有垂直间距,则双消极的 \vskip可以在最后添加。

\catcode`@=11
\def\ialignx{\tabskip\z@skip\halign} % initialized \halign
\catcode`@=12

\input plipsum

\lipsum{2}

\begingroup
\par\vskip4pt\relax % compensate the bottom spacing
\let\ialign\ialignx % use locally \ialignx
\everycr{\noalign{\vskip2pt}}
\settabs \+ \hskip 2in & \cr
\+ Silahkan masuk & Come in, please! \cr
\+ Silahkan duduk & Sit down, please! \cr
\+ Silahkan berdiri & Stand up, please! \cr
\endgroup

\lipsum{3}

\begingroup
\let\ialign\ialignx % use locally \ialignx
\everycr{\noalign{\vskip2pt}}
\settabs \+ \hskip 2in & \cr
\+ Silahkan masuk & Come in, please! \cr
\+ Silahkan duduk & Sit down, please! \cr
\+ Silahkan berdiri & Stand up, please! \cr
\vskip-4pt\relax % compensate the top non spacing
\endgroup

\lipsum{4}

\bye

在此处输入图片描述

无论如何,我建议在这些结构周围添加垂直间距:第二个例子说明了原因。

相关内容