
Después de ver la solución de Andrew Swann a mi pregunta anterior:¿Cómo encajar esta tabla en una página?Intenté encajarlo en otra mesa:
\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[spanish,mexico]{babel}
\usepackage[T1]{fontenc}
\usepackage{booktabs,longtable}
\usepackage{array}
\begin{document}
{\small\setlength\tabcolsep{5pt}
\begin{tabularx}{\linewidth}{ll*{2}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}}
\caption{Temario de actividades Secundaria} \\
\toprule
\textsc{Horario} & \textsc{Ejercicio} & \textsc{Grado de riesgo} & \textsc{Material}\\
\addlinespace[0.5ex]
\toprule
\addlinespace[2ex]
\endfirsthead
\multicolumn{4}{c}{\textsc{\tablename~\thetable}\enspace (continuación)}\\
\addlinespace[2ex]
\toprule
\textsc{Horario} & \textsc{Ejercicio} & \textsc{Grado de riesgo} & \textsc{Material}\\
\addlinespace[0.5ex]
\toprule
\endhead
\midrule
\multicolumn{4}{r}{Continúa}
\endfoot
\bottomrule
\endlastfoot
{\normalsize Día 1} & Bienvenida Encuadre Tema:Acuerdos de convivencia Ejercicios psicométricos & 1 & Pelota de esponja \emph{Brincón} Ejercicios psicométricos. Guía Eureka (Ver Anexo)\\
\addlinespace
{\normalsize Día 2} & Ejercicios psicométricos & 0 & Ejercicios psicométricos. Guía Eureka\\
\addlinespace
{\normalsize Día 3} & Ejercicios psicométricos & 0 & Ejercicios psicométricos\\
\addlinespace
{\normalsize Día 4} & Examen simulacro de ejercicios psicométricos en equipo & 0 & Ejercicios psicométricos. Guía verde actualizada 2000 (Ver Anexo).\\
\addlinespace
{\normalsize Día 5} & EXAMEN DE CONOCIMIENTOS GENERALES & & \\
\end{tabularx}
}
\end{document}
Bueno, esa es la tabla que necesito hacer, pero no estoy seguro de cómo hacerlo bien. Mi primera duda es sobre la declaración de la columna, de mi pregunta anterior y otras soluciones que vi, adapté esta:
\begin{tabularx}{\linewidth}{ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}}
Como necesito 5 columnas, entiendo que la tabla tiene 3 columnas alineadas a la izquierda, luego otra no justificada (RaggedRight) y una finalXcolumna, ¿tengo razón? Pero no estoy seguro de eso. El código ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
es difícil de entender para mí, ¿alguien podría explicarme?
Actualizar
Después de los comentarios y la respuesta hice algunas correcciones en la tabla, vi que una columna no tenía sentido. Pero la disposición de la mesa es horrible. ¿Cómo puedo arreglarlo? ¿Hay alguna manera de enumerar o separar el texto en una celda si necesito una lista y no un párrafo?
Respuesta1
ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
es
ll
dos columnas de entradas de una sola línea alineadas a la izquierda, luego
*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
tres copias de>{\RaggedRight\arraybackslash\hspace{0pt}}X
Cada uno de estos es básicamente una X
columna que tiene p{...}
un ancho calculado automáticamente.
Las fichas del >{...}
se aplican al inicio de cada celda. En este caso eso es
\RaggedRight\arraybackslash\hspace{0pt}
\RaggedRight
es una versión mejorada del \raggedright
paquete ragged2e
.
\arraybackslash
se define en tabularx
redefine \\
para finalizar la fila de la tabla (que son sus definiciones normales en tabular, pero \ragedright
, \RaggedRight
etc., redefine localmente para hacer que finalice una línea de texto irregular, lo cual no se desea aquí.
Comenzar un párrafo con \hspace{0pt}
es un viejo truco para poner un espacio antes de la primera palabra, lo que permite a TeX separar la primera palabra del párrafo con guiones. (De lo contrario, el algoritmo de separación de palabras de TeX no considera la primera palabra, lo que probablemente sea un error, pero TeX está congelado y no va a cambiar ese comportamiento.
Respuesta2
David Carlisle ya respondió a tus primeras preguntas. Así que intentaré ayudarte a resolver otros problemas. Su MWE tiene algunos errores como \caption
el siguiente \begin{tabularx} ...
, pero no es así \end{document}
. Y lo más notable es que para mí no está claro si desea tener longtabe
(repartida en más páginas) o simplemente una tabla simple en un entorno flotante. Supongo que ese último es el caso y rehago su MWE de la siguiente manera:
\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}
%\usepackage[spanish,mexico]{babel} i haven't it ..
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage{booktabs,tabularx}
\usepackage[labelsep=colon,
labelfont={bf},
justification=raggedright,
singlelinecheck=false]{caption}% added for caption custumization
%% just for shoving test result, erase this two line in final text
\usepackage[active,floats,tightpage]{preview}
\setlength\PreviewBorder{1em}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
\begin{document}
\begin{table}
\setlength\tabcolsep{3pt}
\small
\caption{Temario de actividades Secundaria}
\begin{tabularx}{\linewidth}{
c% first column, I change "l" to "c" (matter of taste)
>{\setlength\hsize{1.2\hsize}}L% I make it wider
c% third column, I change it from X to c; Is it really necessary since it is empty?,
% does it should has equal width as second and last column?
>{\setlength\hsize{.6\hsize}}C% I make it narrower
>{\setlength\hsize{1.2\hsize}}L% I make it wider
}
\toprule
Horario % I remove \textsc, for better looking of table
& Ejercicio
& Objetivo
& Grado de riesgo
& Material \\
\midrule
Día 1
& Bienvenida Encuadre Tema: Acuerdos de convivencia Ejercicios psicométricos
& & 1
& Pelota de esponja \emph{Brincón} Ejercicios psicométricos.
Guía Eureka (Ver Anexo) \\
\addlinespace
Día 2
& Ejercicios psicométricos
& & 0
& Ejercicios psicométricos. Guía Eureka \\
\addlinespace
Día 3
& Ejercicios psicométricos
& & 0
& Ejercicios psicométricos \\
\addlinespace
Día 4
& Examen simulacro de ejercicios psicométricos en equipo
& & 0
& Ejercicios psicométricos.
Guía verde actualizada 2000 (Ver Anexo). \\
\addlinespace
Día 5
& Examen de conocimientos generales, gute
& & & \textbullet\ emulation of itemize
environment (to show
possible solutions) \newline
\textbullet\ second item \newline \textbullet\ third item \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
En el código agregué algunos comentarios mediante los cuales trato de aclarar lo que estoy haciendo y lo que se menciona al lado que no me queda claro. Como puede ver, la tabla se coloca en el entorno de tabla y también sugiero definir un nuevo tipo de columna en el preámbulo del documento.
Editar: Iraultza Bellaustegigoitia, cuando comienzas con el diseño de tablas (esta es una de las tareas más desafiantes en el uso de LaTeX), debes tomar algunas decisiones como:
- ¿La tabla cabe en una página o es tan grande que se dividirá en más páginas?
- ¿Puede la tabla flotar en el texto o no?
- si la mesa tiene el ancho prescrito
Teniendo en cuenta las respuestas a la pregunta anterior, seleccione un entorno tabular, por ejemplo, tabularx
para una tabla en una página, longtable
para una más grande. etc. Si no está familiarizado con el paquete seleccionado, lea (al menos brevemente) la documentación que se adjunta con el paquete.
Al diseñar una mesa, considere algunas reglas simples:
- Los más nuevos combinan características particulares de diferentes paquetes (por ejemplo, usan la definición de encabezado/pie de página de
longtable
intabularx
). Las excepciones sonarray
ybooktabs
paquete, que están diseñados para admitir otros paquetes tabulares. - es mala idea utilizar diferentes tamaños de fuente en la tabla
Rediseño un poco mi MWE, agregué un ejemplo para una emulación simple de listas en una celda de tabla (para un diseño más exigente, sugiero usar algunos paquetes de listas como enumitem
) y agregué una nueva imagen de la tabla generada por él. Espero que se acerque a esto, lo que te gusta lograr y que este mi añadido te ayude.
Respuesta3
Bueno, después de luchar todo el maldito día con esta mesa, y gracias a las amables respuestas y explicaciones de David Carlisle y el truco de Zarco, tengo la mesa tal como quería.
Lo que hice fue lo siguiente:
\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[spanish,mexico]{babel}
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage{array,caption}
\captionsetup{labelfont=sc,textfont=it}
\usepackage{tikz}
\usepackage{ltablex}
\renewcommand{\tabularxcolumn}[1]{>{\small}m{#1}}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{longtable}
\newcolumntype{C}{>{\centering\arraybackslash\hspace{0pt}}X}
\newcolumntype{L}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
\begin{document}
{\small\setlength\tabcolsep{5pt}
\begin{tabularx}{\linewidth}{cLCL} % {lc*{2}L}
\caption{Temario de actividades Secundaria} \\
\toprule
\textsc{Horario} & \textsc{Ejercicio} & \textsc{Grado de riesgo} & \textsc{Material}\\
\addlinespace[0.5ex]
\toprule
\addlinespace[2ex]
\endfirsthead
\multicolumn{4}{c}{\textsc{\tablename~\thetable}\enspace (continuación)}\\
\addlinespace[2ex]
\toprule
\textsc{Horario} & \textsc{Ejercicio} & \textsc{Grado de riesgo} & \textsc{Material}\\
\addlinespace[0.5ex]
\toprule
\endhead
\midrule
\multicolumn{4}{r}{Continúa}
\endfoot
\bottomrule
\endlastfoot
{\normalsize Día 1} & Bienvenida\par Encuadre\par Tema:\par Acuerdos de convivencia\par Ejercicios psicométricos & 1 & Pelota de esponja\par \emph{Brincón}\par Ejercicios psicométricos\par Guía Eureka (Ver Anexo)\\
\addlinespace
{\normalsize Día 2} & Ejercicios psicométricos & 0 & Ejercicios psicométricos. Guía Eureka\\
\addlinespace
{\normalsize Día 3} & Ejercicios psicométricos & 0 & Ejercicios psicométricos\\
\addlinespace
{\normalsize Día 4} & Examen simulacro de ejercicios psicométricos en equipo & 0 & Ejercicios psicométricos. Guía verde actualizada 2000 (Ver Anexo).\\
\addlinespace
{\normalsize Día 5} & \multicolumn{3}{c}{EXAMEN DE CONOCIMIENTOS GENERALES} \\
\addlinespace
{\normalsize Día 6} & Autoconcepto \par Autoestima \par Elaboración de mi propio regalo & 2 & Papel bond\par Plumones\par Pegamento\par Tijeras\par Crayolas \\
\end{tabularx}
}
\end{document}
Mi otro problema fue cómo incluir el texto dentro de una celda en esta tabla. No creo que usar un entorno como itemize
o enumerate
anidado dentro fuera una buena idea, es decir, no creo que se compile correctamente. Muchas veces es fácil separar el texto usando \\
pero como en las tablas es la forma en que se distinguen las líneas, ninguna parecía funcionar. Al final intenté usarlo \par
y funcionó, pero no sé si hay alguna manera mejor.