
Ist es möglich, Tabellen wie in den Abbildungen unten zu zeichnen? Tabellen sollten quadratische Zellen und Markierungen entlang der Ränder haben.
Ich weiß, dass ich die TAB-Umgebung des Easytable-Pakets verwenden könnte, um Tabellen mit quadratischen Zellen zu erstellen, aber ich weiß nicht, wie ich Notationen über den oberen Rand setzen kann. Ich würde gerne den Befehl für mehrere Spalten für Abbildung 2 verwenden, aber er funktioniert nicht in der TAB-Umgebung. Oder gibt es vielleicht einen anderen einfachen Ansatz, um dasselbe zu erreichen?
Es gibt eine Alternative zu TAB aus dem Easytable-Paket, wie unter diesem Link vorgeschlagen.http://www.tug.org/pracjourn/2005-2/robertson/, aber ich kann keine Notationen einfügen und der Befehl multicolumn funktioniert nicht. Ich verwende XeLaTeX.
Antwort1
Lösungsideen
Die hier bereitgestellte Lösung ist ohne Paket oder ähnliches. Ich empfehle dringend, dass Sie sich für solche Lösungen entscheiden, bevor Sie ein Paket verwenden. Sie sollten wissen, was Sie tun.
(Am Ende dieses Beitrags finden Sie eine Lösung, die die quadratische Zelltechnik von verwendetIhr angegebener Link.)
Ihre erste Tabelle enthält tatsächlich vier Spalten, eine mit einer Linie auf der rechten Seite und drei mit Linien.
Die Notationen entlang der Ränder sind eigentlich Teil der Tabelle. Hier werden spezielle Zelltypen verwendet. Siehe die nächsten beiden Aufzählungen.
Für die Notationen oben verwenden Sie
\multicolumn
. Die Zellen erstrecken sich über eine Spalte, haben zentrierte Inhalte und sind ohne Rahmen (\multicolumn{1}{c}
). Wir definieren ein Makro (\mca
), da wir sie öfter verwenden.Für die Notationen auf der linken Seite verwenden Sie wieder
\multicolumn
. Die Zellen erstrecken sich über eine Spalte, haben zentrierte Inhalte und einen Rahmen auf der rechten Seite (\multicolumn{1}{c|}
). Auch hier definieren wir ein Makro (\mcb
), da wir sie mehrmals verwenden.Sie verwenden
\cline
diese Option, um in der ersten Tabelle eine horizontale Linie von Spalte 2 bis Spalte 4 zu spannen.Die zweite Tabelle ist eine einfachere mit drei Spalten.
\mca
Auch hier verwenden wir das Makro erneut.Sie nehmen Optimierungen vor
\arraystretch
, um die Zeilenhöhen anzupassen (um die quadratischen Zellen zu erhalten, wie von Ihnen gewünscht).
Ich bin ziemlich sicher, dass Sie wissen, wie man diese Tabellen einfügtFloat-Umgebungen.
Der Code
\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}
Die Ausgabe
Lösung mitIhr bereitgestellter Link
Wenn Sie unbedingt die Technik aus dem bereitgestellten Link verwenden möchten, finden Sie hier eine alternative Lösung für die erste Tabelle. Dabei wird die quadratische Zellentechnik aus dem Link verwendet.
\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}
Zweiter Ausgang
Antwort2
Sie können die tabellarischen Umgebungen verschachteln. Alle Zellen sind 2 cm x 2 cm groß:
\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}