tabular* 带有橡胶间距和 \cline

tabular* 带有橡胶间距和 \cline

我使用tabular*带有橡皮筋间距的 来填充整个页面宽度。这很好用,但当我使用 时\cline,线条不完整。似乎\cline不覆盖间距。我正在使用pdflatex。下面您将找到一个代码示例。关于如何解决这个问题有什么想法吗?

 \usepackage{array} % for defining a new column type
 \usepackage{varwidth} %for the varwidth minipage environment
 %...
 \newcolumntype{M}{>{\begin{varwidth}{6cm}}l<{\end{varwidth}}} %M is for Maximal column
 %...
 \begin{tabular*}{15.5cm}{@{\extracolsep{\fill}} | M | r | r | r | r |}
   \hline
   \bf Omschrijving & \bf Hoeveelheid & \bf Prijs & \bf SubTotaal & \bf BTW\\
   \hline
   Armband 2 & 1 & 256.00 & 256.00 & 19.00\% \\
   \hline
   \multicolumn{3}{c |}{} & SubTotaal & 256.00\\
   \multicolumn{3}{c |}{} & BTW (19.0) & 48.64\\
   \multicolumn{3}{c |}{}  & \bf Totaal & \bf 304.64\\
   \cline{4-5}
\end{tabular*}

答案1

这是因为\extracolsep{\fill}会产生未填充的空间\cline。您可以通过删除 来验证这一点@{\extracolsep{\fill}}

除了移除那段橡胶外,你还可以通过以下方法进行修复

  • 插入另一个,例如

\begin{tabular*}{15.5cm}{@{\extracolsep{\fill}}| M | r | r |@{\extracolsep{0pt}}r | r |}

  • 或者通过使用宽度适合的表格环境来调整列宽而不是列分隔:tabularx。这是我的选择。

此外,我强烈建议省略所有这些妨碍阅读的垂直线。好的表格不需要网格!看看booktabs包及其文档。我可能会使用顶线、标题下方的分隔线和底线,但根本不使用垂直线。比较好书中的表格,您也可以排版精美的表格。

答案2

如前所述(无示例),这是由tabularx包裹

更具体地说,它提供X根据需要拉伸特定列以填充表格宽度的列类型。

常见用法格式为:

\usepackage{tabularx}% http://ctan.org/pkg/tabularx
...
\begin{tabularx}{<width>}{..X..X..}
  ...
\end{tabularx}

这是您的最小示例:

\documentclass{article}
%\usepackage{array}% http://ctan.org/pkg/array
\usepackage[margin=1cm]{geometry}% http://ctan.org/pkg/geometry
\usepackage{tabularx}% http://ctan.org/pkg/tabularx
\begin{document}
    %\newcolumntype{M}{>{\begin{varwidth}{6cm}}l<{\end{varwidth}}} %M is for Maximal column
    
    \noindent%
    \begin{tabularx}{\linewidth}{| p{6cm} | X | X | X | X |}
        \hline
        \textbf{Omschrijving} & \textbf{Hoeveelheid} & \textbf{Prijs} & \textbf{SubTotaal} & \textbf{BTW} \\     \hline
        Armband 2 & 1 & 256.00 & 256.00 & 19.00\% \\     \hline
        \multicolumn{3}{c |}{} & SubTotaal & 256.00 \\     \multicolumn{3}{c |}{} & BTW (19.0) & 48.64 \\     \multicolumn{3}{c |}{} & \textbf{Totaal} & \textbf{304.64} \\     \cline{4-5}
    \end{tabularx}
\end{document}

Tabularx 示例

答案3

这不是一个真正的答案,但我想说的是,从一点点摆弄它似乎与橡胶长度无关,\extracolsep效果并不好\cline

\documentclass{article}
\begin{document}
    \begin{tabular}{|@{\extracolsep{1cm}}{l}@{\extracolsep{1cm}}|r|c|@{\extracolsep{0cm}}}
    \cline{1-3} 
    one&two&three\\    \cline{2-3}
    one&two&three\\    \cline{1-2}
    one&two&three\\    \cline{2-2}
    one&two&three\\    \cline{3-3}
\end{tabular}
\end{document}

结果是:

替代文本

有几点是错误的:

  • 为什么第一列这么挤压?
  • 为什么没有在每一列的左右两侧添加空格?
  • 为什么倾斜线没有完全到达垂直线?

我知道这不是答案……我很抱歉,如果人们认为我应该将此重新发布为问题,我很乐意这样做。为了安抚众神,我已将此答案标记为 CW,以便人们可以将问题转换为真正的答案,因为我认为这里有一些问题与原始问题非常相关。

相关内容