Responder1
Como acabei de mencionar por John Kormylo, usei \multicolumn{}{}{}
para legenda superior e ajustei a posição usando \raisebox{}{}
, e também usei \multirow[]{}{}{}
para legenda esquerda, usei ambiente de tabela para legenda inferior, usei \centering
e \hspace*{}
para centralizar e ajustar o tabular
ambiente. E o resultado é mostrado abaixo.
\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}
Responder2
Não especifique formatos de coluna no preâmbulo de \tabularx
. Em vez disso, você precisará usar algo parecido \multicolumn{1}{C|}{content}
que o ajudará a desenhar linhas verticais apenas em determinados locais. Você também precisa definir um novo tipo de coluna \newcolumntype{C}{ >{ \arraybackslash \Centering } X }
que equalize as larguras das colunas.
Aqui está o código-fonte completo:
\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}
Além disso, "input" não é uma legenda à direita, é apenas uma entrada que precisa ocupar duas linhas na primeira coluna (oculta).
Responder3
Você pode fazer isso, mas não acho que seja uma boa maneira de apresentar uma mesa.
\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}
Por que isso é ruim? Não está nada claro a que se referem “entrada” e “saída”.