TeX(不是 LaTeX)表格、行和对齐

TeX(不是 LaTeX)表格、行和对齐

注意:我使用 TeX 而不是 LaTeX。

因此多年来,我一直使用以下代码来创建带有线条的表格:

\def\tablerule{\noalign{\vskip1pt\hrule\vskip1pt}}
\vtop to 4truein{
  \halign{
    \strut\vrule#&
    \hskip2pt#\hfil&
    \vrule\hskip2pt\hfil#\hfil\hskip2pt&
    \vrule\hskip2pt\hfil#\hfil\hskip2pt&
    \vrule\hskip2pt\hfil#\hfil\hskip2pt&
    #\vrule\cr
    \tablerule
    & first amper keeps text away from the rule & then i have boxes & of text & last amper keeps text away from the rule & \cr \tablerule
  }
}

我不知道如何显示输出。抱歉。

水平线\tablerule\vskip1pt,因为对我来说,带有线条的文本看起来非常拥挤,而添加空格可以使文本稍微变亮。

但是,使用 时\vskip1pt,垂直线并不完整。垂直线与水平线相交的地方有一些微小的 1pt 白点。这不是什么大问题,但如果可以的话,我想修复它。

所以我猜应该有一种方法可以指定类似“即使我使用的是 10 点类型,也要使线的高度看起来就像是 14 点类型”或类似的东西。

我尝试玩,但它似乎对 内部或 内部\baselineskip没有任何影响。\vbox\halign

答案1

标准解决方案是:给出更大的\strut。例如,\vbox to<xx>{}创建给定高度加深度的支柱。深度由设置\lower。更确切地说:

\def\tablerule{\noalign{\hrule}}
\vtop to 4truein{
  \halign{
    \lower5pt\vbox to16pt{}\vrule#&
    \hskip2pt#\hfil&
    \vrule\hskip2pt\hfil#\hfil\hskip2pt&
    \vrule\hskip2pt\hfil#\hfil\hskip2pt&
    \vrule\hskip2pt\hfil#\hfil\hskip2pt&
    #\vrule\cr
    \tablerule
    & first amper keeps text away from the rule & then i have boxes & of text & last amper keeps text away from the rule & \cr \tablerule
  }
}

答案2

为每个垂直规则分配一个单元格;\omit您可以覆盖第一个单元格中的支柱并添加所需的高度。

\def\tablerule{%
  \noalign{\hrule}
}

\vbox{
  \offinterlineskip\tabskip=0pt
  \halign{%
    \tabskip=2pt
    \strut\vrule#&
    \hfil#\hfil&
    \vrule#&
    \hfil#\hfil&
    \tabskip=0pt
    \vrule#\cr
    \tablerule
    \omit\vrule height 6pt &&&&\cr
    & hamburgefontstiv&& hamburgefontstiv&\cr
    \omit\vrule height 6pt &&&&\cr
    \tablerule
    \omit\vrule height 6pt &&&&\cr
    & hamburgefontstiv&& hamburgefontstiv&\cr
    \omit\vrule height 6pt &&&&\cr
    \tablerule
  }
}

\bye

在此处输入图片描述

相关内容