精致的方形单元格表

精致的方形单元格表

是否可以绘制如下图所示的表格。表格应有方形单元格和沿边框的注释。

我知道我可以使用 Easytable 包中的 TAB 环境来创建方形单元格表,但我不知道如何在顶部边框上放置符号。我想使用图 2 的多列命令,但它在 TAB 环境中不起作用。或者也许有另一种简单的方法可以实现相同的效果?

正如此链接所建议的,Easytable 包中有 TAB 的替代品http://www.tug.org/pracjourn/2005-2/robertson/,但我无法插入任何符号,并且多列命令不起作用。我使用 XeLaTeX。

带有方形单元格且沿垂直和水平边框有注释的表格。

答案1

解决方案构想

这里提供的解决方案不包含任何软件包或类似的东西。我强烈建议您在开始使用任何软件包之前先尝试此类解决方案。您应该知道自己在做什么。

(请参阅本文末尾的解决方案,其中使用了您提供的链接

  1. 您的第一个表格实际上包含四列,其中一列右侧有一条线,然后三列也有线。

  2. 边界上的标记实际上是表格的一部分。这里使用了特殊类型的单元格。请参阅接下来的两个枚举。

  3. 对于顶部的符号,您可以使用\multicolumn。单元格跨越一列,内容居中且没有边框 ( \multicolumn{1}{c})。我们定义一个宏 ( \mca),因为我们会多次使用它们。

  4. 对于左侧的符号,您再次使用\multicolumn。单元格跨越一列,内容居中,边框在右侧 ( \multicolumn{1}{c|})。同样,我们定义一个宏 ( \mcb),因为我们会多次使用它们。

  5. 您使用\cline在第一个表中从第 2 列到第 4 列跨越一条水平线。

  6. 第二个表格比较简单,只有三列。我们\mca也将这个宏重新用于这个表格。

  7. 您可以进行调整\arraystretch来调整行高(以获得您要求的方形单元格)。

我很确定你知道如何把这些表格放进去浮动环境


代码

\documentclass{article}

\begin{document}

\def\mca#1{\multicolumn{1}{c}{#1}}
\def\mcb#1{\multicolumn{1}{c|}{#1}}
\renewcommand{\arraystretch}{2.25}
\begin{tabular}{c|c|c|c|}
  \mca{}  & \mca1 & \mca2 & \mca3 \\\cline{2-4}
  \mcb1   & AB    & BC    & DA    \\\cline{2-4}
  \mcb2   & EF    & GH    & IJ    \\\cline{2-4}
  \mcb{C} & KL    & MN    & OP    \\\cline{2-4}
\end{tabular}

\bigskip
\renewcommand{\arraystretch}{2.0}
\begin{tabular}{|c|c|c|}
  \mca{3 bit} & \mca{1-2 bits} & \mca{0 bit} \\\hline
  1           & 10             & 1           \\\hline
\end{tabular}

\end{document}

输出

在此处输入图片描述

解决方案使用您提供的链接

如果您坚持使用您提供的链接中的技术,以下是第一个表格的替代解决方案。它使用链接中的方形单元格技术。

\documentclass{article}

\usepackage{calc}
\usepackage{array}

\newlength\celldim
\setlength\celldim{3em}
\newlength\fontheight
\settoheight\fontheight{A}
\newlength\extraheight
\setlength\extraheight{\celldim - \fontheight}

\makeatletter
\newcolumntype{S}
{ @{}
>{\centering\arraybackslash}
p{\celldim}
<{\rule[-0.5\extraheight]{0pt}%
{\fontheight + \extraheight}}
@{} }
\makeatother

\begin{document}

\def\mca#1{\multicolumn{1}{c}{#1}}
\def\mcb#1{\multicolumn{1}{c|}{#1}}
\begin{tabular}{c|S|S|S|}
  \mca{}  & \mca1 & \mca2 & \mca3 \\\cline{2-4}
  \mcb1   & AB    & BC    & DA    \\\cline{2-4}
  \mcb2   & EF    & GH    & IJ    \\\cline{2-4}
  \mcb{C} & KL    & MN    & OP    \\\cline{2-4}
\end{tabular}

\end{document}

第二个输出

在此处输入图片描述

答案2

您可以嵌套表格环境。所有单元格均为 2cm x 2cm:

\documentclass[border=20pt]{standalone}
\usepackage{array}
\usepackage[thinlines]{easytable}
\newcommand\ML[1]{\llap{#1\quad}}

\begin{document}

\huge
\begin{tabular}{c}
\begin{TAB}(e,2cm,2cm){ccc}{ccc}   
     1 & 2 & 3 
\end{TAB}\\[-\normalbaselineskip]
\begin{TAB}(e,2cm,2cm){|c|c|c|}{|c|c|c|}   
\ML{1}AB & BC & DA    \\
\ML{2}EF & GH & IJ    \\
\ML{C}KL & MN & OP    \\
\end{TAB}
\end{tabular}

\end{document}

在此处输入图片描述

相关内容