
\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}
Respuesta1
Sólo algunas notas sobre tu mesa:
En lugar de repetir
\small
en todas partes, simplemente agréguelosmall
al principio. Además,\small
es un interruptor, no un comando, no tiene{}
.Las columnas 2 a 4 son principalmente datos numéricos, por lo que es mejor ponerlas en modo matemático agregando
>{$}c<{$}
como especificación de columna.El mismo encabezado de columna
Qgc [MVar]
se repite tres veces, por lo que\multicolumn{3}{c}{Qgc [MVar]}
será suficiente.Eliminar todas las reglas verticales y usarlas
booktabs
puede mejorar aún más la legibilidad.Es mejor dejar que LaTeX decida el mejor lugar para colocar su mesa en lugar de forzar este
[h]
especificador aquí. Sin embargo, en una revisión final, puede mover la parte del código de la tabla hacia arriba o hacia abajo en el texto para cambiar la posición donde aparece la tabla.
.
\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}
Respuesta2
Un comentario desde el principio: no estás utilizando la \small
directiva correctamente: sínotomar un argumento. Por lo tanto, dentro de una celda de la tabla, \small{Qgc}
hace lo mismo que \small Qgc
. Es mejor reducir el desorden de códigos, ¿verdad?
En segundo lugar, dado que se supone que el contenido de cada celda del tabular
entorno se representa en \small
, es preferible simplemente emitir una \small
directiva.antesiniciar el tabular
entorno (y eliminar las \small
directivas de las células individuales).
En tercer lugar, si va a reducir el tamaño del contenido del tabular
entorno, es una buena idea, hablando tipográficamente, reducir \caption
también el material asociado. Una manera fácil de lograr esto es cargar el caption
paquete y emitir una \captionsetup
directiva adecuada inmediatamente antes de la \caption
declaración.
También recuerde escribir números negativos en el modo matemático para generar -
signos tipográficamente apropiados (modo matemático "menos"), en lugar de simples guiones.
Por último (y posiblemente lo menos, en mi opinión), utilice una \multirow
declaración (proporcionada por el multirow
paquete) para centrar la etiqueta "Texto" verticalmente.
\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}
Respuesta3
Una solución sin multifilas ni multicolumnas pero con m
columnas.
La segunda tabla trata el caso de que otras columnas deben ser de otro tipo (con alineación decimal en este caso, fíjate en el signo correcto en "-100" con las S
columnas del siunitx
paquete) usando a \parbox
para permitir saltos de línea en los encabezados.
Tenga en cuenta también que en este caso el ancho de la columna podría deberse al \parbox
ancho o al espacio reservado para los dígitos antes/después del punto decimal (caso del ejemplo).
\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}
Respuesta4
Muévase Text
a su posición con \raisebox
o use \makecell
la ubicación predeterminada de ( c
entre vertical/horizontal):
\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}