在 tabularx 中使用多列时表格单元格超出范围

在 tabularx 中使用多列时表格单元格超出范围

我请求您就创建这样的表格提供帮助:

    \documentclass[a4paper,12pt]{article}
    \usepackage[utf8]{inputenc}
    \usepackage{makecell} 
    \usepackage{tabularx}
    \RequirePackage{geometry}
    \geometry{a4paper, top=2cm, bottom=2cm, left=2cm, right=2cm}


    \begin{document}
    \begin{tabularx}{\linewidth}{ |*{3}{X|} X| *{3}{X|} X| *{3}{X|} X 
                ||  c  || c ||          
                *{16}{X|} X 
                |c}
        \hline
        \multicolumn{12}{|c||}{\textbf{Base 2}}     
        & \textbf{Base 16}
        & \textbf{Base 10}
        & \multicolumn{16}{c|}{ \textbf{DCB} } &
        \\ \hline \hline
        &&&&& &&&&& & 
        &
        &
        &&&&& &&&&& &&&&& &\\ \hline
    \end{tabularx}
    \end{document}

此代码产生:

表格中有一个无用行

请注意,我不想在表格中添加最后一列,但我添加了它来向您展示删除它时造成的差异,代码变为:

    \begin{tabularx}{\linewidth}{ |*{3}{X|} X| *{3}{X|} X| *{3}{X|} X 
                ||  c  || c ||          
                *{16}{X|} X 
                |}
        \hline
        \multicolumn{12}{|c||}{\textbf{Base 2}}     
        & \textbf{Base 16}
        & \textbf{Base 10}
        & \multicolumn{16}{c|}{ \textbf{DCB} } 
        \\ \hline \hline
        &&&&& &&&&& & 
        &
        &
        &&&&& &&&&& &&&&& \\ \hline
    \end{tabularx}

生成结果为:

超出范围的表

一切都变得糟糕透了

  • 包含“DCB”的单元格不再与其下方的第 16 个单元格对齐
  • 小细胞膨胀
  • 表超出范围

你能帮助我吗 ?

答案1

我不会tabularx在这里使用,它旨在控制带有文本段落的单元格内的换行。

在此处输入图片描述

\documentclass[a4paper,12pt]{article}

    \usepackage{array}
    \usepackage{geometry}
    \geometry{a4paper, top=2cm, bottom=2cm, left=2cm, right=2cm}


    \begin{document}
    \begin{center}

X\dotfill X

     \setlength\tabcolsep{2pt}
    \begin{tabular}{
@{}
 |*{12}{wc{3mm}|}|
*{2}{c||}
*{16}{wc{3mm}|}
@{}
}
        \hline
        \multicolumn{12}{|c||}{\textbf{Base 2}}     
        & \textbf{Base 16}
        & \textbf{Base 10}
        & \multicolumn{16}{c|}{ \textbf{DCB} }
        \\ \hline \hline
        &&&&& &&&&& & 
        &
        &
        &&&&& &&&&& &&&&& &\\ \hline
    \end{tabular}

    \end{center}

    \end{document}

array如果你有该包的旧副本w且未定义,则此定义w将起作用

 \newcolumntype{w}[2]{>{\begin{lrbox}{0}}#1<{\end{lrbox}\makebox[#2]{\usebox0}}}

相关内容