Como ajustar a posição vertical da palavra “Texto” ao centro?

Como ajustar a posição vertical da palavra “Texto” ao centro?
\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:

  1. Em vez de repetir \smallem todos os lugares, basta adicionar smallno início. Além disso, \smallum switch não é um comando, não possui {}.

  2. 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.

  3. O mesmo cabeçalho de coluna Qgc [MVar]é repetido três vezes, então apenas \multicolumn{3}{c}{Qgc [MVar]}será suficiente.

  4. Remover todas as regras verticais e usá-las booktabspode melhorar ainda mais a legibilidade.

  5. É 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}

insira a descrição da imagem aqui

Responder2

Um comentário inicial: você não está usando a \smalldiretiva 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 tabularambiente deve ser renderizado \small, é preferível simplesmente emitir uma \smalldiretivaantesiniciando o tabularambiente (e removendo as \smalldiretivas das células individuais).

Terceiro, se você pretende tabulardiminuir o conteúdo do ambiente, é uma boa ideia, tipograficamente falando, diminuir \captiontambém o material associado. Uma maneira fácil de conseguir isso é carregar o captionpacote e emitir uma \captionsetupdiretiva adequada imediatamente antes da \captiondeclaraçã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 \multirowinstrução (fornecida pelo multirowpacote) para centralizar o rótulo “Texto” verticalmente.

insira a descrição da imagem aqui

\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 mcolunas.

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 Scolunas do siunitxpacote) utilizando um \parboxpara permitir quebras de linha nos cabeçalhos.

Observe também que neste caso a largura da coluna pode ser devida à \parboxlargura, ou ao espaço reservado para dígitos antes/depois da vírgula decimal (caso do exemplo).

eu

\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 Textpara a posição com \raiseboxou use \makecello posicionamento padrão de ( centre vertical/horizontal):

insira a descrição da imagem aqui

\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}

informação relacionada