
\begin{table}[h]
\centering
\caption{My Caption}
\label{my-label}\smallskip
\begin{tabular}{c|c c c}
\small{Text} & \small{Qgc} & \small{Qgc} & \small{Qgc} \\ & \small{{[}MVar{]}} & \small{{[}MVar{]}} & \small{{[}MVar{]}} \\ \hline
\small{A} & \small{-100} & \small{100.00} & \small{100} \\
\small{B} & \small{-100} & \small{100} & \small{100} \\
\small{C} & \small{-100} & \small{100} & \small{100} \\
\end{tabular}
\end{table}
Responder1
Apenas algumas notas sobre sua mesa:
Em vez de repetir
\small
em todos os lugares, basta adicionarsmall
no início. Além disso,\small
um switch não é um comando, não possui{}
.As colunas 2 a 4 são principalmente dados numéricos, por isso é melhor colocá-los no modo matemático adicionando
>{$}c<{$}
como especificação de coluna.O mesmo cabeçalho de coluna
Qgc [MVar]
é repetido três vezes, então apenas\multicolumn{3}{c}{Qgc [MVar]}
será suficiente.Remover todas as regras verticais e usá-las
booktabs
pode melhorar ainda mais a legibilidade.É melhor deixar o LaTeX decidir o melhor lugar para colocar sua mesa em vez de forçar esse
[h]
especificador aqui. Porém, em uma revisão final, você pode mover a parte do código da tabela para cima ou para baixo no texto para alterar a posição onde a tabela aparece.
.
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{table}[htbp]
\small\centering
\caption{My Caption}
\label{my-label}
\begin{tabular}{@{}c *3{>{$}c<{$}}@{}}
\toprule
Text & \multicolumn{3}{c}{Qgc [MVar]} \\ \cmidrule(r){1-1} \cmidrule(l){2-4}
A & -100 & 100.00 & 100 \\
B & -100 & 100 & 100 \\
C & -100 & 100 & 100 \\ \bottomrule
\end{tabular}
\end{table}
\end{document}
Responder2
Um comentário inicial: você não está usando a \small
diretiva corretamente: ela usanãotome um argumento. Portanto, dentro de uma célula da tabela, \small{Qgc}
faz o mesmo que \small Qgc
. Melhor reduzir a confusão de códigos, certo?
Segundo, como o conteúdo de cada célula do tabular
ambiente deve ser renderizado \small
, é preferível simplesmente emitir uma \small
diretivaantesiniciando o tabular
ambiente (e removendo as \small
diretivas das células individuais).
Terceiro, se você pretende tabular
diminuir o conteúdo do ambiente, é uma boa ideia, tipograficamente falando, diminuir \caption
também o material associado. Uma maneira fácil de conseguir isso é carregar o caption
pacote e emitir uma \captionsetup
diretiva adequada imediatamente antes da \caption
declaração.
Lembre-se também de digitar números negativos no modo matemático para gerar -
sinais tipograficamente apropriados (modo matemático "menos"), em vez de simples traços.
Por último (e possivelmente menos importante, na minha opinião), use uma \multirow
instrução (fornecida pelo multirow
pacote) para centralizar o rótulo “Texto” verticalmente.
\documentclass{article}
\usepackage{multirow}
\usepackage[skip=0.333\baselineskip]{caption}
\begin{document}
\begin{table}[h]
\centering
\caption{Original version}
\label{version:one}
\begin{tabular}{c|c c c}
\small{Text} & \small{Qgc} & \small{Qgc} & \small{Qgc} \\
& \small{{[}MVar{]}} & \small{{[}MVar{]}} & \small{{[}MVar{]}} \\
\hline
\small{A} & \small{-100} & \small{100.00} & \small{100} \\
\small{B} & \small{-100} & \small{100} & \small{100} \\
\small{C} & \small{-100} & \small{100} & \small{100} \\
\end{tabular}
\bigskip
\captionsetup{font=small}
\caption{Modified Version}
\label{version:two}
\small
\begin{tabular}{c|c c c}
\multirow{2}{*}{Text} & Qgc & Qgc & Qgc \\
& [MVar] & [MVar] & [MVar] \\
\hline
A & $-100$ & 100.00 & 100 \\
B & $-100$ & 100 & 100 \\
C & $-100$ & 100 & 100 \\
\end{tabular}
\end{table}
\end{document}
Responder3
Uma solução sem multilinhas nem multicolunas, mas com m
colunas.
A segunda tabela trata do caso que outras colunas devem ser de outro tipo (com alinhamento decimal neste caso, observe o sinal correto em "-100" com as S
colunas do siunitx
pacote) utilizando um \parbox
para permitir quebras de linha nos cabeçalhos.
Observe também que neste caso a largura da coluna pode ser devida à \parbox
largura, ou ao espaço reservado para dígitos antes/depois da vírgula decimal (caso do exemplo).
\documentclass{article}
\usepackage{array,siunitx,booktabs}
\newcolumntype{T}{>{\centering\arraybackslash}m{3em}}
\newcolumntype{U}{S[table-format=4.2]}
\setlength{\belowcaptionskip}{1em}
\begin{document}
\begin{table}
\centering
\caption{My Caption}
\label{my-label}
\small
\begin{tabular}{TTTT}\toprule
Text & Qgc [MVar] & Qgc [MVar] & Qgc [MVar] \\\midrule
A & -100 & 100.00 & 100\\
B & -100 & 100 & 100\\
C & -100 & 100 & 100\\\bottomrule
\end{tabular}
\caption{My Caption}
\begin{tabular}{TUUU}\toprule
Text &
\parbox{3em}{\centering Qgc [MVar]} &
\parbox{3em}{\centering Qgc [MVar]} &
\parbox{3em}{\centering Qgc [MVar]}\\\midrule
A & -100 & 100.00 & 100\\
B & -100 & 10 & 100\\
C & -100 & 1.0 & 100\\\bottomrule
\end{tabular}
\end{table}
\end{document}
Responder4
Mova-se Text
para a posição com \raisebox
ou use \makecell
o posicionamento padrão de ( c
entre vertical/horizontal):
\documentclass{article}
\usepackage{booktabs,makecell}
\begin{document}
\begin{table}
\centering
\begin{tabular}{c c c c}
\toprule
\raisebox{-.5\normalbaselineskip}[0pt][0pt]{Text}
& Qgc & Qgc & Qgc \\
& [MVar] & [MVar] & [MVar] \\
\midrule
A & $-100$ & 100.00 & 100 \\
B & $-100$ & 100 & 100 \\
C & $-100$ & 100 & 100 \\
\bottomrule
\end{tabular}
\bigskip
\begin{tabular}{c c c c}
\toprule
Text & \makecell{Qgc \\{}[MVar]} & \makecell{Qgc \\{}[MVar]} & \makecell{Qgc \\{}[MVar]} \\
\midrule
A & $-100$ & 100.00 & 100 \\
B & $-100$ & 100 & 100 \\
C & $-100$ & 100 & 100 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}