Como criar uma tabela com “legendas” esquerda e superior?

Como criar uma tabela com “legendas” esquerda e superior?

Gostaria de criar uma tabela como a seguinte (desculpe a foto desleixada):

insira a descrição da imagem aqui

Em particular, estou tendo dificuldade em posicionar as palavras “Entrada” e “Saída”, além da legenda padrão “Tabela 1” na parte inferior.

Qualquer dica será apreciada. Estou usando pacotes tabularx ou booktabs.

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 \centeringe \hspace*{}para centralizar e ajustar o tabularambiente. 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} 

insira a descrição da imagem aqui

Responder2

insira a descrição da imagem aqui

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}

insira a descrição da imagem aqui

Por que isso é ruim? Não está nada claro a que se referem “entrada” e “saída”.

informação relacionada