Esta mesa no me ha causado más que problemas. Ahora mismo se ve bien:
Pero está claro que el espaciado vertical no es tan bueno. "Región" es demasiado alta (que intenté solucionar con el [fixup]
parámetro de varias filas [-0.5em]
:). Solía \parbox
hacer saltos de línea y centrar correctamente las columnas del medio. Para ajustarse al ancho de mi página, estas columnas deben ajustarse en tres líneas.
Cuando ejecuto, aparece dos errores para estas dos columnas:
Overfull \vbox (5.89192pt too high) detected
Overfull \vbox (6.57993pt too high) detected
Como dije, se ve bien, pero me gustaría entender qué está pasando (incluso si pudiera cambiar el contenido de la tabla para solucionar el problema, eso no me dirápor quéfue un problema). Quizás soy un glotón de castigo, pero después de unas horas trabajando en mi tesis, disfruto tomando un descanso depurando \LaTeX
errores/advertencias.
He leído varias preguntas/respuestas aquí e intenté insertarreglas invisibles (de un comentario), \smash
(que rompió el ajuste de línea), \vphantom
(que hizo que el texto desapareciera), agregando [1em]
en varios lugares de diferentes tamaños y varios otros métodos.
MWE:
\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}
Tenga en cuenta que la captura de pantalla y MWE usan la article
clase, pero para mi documento estoy usando una versión ligeramente modificada de la clase personalizada MastersDoctoralThesis
(pero los errores son idénticos en ambos sentidos):
\documentclass[11pt,oneside,english,singlespacing,
headsepline,chapterinoneline]
{MastersDoctoralThesis}
Respuesta1
El primer argumento de \multirow
no es realmente el número de celdas rows
reemplazadas por una sola celda, sino el número de lines
(o su equivalente) que se reemplazan. Tomar un valor de 4
hace el trabajo.
Aproveché para simplificar su código usando el makecell
paquete y su \multirowthead
comando, que permite saltos de línea en las celdas y un formato común. Además, propongo tener el encabezado de la columna más a la izquierda alineado a la izquierda, pero es fácil cambiar eso (el valor predeterminado para todos makecell
los comandos está centrado tanto vertical como horizontalmente).
Último punto: palatino
está obsoleto y no admite matemáticas. Reemplacé este paquete con newpx
, basado en el clon 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}