表格实际列宽与设定列宽不等

表格实际列宽与设定列宽不等

我想创建一个具有固定列长度的表,如下所示:

\documentclass[a4paper,12pt]{article}

\begin{document}

\begin{tabular}{|p{1cm}|p{2cm}|p{3cm}|}
    \hline
    1 cm  & 2 cm  & 3 cm  \\
    \hline 
\end{tabular}

Table with actual widths

\begin{tabular}{|p{0.56cm}|p{1.56cm}|p{2.56cm}|}
    \hline
    1 cm  & 2 cm  & 3 cm  \\
    \hline 
\end{tabular}

\end{document}

在此处输入图片描述

但是列长度不是我设置的确切数字。因此,我找到了一种移位方法,使列的长度符合我的要求。

为什么会发生这种情况以及我如何才能自动获取正确价值的过程?

答案1

\documentclass[a4paper,12pt]{article}

\begin{document}

\setlength\arrayrulewidth{2pt}
\begin{tabular}{|p{\dimexpr1cm-2\tabcolsep}
                |p{\dimexpr2cm-2\tabcolsep}
                |p{\dimexpr3cm-2\tabcolsep}|}
    \hline
    1 cm  & 2 cm  & 3 cm  \\
    \hline
\end{tabular}

\rule{6cm}{2pt}
\end{document}

根据需要设置单元格的绝对宽度。rule是表格宽度的比较。

答案2

几乎与@Zarko 的答案相同,只是减少了分隔列的线的(精细)长度……并引入了自定义宏:

\documentclass[a4paper,12pt]{article}
\usepackage{array, calc}

\newlength{\lw}
\setlength{\lw}{2\tabcolsep+\arrayrulewidth}

\begin{document}

\begin{tabular}{| p{1cm-\lw} | p{2cm-\lw} | p{3cm-\lw} |}
        \hline
        1 cm  & 2 cm  & 3 cm  \\
        \hline 
\end{tabular}
Table with actual widths
\begin{tabular}{|p{0.56cm}|p{1.56cm}|p{2.56cm}|}
        \hline
        1 cm  & 2 cm  & 3 cm  \\
        \hline 
\end{tabular}

\end{document}

生产:

在此处输入图片描述

相关内容