如何将“Text”字样的垂直位置调整至居中?

如何将“Text”字样的垂直位置调整至居中?
\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}

答案1

只是桌子上的一些注释:

  1. 无需到处重复\small,只需small在开头添加即可。此外,\small它是一个开关而非命令,它没有{}

  2. 第 2 列到第 4 列主要是数字数据,因此最好通过添加>{$}c<{$}其列规范来放入数学模式。

  3. 相同的列标题Qgc [MVar]重复三次,因此就\multicolumn{3}{c}{Qgc [MVar]}足够了。

  4. 删除所有垂直规则并使用booktabs可以进一步提高可读性。

  5. 最好让 LaTeX 决定放置表格的最佳位置,而不是强制使用此处[h]说明符。不过,在最终修订时,您可以在文本中上下移动表格代码部分以更改表格出现的位置。

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

在此处输入图片描述

答案2

前面的一个评论:你没有\small正确使用指令:它确实不是接受一个参数。因此,在表格单元格内,\small{Qgc}与 的作用相同\small Qgc。最好减少代码混乱,对吧?

其次,由于环境中每个单元格的内容tabular都应该以 呈现\small,因此最好简单地发出\small指令启动tabular环境(并\small从各个单元中删除指令)。

第三,如果要缩小tabular环境内容,那么从排版角度来说,缩小相关内容也是个好主意\caption。实现此目的的一种简单方法是加载包并在语句之前立即caption发出适当的指令。\captionsetup\caption

还请记住在数学模式下排版负数以生成印刷上适当的-(数学模式“减号”)符号,而不是简单的破折号。

最后(在我看来,也可能是最不重要的),使用一个\multirow语句(由包提供multirow)将标签“文本”垂直居中。

在此处输入图片描述

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

答案3

一种没有多行也没有多列但有列的解决方案m

第二个表处理其他列必须是另一种类型的情况(在这种情况下使用十进制对齐,请注意包S的列中的“-100”中的正确符号siunitx)使用\parbox以允许在标题中换行。

还要注意,在这种情况下,列宽可能是由于宽度\parbox,或者是由于小数点前/后数字保留的空间(示例的情况)。

姆韦

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

答案4

移动Text到 的位置\raisebox,或使用\makecell的默认位置(垂直/水平c插入):

在此处输入图片描述

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

相关内容