\documentclass{article}
\usepackage{rotating}
\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
&
\begin{sideways}ABCD\end{sideways} &
\begin{sideways}EFGH\end{sideways} &
\begin{sideways}IJKL\end{sideways} \\ \hline
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
DD & 2 & 3 & 4 \\ \hline
\end{tabular}
\caption{Tmp}
\label{tab:tmp}
\end{table}
\end{document}
Como posso remover linhas como nas imagens abaixo?
Além disso, como posso levantar um pouco a primeira linha horizontal? O resultado final deverá ser:
Responder1
Receio que sejam necessárias quatro medidas diferentes:
- Remova a linha vertical com
\multicolumn{1}{c|}{}
. - Remova a linha horizontal (segmento) com
\cline{2-4}
. - Adicione um pouco de espaço à etiqueta mais longa na parte superior.
- Se você não quiser as linhas verticais "internas" para a maior parte da tabela, eu as adicionaria especificamente para o cabeçalho.
Resultado:
\begin{tabular}{|c|ccc|}
\cline{2-4}
\multicolumn{1}{c|}{}&
\multicolumn{1}{c|}{\begin{sideways}ABCD\hspace*{1mm}\end{sideways}} &
\multicolumn{1}{c|}{\begin{sideways}EFGH\end{sideways}} &
\begin{sideways}IJKL\end{sideways} \\ \hline
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
DD & 2 & 3 & 4 \\ \hline
\end{tabular}
Responder2
Aqui está uma solução usando tabularray
.
\documentclass{article}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{
colspec = {*{4}{c}},
vline{1} = {2-4}{0.9pt},
vline{2,5} = 0.9pt,
vline{3-4} = {1}{0.9pt},
hline{1} = {2-5}{0.9pt},
hline{2,5} = 0.9pt,
cell{1}{2-4} = {cmd={\rotatebox[origin=c]{90}}}
}
& ABCD
& EFGH
& IJKL \\
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
\end{tblr}
\end{document}
Responder3
Você poderia usar \multicolumn
e \cline
para obter a saída desejada:
\documentclass{article}
\usepackage{rotating}
\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{|c|ccc|}
\cline{2-4}
\multicolumn{1}{c}{}&
\multicolumn{1}{|c|}{\begin{sideways}ABCD\end{sideways}} &
\multicolumn{1}{c|}{\begin{sideways}EFGH\end{sideways}} &
\multicolumn{1}{c|}{\begin{sideways}IJKL\end{sideways}} \\ \hline
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
DD & 2 & 3 & 4 \\ \hline
\end{tabular}
\caption{Tmp}
\label{tab:tmp}
\end{table}
\end{document}
Na minha opinião, você também pode omitir completamente as linhas verticais do cabeçalho, e também a borda superior, esquerda e direita, dando
\begin{tabular}{c|ccc}
\multicolumn{1}{c}{}&
\multicolumn{1}{|c}{\begin{sideways}ABCD\end{sideways}} &
\multicolumn{1}{c}{\begin{sideways}EFGH\end{sideways}} &
\multicolumn{1}{c}{\begin{sideways}IJKL\end{sideways}} \\ \hline
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
DD & 2 & 3 & 4 \\ \hline
\end{tabular}
Responder4
Com {NiceTabular}
de nicematrix
. Nesse ambiente, você tem uma chave hvlines
que desenha todas as regras exceto nos blocos (especificados por \Block
e nos cantos vazios (especificados pela chave corners
).
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{cccc}[hvlines,corners=NW] % NW = north-west
\RowStyle{\rotate}
& ABCD \;
& EFGH
& IJKL \\
\Block{3-1}{}
AA & \Block{3-3}{}
2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
\end{NiceTabular}
\end{document}