Изысканная таблица с квадратными ячейками

Изысканная таблица с квадратными ячейками

Можно ли нарисовать таблицы как на рисунках ниже. Таблицы должны иметь квадратные ячейки и обозначения по краям.

Я знаю, что я мог бы использовать среду TAB из пакета Easytable для создания таблиц с квадратными ячейками, но я не знаю, как разместить обозначения поверх верхней границы. Я хотел бы использовать команду multicolumn для рисунка 2, но она не работает в среде TAB. Или, может быть, есть другой простой подход, чтобы добиться того же?

Существует альтернатива TAB из пакета Easytable, как предлагается по этой ссылкеhttp://www.tug.org/pracjourn/2005-2/robertson/, но я не могу вставить никаких обозначений и команда multicolumn не работает. Я использую 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

Вы можете вкладывать табличные среды. Все ячейки имеют размер 2 см x 2 см:

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

введите описание изображения здесь

Связанный контент