Ich möchte eine Tabelle wie die folgende erstellen (verzeihen Sie das schlampige Foto):
Insbesondere habe ich Schwierigkeiten, die Wörter „Eingabe“ und „Ausgabe“ zusätzlich zur Standardüberschrift „Tabelle 1“ unten zu positionieren.
Jeder Tipp ist willkommen. Ich verwende die Pakete tabularx oder booktabs.
Antwort1
Wie gerade von John Kormylo erwähnt, habe ich \multicolumn{}{}{}
für die obere Überschrift verwendet und die Position mithilfe von angepasst \raisebox{}{}
, außerdem habe ich \multirow[]{}{}{}
für die linke Überschrift verwendet, die Tabellenumgebung für die untere Überschrift verwendet, \centering
und \hspace*{}
zum Zentrieren verwendet und die tabular
Umgebung angepasst. Das Ergebnis wird unten angezeigt.
\documentclass[12pt,twoside,a4paper]{book}
\usepackage[left=.45in,right=.45in,top=.6in,bottom=.6in,headheight=14.5pt]{geometry}
\usepackage{array,multirow}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\begin{table}
\centering
\hspace*{-2cm}\begin{tabular}{C{1.2cm}cC{0.5cm}|c|c|c}
\multicolumn{5}{r}{\raisebox{2ex}{Output}} \\
&& & \bfseries X & \bfseries Y & \\ \cline{2-6}
\multirow[]{2}{3cm}{Input} && \bfseries X & \bfseries A & \bfseries B & \\ \cline{3-6}
&& \bfseries Y & \bfseries C & \bfseries D & \\ \cline{2-6}
&& & & & \\
\end{tabular}
\caption{Blah Blah Blah}
\label{Table:1}
\end{table}
\end{document}
Antwort2
Geben Sie in der Präambel von keine Spaltenformate an \tabularx
. Stattdessen müssen Sie etwas wie verwenden \multicolumn{1}{C|}{content}
, das Ihnen hilft, vertikale Linien nur an bestimmten Stellen zu zeichnen. Sie müssen auch einen neuen Spaltentyp definieren, \newcolumntype{C}{ >{ \arraybackslash \Centering } X }
der die Spaltenbreiten angleicht.
Hier ist der vollständige Quellcode:
\documentclass{scrartcl}
\usepackage{float}
\usepackage{tabularx}
\newcolumntype{C}{ >{ \arraybackslash \Centering } X }
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{ragged2e}
\usepackage{makecell}
\begin{document}
\begin{table}[]
\caption{Caption}
\label{table:1}
% Center the table
\centering
% Stretch the table (vertically)
\renewcommand{\arraystretch}{1.3}
\begin{tabularx}{0.6\textwidth}{ >{\hsize=0.8\hsize}C C C C}
& & \multicolumn{2}{c}{Output}
\\
& & \multicolumn{1}{|C|}{X} & \multicolumn{1}{C}{Y}
\\
\Xcline{2-4}{0.2mm}
\multirow{2}{2cm}{\centering Input} & \multicolumn{1}{C|}{X} & \multicolumn{1}{C|}{A} & \multicolumn{1}{C}{B}
\\
\Xcline{2-4}{0.2mm}
& \multicolumn{1}{C|}{Y} & \multicolumn{1}{C|}{C} & \multicolumn{1}{C}{D}
\end{tabularx}
\end{table}
\end{document}
Nebenbei bemerkt ist „Eingabe“ keine Überschrift auf der rechten Seite, sondern nur ein Eintrag, der zwei Zeilen in der ersten (versteckten) Spalte einnehmen muss.
Antwort3
Das können Sie tun, aber ich glaube nicht, dass dies eine gute Möglichkeit ist, eine Tabelle darzustellen.
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{table}[htp]
\centering
\setlength{\tabcolsep}{2\tabcolsep}% double the default
\begin{tabular}{@{}lc|c|c|}
& \multicolumn{1}{c}{} & \multicolumn{2}{c}{Output} \\
& & X & Y \\
\cline{2-4}
\multirow{2}{*}{Input}
& X & A & B \\
\cline{2-4}
& Y & C & D \\
\cline{2-4}
\end{tabular}
\caption{Blah blah blah}
\end{table}
\end{document}
Warum ist es schlecht? Es ist überhaupt nicht klar, worauf sich „Input“ und „Output“ beziehen.