Mesa sofisticada de células quadradas

Mesa sofisticada de células quadradas

É possível desenhar tabelas como as das Figuras abaixo. As tabelas devem ter células quadradas e anotações ao longo das bordas.

Eu sei que poderia usar o ambiente TAB do pacote Easytable para criar tabelas de células quadradas, mas não sei como colocar notações na borda superior. Gostaria de usar o comando multicolumn para a Figura 2, mas ele não funciona no ambiente TAB. Ou talvez haja outra abordagem simples para conseguir o mesmo?

Existe uma alternativa ao TAB do pacote Easytable conforme sugerido por este linkhttp://www.tug.org/pracjourn/2005-2/robertson/, mas não consigo inserir nenhuma notação e o comando multicolumn não funciona. Eu uso o XeLaTeX.

Tabela com células quadradas e notações ao longo da borda vertical e horizontal.

Responder1

Ideias de soluções

A solução fornecida aqui não contém nenhum pacote ou algo parecido. Eu sugiro fortemente que você opte por essas soluções antes de começar a usar qualquer pacote. Você deve saber o que está fazendo.

(Veja no final deste post uma solução que utiliza a técnica de célula quadrada deseu link fornecido.)

  1. Na verdade, sua primeira tabela contém quatro colunas, uma com uma regra à direita e depois três regras.

  2. As notações ao longo das bordas fazem parte da tabela. Tipos especiais de células são usados ​​aqui. Veja as próximas duas enumerações.

  3. Para as notações no topo, você usa \multicolumn. As células ocupam uma coluna, têm conteúdo centralizado e não têm bordas ( \multicolumn{1}{c}). Definimos uma macro ( \mca), pois as usamos várias vezes.

  4. Para notações à esquerda, novamente você usa \multicolumn. As células ocupam uma coluna, possuem conteúdo centralizado, com borda à direita ( \multicolumn{1}{c|}). Novamente, definimos uma macro ( \mcb), pois as usamos várias vezes.

  5. Você usa \clinepara abranger uma linha horizontal da coluna 2 à coluna 4 na primeira tabela.

  6. A segunda tabela é mais simples, com três colunas. Reutilizamos a macro \mcapara esta também.

  7. Você ajusta \arraystretchpara ajustar a altura das linhas (para obter as células quadradas conforme solicitado por você).

Tenho certeza que você sabe como colocar essas tabelas dentroambientes flutuantes.


O código

\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}

A saída

insira a descrição da imagem aqui

Solução usandoSeu link fornecido

Se você insiste em usar a técnica do link fornecido, aqui está uma solução alternativa para a primeira tabela. Isso usa a técnica de célula quadrada do link.

\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}

Segunda saída

insira a descrição da imagem aqui

Responder2

Você pode aninhar os ambientes tabulares. Todas as células têm 2 cm x 2 cm:

\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}

insira a descrição da imagem aqui

informação relacionada