
下の図のような表を描くことは可能ですか。表には正方形のセルと境界に沿った表記が必要です。
Easytable パッケージの TAB 環境を使用して正方形のセルのテーブルを作成できることはわかっていますが、上部の境界線の上に表記を配置する方法がわかりません。図 2 の複数列コマンドを使用したいのですが、TAB 環境では機能しません。または、同じことを実現する別の簡単な方法があるのでしょうか?
このリンクで提案されているように、EasytableパッケージのTABの代替品があります。http://www.tug.org/pracjourn/2005-2/robertson/しかし、表記を挿入できず、コマンド multicolumn が機能しません。XeLaTeX を使用しています。
答え1
ソリューションのアイデア
ここで提供されるソリューションには、パッケージなどは一切使用されていません。パッケージの使用を開始する前に、このようなソリューションを試すことを強くお勧めします。何をしているのかを理解しておく必要があります。
(正方形セル技術を使用したソリューションについては、この投稿の最後を参照してください。提供されたリンク。
最初の表には実際には 4 つの列があり、そのうち 1 つの列の右側には罫線があり、残りの 3 つの列には罫線があります。
境界線に沿った表記は、実際には表の一部です。ここでは特別なタイプのセルが使用されています。次の 2 つの列挙を参照してください。
上部の表記には を使用します
\multicolumn
。セルは 1 列にまたがり、中央揃えで内容が表示され、境界線はありません ( )。何度も使用するため、\multicolumn{1}{c}
マクロ ( ) を定義します。\mca
左側の表記には、 を使用します
\multicolumn
。セルは 1 列にまたがり、中央揃えの内容を持ち、右側に境界線があります ( )。何度も使用するため\multicolumn{1}{c|}
、ここでもマクロ ( ) を定義します。\mcb
\cline
最初の表の列 2 から列 4 まで水平線を引くために使用します。\mca
2 番目のテーブルは、3 つの列を持つよりシンプルなテーブルです。このテーブルでもマクロを再利用します。\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}