Mesa sofisticada de celdas cuadradas.

Mesa sofisticada de celdas cuadradas.

¿Es posible dibujar tablas como las de las figuras siguientes? Las tablas deben tener celdas cuadradas y anotaciones a lo largo de los bordes.

Sé que podría usar el entorno TAB del paquete Easytable para crear tablas de celdas cuadradas, pero no sé cómo poner notaciones en el borde superior. Me gustaría utilizar el comando de varias columnas para la Figura 2 pero no funciona en el entorno TAB. ¿O tal vez exista otro enfoque sencillo para lograr lo mismo?

Existe una alternativa a TAB del paquete Easytable como lo sugiere este enlacehttp://www.tug.org/pracjourn/2005-2/robertson/, pero no puedo insertar ninguna notación y el comando multicolumna no funciona. Yo uso XeLaTeX.

Tabla con celdas cuadradas y anotaciones a lo largo del borde vertical y horizontal.

Respuesta1

Ideas de solución

La solución proporcionada aquí es sin ningún paquete ni nada por el estilo. Le recomiendo encarecidamente que busque estas soluciones antes de comenzar a utilizar cualquier paquete. Deberías saber lo que estás haciendo.

(Consulte el final de esta publicación para ver una solución que utiliza la técnica de celda cuadrada deel enlace proporcionado.)

  1. Su primera tabla en realidad contiene cuatro columnas, una con una regla a su derecha y luego tres con reglas.

  2. Las anotaciones a lo largo de los bordes son en realidad parte de la tabla. Aquí se utilizan tipos especiales de células. Vea las siguientes dos enumeraciones.

  3. Para las notaciones en la parte superior, usa \multicolumn. Las celdas abarcan una columna, tienen contenido centrado y no tienen bordes ( \multicolumn{1}{c}). Definimos una macro ( \mca) ya que las usamos varias veces.

  4. Para las notaciones de la izquierda, nuevamente usas \multicolumn. Las celdas abarcan una columna, tienen contenido centrado y el borde a la derecha ( \multicolumn{1}{c|}). Nuevamente definimos una macro ( \mcb) ya que las usamos varias veces.

  5. Se utiliza \clinepara abarcar una línea horizontal desde la columna 2 a la columna 4 en la primera tabla.

  6. La segunda tabla es más sencilla y tiene tres columnas. También reutilizamos la macro \mcapara este.

  7. Usted modifica \arraystretchpara ajustar las alturas de las filas (para obtener las celdas cuadradas según lo solicitado por usted).

Estoy bastante seguro de que sabes cómo poner estas tablas dentro.entornos flotantes.


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

La salida

ingrese la descripción de la imagen aquí

Solución usandoSu enlace proporcionado

Si insiste en utilizar la técnica del enlace proporcionado, aquí tiene una solución alternativa para la primera tabla. Esto utiliza la técnica de celda cuadrada del enlace.

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

ingrese la descripción de la imagen aquí

Respuesta2

Puede anidar los entornos tabulares. Todas las celdas miden 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}

ingrese la descripción de la imagen aquí

información relacionada