Soy un usuario relativamente nuevo de Latex, y esta es la primera vez que intento construir una tabla para mi tesis. quisiera que la tabla se vea así:
Después de investigar un poco en Internet, se me ocurrió el siguiente código (ignore las diferencias en los encabezados de columna entre el código de Latex y el documento de Word)
\begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{lrrrr} \toprule \multicolumn{2}{c}{{BCom} & \multicolumn{2}{c}{B.Bus.Sci} \\ \cmidrule{2-3} \cmidrule{4-5} & Number of courses required to pass & Cumulative Total of Courses && Number of courses & Cumulative Total of Courses \midrule First year & 4 & 8 & 4 & 18 \\ \bottomrule \end{tabular} \label{table:mr} \end{table}
¡no funciona en absoluto!
Comentarios
Respuesta
Una versión mejor:
\documentclass{article} \usepackage{booktabs} \usepackage[margin=1in]{geometry} \usepackage{array} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} \begin{document} \begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{@{}p{0.12\textwidth}*{4}{L{\dimexpr0.22\textwidth-2\tabcolsep\relax}}@{}} \toprule & \multicolumn{2}{c}{BCom} & \multicolumn{2}{c}{B.Bus.Sci} \\ \cmidrule(r{4pt}){2-3} \cmidrule(l){4-5} & Number of courses required to pass & Cumulative Total of Courses & Number of courses & Cumulative Total of Courses\\ \midrule First year & 4 & 8 & 4 & 18 \\ \bottomrule \end{tabular} \label{table:mr} \end{table} \end{document}
¿Por qué su código no se compiló?
-
Te perdiste un
&
al comienzo de\multicolumn{2}{c}{{BCom} & \multicolumn{2}{c}{B.Bus.Sci} \\
haciendo la primera entrada para ir a la primera columna.
-
Tiene un
&&
en la líneaNumber of courses required to pass & Cumulative Total of Courses && Number of courses & Cumulative Total of Courses
Debe ser
&
y debes poner un&
al comienzo de la línea. Y al final de esta línea se perdió\\
justo antes de\cmidrule
.
Ahora las modificaciones
Después de corregir todo lo anterior, he introducido un nuevo tipo de columna con el ayuda del paquete array
:
\usepackage{array} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\raggedright
se agrega para evitar efectos de justificación desagradables, ya que las columnas pueden ser estrechas y las palabras pueden variar en longitud. Esto también se ocupa de las cajas defectuosas.
He usado esta L
columna con un ancho
\dimexpr0.22\textwidth-2\tabcolsep\relax
hasta
*{4}{L{\dimexpr0.22\textwidth-2\tabcolsep\relax}}
en lugar de repetir.
Como nota al margen, el \cmidrule
puede acortarse de l
eft o r
ight por
\cmidrule(r{4pt}){2-3}
Aquí {4pt}
es la cantidad que reducimos. Se puede dejar como \cmidrule(r){4-5}
.
Comentarios
- Muchas gracias. Funciona perfectamente y gracias por la explicación detallada. Solo otra pregunta rápida – la alineación del encabezado de la tabla parece un poco tonta – mi imagen . ¿Cuáles son las opciones para que se vea más agradable estéticamente? ¿Sería posible que el encabezado quepa en una línea?
- @Chris lo edité. Los cambios están en el margen y el ancho de las columnas. Esto es lo mejor posible con encabezados tan largos. : 0
- @Chris Como nota al margen, decir gracias aquí se comunica mejor votando a favor (todas las buenas respuestas) y aceptando (la respuesta más útil). Es posible que desee consultar ¿Cómo acepta una respuesta? en caso de dudas 🙂
- hola @Harish Kumar, he votado a favor tu respuesta y otra :). Solo otra pregunta rápida: ¿cómo lleno una celda vacía en una tabla con un » – «. Intenté » \ – » pero la celda permanece en blanco.
- @Chris Gracias. :). Debe poner solo
-
, (no \) o mejor$-$
o incluso mejor---
. Espero que te ayude.
Responder
Además de usar el booktabs
(para obtener líneas horizontales atractivas, es decir, bien espaciadas), también le recomendaría que utilice el paquete tabularx
para simplificar el trabajo de obtener cuatro columnas.
\documentclass{article} \usepackage{booktabs,tabularx} \usepackage[margin=1in]{geometry} % set margins to meet your document"s needs \newcolumntype{Y}{>{\raggedright\arraybackslash}X} % use ragged-right, not fully-justified, look in narrow columns \begin{document} \begin{table}[t] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \label{table:mr} %\centering % not needed, since table is as wide as text block \begin{tabularx}{\textwidth}{@{}lYYYY@{}} \toprule &\multicolumn{2}{c}{\bfseries BCom} &\multicolumn{2}{c}{\bfseries B.Bus Sci} \\ \cmidrule(lr){2-3} \cmidrule(l){4-5} &Number of courses required to pass &Cumulative Total of Courses & Number of courses & Cumulative Total of Courses\\ \midrule First year & 4 & 8 & 4 & 18 \\ \bottomrule \end{tabularx} \end{table} \end{document}
Anexo : Por cierto, el aspecto de la tabla que muestra en su publicación no puede lograrse cuando se usan los comandos del paquete booktabs
. Si realmente necesita todas esas líneas verticales y horizontales, no debería usar el comando \toprule
, \bottomrule
, \midrule
y \cmidrule
. En su lugar, utilice la instrucción básica-LaTeX \hline
. (Por supuesto, aún puede haga uso del paquete tabularx
para simplificar la creación de columnas de igual ancho para las columnas 2 a 5 de la tabla.)
Estas modificaciones conducirán a la tabla que se muestra a continuación.Espero que esté de acuerdo en que el «aspecto de las pestañas de libros» (sin líneas verticales, menos líneas horizontales en general y reglas bien espaciadas) es mucho mejor que lo que podríamos llamar el «aspecto de hoja de cálculo».
\documentclass{article} \usepackage{tabularx} \usepackage[margin=1in]{geometry} % choose margin as needed \newcolumntype{Y}{>{\raggedright\arraybackslash}X} \begin{document} \begin{table}[h!] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \label{table:mr} \begin{tabularx}{\textwidth}{|l|Y|Y|Y|Y|} \hline &\multicolumn{2}{c|}{\bfseries B. Com} &\multicolumn{2}{c|}{\bfseries B. Bus. Sci} \\ \hline & Number of courses required to pass & Cumulative Total of Courses & Number of courses required to pass & Cumulative Total of Courses \\ \hline First Year & 4 & 8 & 4 & 18 \\ \hline Second Year & 10 & 16 & 11 & 16 \\ \hline Third Year & 18 & 24 & 20 & 25 \\ \hline \end{tabularx} \end{table} \end{document}
Comentarios
- Hola, sí, estoy de acuerdo en que el aspecto de las pestañas es mucho mejor. La imagen que tenía en mi OP es de Word, y tenía prisa por publicar porque tenía que irme a algún lado. Las líneas verticales estaban ahí porque vienen de serie con la herramienta Word » table «.
Respuesta
Eche un vistazo a lo siguiente:
\documentclass{scrartcl} \usepackage{booktabs} \begin{document} \begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{p{0.2\textwidth}p{0.2\textwidth}p{0.2\textwidth}p{0.2\textwidth}p{0.2\textwidth}} \\ \toprule & \multicolumn{2}{c}{BCom} & \multicolumn{2}{c}{B. Bus Scii} \\ \midrule & Number of courses required to pass & Cumulative Total of Courses & Number of courses & Cumulative Total of Courses \\ \midrule First year & 4 & 8 & 4 & 8 \\ Second year & 10 & 16 & 11 & 16 \\ Third year & 18 & 24 & 20 & 25 \\ \bottomrule \end{tabular} \end{table} \begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{p{0.18\textwidth}p{0.18\textwidth}p{0.18\textwidth}p{0.18\textwidth}p{0.18\textwidth}} \\ \toprule & \multicolumn{2}{c}{BCom} & \multicolumn{2}{c}{B. Bus Scii} \\ \midrule & \multicolumn{1}{p{3.5cm}}{Number of courses required to pass} & Cumulative Total of Courses & \multicolumn{1}{p{2cm}}{Number of courses} & Cumulative Total of Courses \\ \midrule First year & 4 & 8 & 4 & 8 \\ Second year & 10 & 16 & 11 & 16 \\ Third year & 18 & 24 & 20 & 25 \\ \bottomrule \end{tabular} \end{table} \end{document}
Respuesta
Puede intentar
\documentclass{amsart} \usepackage{booktabs} \begin{document} \begin{table}[htbp] \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{@{}lp{3cm}p{3cm}p{3cm}p{3cm}@{}} \toprule & \multicolumn{2}{c}{BCom} & \multicolumn{2}{c}{B.Bus.Sci} \\ \cmidrule(r){2-3} \cmidrule(l){4-5} \\ & Number of courses required to pass & Cumulative total of courses & Number of courses & Cumulative total of courses \\ \midrule \\ First year & 4 & 8 & 4 & 18 \\ \bottomrule \end{tabular} \label{table:mr} \end{table} \newcommand*{\head}[1]{\parbox{2cm}{\begin{flushright}#1\end{flushright}}} \begin{table} \caption{Minimum Requirements for Automatic Readmission into the Commerce Faculty} \centering \begin{tabular}{@{}lrrr@{}} \toprule & Year & \head{Courses required to pass} & \head{Cumulative total} \\ \midrule \\ BCom & 1 & 4 & 8 \\ & 2 & 4 & 8 \\ & 3 & 4 & 8 \\ B.Bus Sci & 1 & 4 & 18 \\ & 2 & 4 & 8 \\ & 3 & 4 & 8 \\ \bottomrule \end{tabular} \label{table:mr.2} \end{table} \end{document}
bookstable
, tiene un error tipográfico aquí: {{BCom}, y cada la fila debe terminar con \\ (falta en su » Número de cursos … » fila). Y el total de columnas combinadas en las multicolumnas deben ser iguales al número total de columnas de su tabla, así que simplemente coloque un & al comienzo de la fila para producir una primera columna vacía.