
Quiero crear una tabla similar a la de la imagen. No sé cómo personalizar el grosor del borde de la tabla y la combinación de colores como en la imagen para lograr el resultado deseado.
Código:
¿Cuántas filas debo abarcar 4 o 5? Para "Edad", le he dado {5}
como parámetro \multirow
. ¿Es correcto?
\newcolumntype{y}{>{\bfseries\arraybackslash}m{4cm}}
\newcolumntype{L}{>{\centering\arraybackslash}m{3.5cm}}
\begin {table}
\caption{Demographic Profiles of Participants}
\begin{center}
\begin{tabular}{ |y | L | L | L | >{$} Sr <{$}}
\hline
Socio Demographic Factors & \textbf{Ranges} & \textbf{Frequency} & \textbf{Responses (\%)} \\ \hline
\multirow{5}{3em}{\textbf{AGE}} & 18-25 YEARS & 84 & 57 \\
& 26-35 YEARS & 32 & 22 \\
& 36-45 YEARS & 11 & 7 \\
& 46-55YEARS & 14 & 9 \\
& 56-ABOVE & 7 & 5 \\ \hline
\multirow{1}{7em}{GENDER} & MALE & 87 & 59\\
& FEMALE & 61 & 41 \\ \hline
\multirow{5}{7em}{COMPUTER PROFICIENCY LEVEL} & LESS THAN 1 YEAR & 5 & 3 \\
& 1 TO 3 YEARS & 37 & 25 \\
& 4 TO 6 YEARS & 43 & 29 \\
& 7 TO 9YEARS & 25 & 17 \\
& MORE THAN 9 YEARS & 42 &28 \\ \hline
\multirow{4}{7em}{EDUCATION} &UNDER GRADUATE STUDENT (HONS) & 5 & 3 \\
& GRADUATE STUDENT (HONS) & 67 & 45 \\
& POST GRADUATE STUDENT & 37 & 25 \\
& DOCTORATE STUDENTS & 18 & 12 \\ \hline
\multirow{2}{3em}{COMPUTER EXPERIENCE} & YES & 101 & 68 \\
& NO & 47 & 32 \\ \hline
\multirow{2}{7em}{MAJOR DISCIPLINE} & IT STUDENTS & 42 & 48 \\
& NON-IT STUDENTS & 59 & 42 \\ \hline
\end{tabular}
\end{center}
\end{table}
Respuesta1
El paquete multirow
espera que declare el número de líneas (no filas) que siguen a la celda de varias filas. En su caso: para EDAD: 5, para GÉNERO: 2, para COMPUTADORA... 5, para Educación: 7, etc. Generalmente, esto significa que debe contar las líneas después de generar la tabla y corregir el número de líneas divididas. Por ejemplo como lo hago aquí:
\documentclass{article}
\usepackage{array,multirow}
\begin{document}
\newcolumntype{y}{>{\bfseries\arraybackslash}m{4cm}}
\begin {table}
\caption{Demographic Profiles of Participants}
\centering
\begin{tabular}{ |y|>{\raggedright}p{4cm}|c|c<{\%}|}
\hline
\centering
Socio Demographic Factors
& \multicolumn{1}{c|}{\textbf{Ranges}}
& \textbf{Frequency}
& \textbf{Responses (\%)} \\ \hline
\multirow{5}{4cm}{\textbf{AGE}}
& 18-25 YEARS & 84 & 57 \\
& 26-35 YEARS & 32 & 22 \\
& 36-45 YEARS & 11 & 7 \\
& 46-55YEARS & 14 & 9 \\
& 56-ABOVE & 7 & 5 \\ \hline
\multirow{1}{4cm}[-1.5ex]{GENDER}
& MALE & 87 & 59 \\
& FEMALE & 61 & 41 \\ \hline
\multirow{5}{4cm}{COMPUTER PROFICIENCY LEVEL}
& LESS THAN 1 YEAR & 5 & 3 \\
& 1 TO 3 YEARS & 37 & 25 \\
& 4 TO 6 YEARS & 43 & 29 \\
& 7 TO 9YEARS & 25 & 17 \\
& MORE THAN 9 YEARS & 42 & 28 \\ \hline
\multirow{7}{4cm}{EDUCATION}
&UNDER GRADUATE STUDENT (HONS)
& 5 & 3 \\
& GRADUATE STUDENT (HONS)
& 67 & 45 \\
& POST GRADUATE STUDENT & 37 & 25 \\
& DOCTORATE STUDENTS & 18 & 12 \\ \hline
\multirow{2}{4cm}{COMPUTER EXPERIENCE}
& YES & 101 & 68 \\
& NO & 47 & 32 \\ \hline
\multirow{2}{4cm}{MAJOR DISCIPLINE}
& IT STUDENTS & 42 & 48 \\
& NON-IT STUDENTS & 59 & 42 \\ \hline
\end{tabular}
\end{table}
\end{document}
La tarea es más sencilla si todas las filas posteriores multirow cell
tienen una sola línea. EN este caso, para la segunda columna debería utilizar l
en lugar p
del tipo de columna. Para otras posibilidades siga el enlace proporcionado por Johannes_B.
También simplifiqué un poco la construcción de la mesa.
Respuesta2
Para las reglas de color de las tablas, algunas como esta en el preámbulo:
\usepackage{colortbl} \arrayrulecolor{blue!70}
Para personalizar el grosor de las reglas y el relleno vertical, puede usar el paquete
booktabs
y el comando\specialrule{}{}{}
con tres argumentos: grosor, espacio arriba y espacio abajo.Sí, cinco es correcto. Tienes 5 niveles (filas) para el factor "edad" y el primer argumento
\multirow
debe ser el número de estas filas.En cuanto al acolchado, el enlace de Werner es más que suficiente. Yo enfatizaría aquí los paquetes
tabularx
ytabulary
.
Esto solucionado, bueno… sobre gustos no hay contabilidad, pero tu mesa para mí es el ejemplo de lo que no se debe hacer (me temo que para otras personas también). Por ello, algunas sugerencias:
Evita las líneas verticales (número ideal: 0. ¿Cuándo? siempre)
Evite la mayoría de las líneas horizontales (número ideal: 3) una
\toprule
, una\bottomrule
y una\midrule
es suficiente para tablas simples. Las tablas complejas podrían tener más \midrules o \cmidrules, pero menos (líneas) es más (claro) en la mayoría de los casos.Evite marcar las reglas en el medio de la mesa, con una
\midrule
es suficiente.Evite mayúsculas o versalitas en las celdas normales (bueno, también en las celdas de encabezado...). Deje mayúsculas solo para un énfasis muy fuerte (TÍTULO), siglas, etc.
Haga la tabla lo más simple y clara posible. Por ejemplo: si todas las celdas de la columna tienen la misma unidad de medida, esto se puede mostrar en el encabezado de la columna y no eclipsar los números de las celdas. "< 9 años" es tan informativo como "MÁS DE 9 AÑOS", pero ocupa menos espacio. Úselo
--
en lugar de uno único-
para rangos. "Factores sociodemográficos" es demasiado largo para una sola fila, y varias filas son feas, pero puedes omitir este encabezado con un título más informativo.
Los resultados teniendo en cuenta estas reglas podrían ser algunos como estos:
\documentclass{article}
\usepackage{array,multirow,booktabs,mathtools,tabulary,xcolor}
%\usepackage[table]{xcolor}
\usepackage{colortbl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\let\belowcaptionskip\abovecaptionskip
\let\oldmidrule\midrule
\arrayrulecolor{blue!70}
\begin{document}
\begin {table}
\caption{Demographic profiles of participants according to the socio demographic factors.}
\centering
\begin{tabulary}{\textwidth}{>{\bfseries}LlRR}
\toprule & \textbf{Ranges} & \mbox{\textbf{Frequency}} & \mbox{\textbf{Responses (\%)}}\\
\midrule \multirow{5}{.2\textwidth}{Age} & 18-25 years & 84 & 57 \\
& 26--35 years & 32 & 22 \\
& 36--45 years & 11 & 7 \\
& 46--55 years & 14 & 9 \\
& < 56 years & 7 & 5 \\
\midrule \multirow{2}{.2\textwidth}{Gender} & Male & 87 & 59\\
& Female & 61 & 41 \\
\midrule \multirow{5}{.2\textwidth}{Computer\newline proficiency\newline level} & < 1 year & 5 & 3 \\
& 1 to 3 years & 37 & 25 \\
& 4 to 6 years & 43 & 29 \\
& 7 to 9years & 25 & 17 \\
& $>$ 9 years & 42 &28 \\
\midrule \multirow{4}{.2\textwidth}{Education} & Under graduate (hons) & 5 & 3 \\
& Graduate (hons) & 67 & 45 \\
& Post graduate & 37 & 25 \\
& Doctorate & 18 & 12 \\
\midrule \multirow{2}{.2\textwidth}{Computer experience} & Yes & 101 & 68 \\
& No & 47 & 32 \\
\midrule \multirow{2}{.2\textwidth}{Major discipline} & IT students & 42 & 48 \\
& Non-IT students & 59 & 42 \\
\bottomrule
\end{tabulary}
\end{table}
\end{document}