這張桌子帶給我的只是問題。現在,看起來還不錯:
但很明顯垂直間距不太好。 「區域」太高(我嘗試使用[fixup]
multirow: 參數來解決這個問題[-0.5em]
)。我曾經\parbox
正確地進行換行和中間列的居中。為了適合我的頁面寬度,這些欄位需要換行三行。
當我運行時,這兩列出現兩個錯誤:
Overfull \vbox (5.89192pt too high) detected
Overfull \vbox (6.57993pt too high) detected
就像我說的,它看起來不錯,但我想了解發生了什麼(即使我可以更改表內容來解決問題,但這不會告訴我為什麼這是一個問題)。也許我是一個貪圖懲罰的人,但在研究了幾個小時的論文後,我喜歡透過調試\LaTeX
錯誤/警告來休息一下。
我在這裡閱讀了幾個問題/答案並嘗試插入看不見的規則(摘自評論),\smash
(打破了換行),\vphantom
(使文字消失),[1em]
在不同大小的不同位置添加,以及其他幾種方法。
微量元素:
\documentclass{article} % The class file specifying the document structure
\usepackage{palatino} % Use the Palatino font by default
\usepackage{siunitx}
\usepackage{geometry}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{array}
\usepackage[referable]{threeparttablex}
\usepackage{multirow}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\geometry{
paper=letterpaper, % Change to letterpaper for US letter
inner=2.5cm, % Inner margin
outer=3.8cm, % Outer margin
bindingoffset=.5cm, % Binding offset
top=1.5cm, % Top margin
bottom=1.5cm, % Bottom margin
}
\begin{document}
\begin{table}[!htb]
\sisetup{input-decimal-markers = .,group-separator={,}, group-four-digits = true}
\captionsetup{skip=0.5\baselineskip,size=footnotesize}
\footnotesize
\centering
\begin{threeparttable}
\begin{tabular}{L{2.8cm}*4{S[table-format=2.1]}}
\toprule
\multicolumn{1}{c}{\multirow{2}{*}[-0.5em]{\parbox[c]{2.7cm}{\centering \textbf{Region}}}} &
\multicolumn{1}{c}{\multirow{2}{*}{\parbox[c]{1.8cm}{\centering \textbf{Electric outages per month}\tnote{a}}}} &
\multicolumn{1}{c}{\multirow{2}{*}{\parbox[c]{2.0cm}{\centering \textbf{Typical outage duration (hours)}\tnote{a}}}} &
\multicolumn{2}{c}{\centering\textbf{Population with electricity access}\tnote{b}} \\ \cmidrule{4-5}
& ~ & ~ & \multicolumn{1}{c}{\parbox[c]{1.7cm}{\centering \textbf{~~Total [\si{\percent}]}}} & \multicolumn{1}{c}{\parbox[c]{1.7cm}{\centering\textbf{~~Rural [\si{\percent}]}}} \\ [0.2cm]
\midrule
South Asia & 25.4 & 3.1 & 78. & 69.3 \\%
Sub-Saharan Africa & 9.0 & 4.2 & 35.3 & 15.3 \\%
OECD countries & 0.4 & 0.4 & 99.9 & 99.7 \\%
\bottomrule
\end{tabular}
\begin{tablenotes}
\item[a] For commercial users only
\item[b] For residential users only
\end{tablenotes}
\end{threeparttable}
\caption[Grid statistics for selected regions]{Grid statistics for selected regions.}
\label{tab:grid}
\end{table}
\end{document}
請注意,螢幕截圖和 MWE 使用該類article
,但對於我的文檔,我使用的是自訂類別的稍微修改版本MastersDoctoralThesis
(但無論哪種方式,錯誤都是相同的):
\documentclass[11pt,oneside,english,singlespacing,
headsepline,chapterinoneline]
{MastersDoctoralThesis}
答案1
第一個參數\multirow
實際上並不是rows
單一單元格替換的數量,而是lines
被替換的數量或等效數量。取值即可4
完成工作。
我藉此機會使用該makecell
套件及其\multirowthead
命令來簡化您的程式碼,該命令允許在單元格中換行以及通用格式。另外,我建議將最左邊的列標題左對齊,但很容易更改它(所有makecell
命令的預設值都是垂直和水平居中)。
最後一點:palatino
已過時,並且不支援數學。我用newpx
基於 palatino 克隆的包替換了這個包TeX Gyre Pagella
。
\documentclass{article} % The class file specifying the document structure
\usepackage{newpxtext, newpxmath} %
\usepackage{siunitx}
\usepackage{geometry}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{array}
\usepackage[referable]{threeparttablex}
\usepackage{multirow, makecell}
\renewcommand\theadfont{\bfseries}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\geometry{
paper=letterpaper, % Change to letterpaper for US letter
inner=2.5cm, % Inner margin
outer=3.8cm, % Outer margin
bindingoffset=.5cm, % Binding offset
top=1.5cm, % Top margin
bottom=1.5cm, % Bottom margin
}
\begin{document}
\begin{table}[!htb]
\sisetup{input-decimal-markers = .,group-separator={,}, group-four-digits = true}
\captionsetup{skip=0.5\baselineskip,size=footnotesize}
\footnotesize
\centering
\begin{threeparttable}
\begin{tabular}{L{2.8cm}*4{S[table-format=2.1]}}
\toprule
\renewcommand\theadalign{lc}\multirowthead{3}{Region}&
{\multirowthead{4}[1.3ex]{Electric\\ outages\\ per month\tnote{a}}} &
{\multirowthead{4}[1.3ex]{Typical outage\\ duration\\ (hours)\tnote{a}}} &
\multicolumn{2}{c}{\centering\textbf{Population with electricity access}\tnote{b}} \\%
\addlinespace[0.5ex] \cmidrule(lr){4-5}
& ~ & ~ & {\quad\textbf{Total [\si{\percent}]}\quad} & {\textbf{Rural [\si{\percent}]}}\\%
\addlinespace[0.8ex]
\midrule
South Asia & 25.4 & 3.1 & 78. & 69.3 \\%
Sub-Saharan Africa & 9.0 & 4.2 & 35.3 & 15.3 \\%
OECD countries & 0.4 & 0.4 & 99.9 & 99.7 \\%
\bottomrule
\end{tabular}
\begin{tablenotes}
\item[a] For commercial users only
\item[b] For residential users only
\end{tablenotes}
\end{threeparttable}
\caption[Grid statistics for selected regions]{Grid statistics for selected regions.}
\label{tab:grid}
\end{table}
\end{document}