洗練された正方形のセルのテーブル

洗練された正方形のセルのテーブル

下の図のような表を描くことは可能ですか。表には正方形のセルと境界に沿った表記が必要です。

Easytable パッケージの TAB 環境を使用して正方形のセルのテーブルを作成できることはわかっていますが、上部の境界線の上に表記を配置する方法がわかりません。図 2 の複数列コマンドを使用したいのですが、TAB 環境では機能しません。または、同じことを実現する別の簡単な方法があるのでしょうか?

このリンクで提案されているように、EasytableパッケージのTABの代替品があります。http://www.tug.org/pracjourn/2005-2/robertson/しかし、表記を挿入できず、コマンド multicolumn が機能しません。XeLaTeX を使用しています。

正方形のセルと、垂直および水平の境界線に沿った注釈がある表。

答え1

ソリューションのアイデア

ここで提供されるソリューションには、パッケージなどは一切使用されていません。パッケージの使用を開始する前に、このようなソリューションを試すことを強くお勧めします。何をしているのかを理解しておく必要があります。

(正方形セル技術を使用したソリューションについては、この投稿の最後を参照してください。提供されたリンク

  1. 最初の表には実際には 4 つの列があり、そのうち 1 つの列の右側には罫線があり、残りの 3 つの列には罫線があります。

  2. 境界線に沿った表記は、実際には表の一部です。ここでは特別なタイプのセルが使用されています。次の 2 つの列挙を参照してください。

  3. 上部の表記には を使用します\multicolumn。セルは 1 列にまたがり、中央揃えで内容が表示され、境界線はありません ( )。何度も使用するため、\multicolumn{1}{c}マクロ ( ) を定義します。\mca

  4. 左側の表記には、 を使用します\multicolumn。セルは 1 列にまたがり、中央揃えの内容を持ち、右側に境界線があります ( )。何度も使用するため \multicolumn{1}{c|}、ここでもマクロ ( ) を定義します。\mcb

  5. \cline最初の表の列 2 から列 4 まで水平線を引くために使用します。

  6. \mca2 番目のテーブルは、3 つの列を持つよりシンプルなテーブルです。このテーブルでもマクロを再利用します。

  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

表形式の環境をネストすることができます。すべてのセルは 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}

ここに画像の説明を入力してください

関連情報