
\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
只是你桌上的一些註解:
不要到處重複
\small
,只需small
在開頭添加即可。另外,\small
它是一個開關而不是命令,它沒有{}
.第 2 列到第 4 列主要是數字數據,因此最好透過新增
>{$}c<{$}
作為列規格將其置於數學模式中。相同的列標題
Qgc [MVar]
重複三次,因此就\multicolumn{3}{c}{Qgc [MVar]}
足夠了。刪除所有垂直規則並使用
booktabs
可以進一步提高可讀性。最好讓 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
),使用 a\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}