
Estoy escribiendo un documento largo hasta que llegué a un punto en el que escribir mi plan de trabajo en una tabla. Ahora quiero establecer el cronograma de cada actividad, para alinearlo con la tarea correspondiente.
MSE a continuación:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{floatrow}
\usepackage{tabularx}
\begin{document}
\begin{table}[h]
\caption{Table of activities}
\label{tblactivity}
\centering
\begin{tabular}{lccc}
\toprule
\textbf{No.} & \textbf{Activity} & \textbf{Task(s) to be completed} &
\textbf{Timeline}\\
\midrule
\textbf{1} &\multicolumn{1}{m{3cm}}{\textbf{\textit{Activity number 1}}} & \multicolumn{1}{m{7cm}}{ \begin{enumerate}
\item Some long sentence here, describing task 1 of activity 1
\item Another long sentence here, describing task 2 of activity 1
\item Yet another long sentence here, describing task 3 of activity 1
\item Activity 1 task 4 ...
\end{enumerate} } &
\\
\midrule
\textbf{2} & \multicolumn{1}{m{3cm}}{\textbf{\textit{Activity number 2}}} & \multicolumn{1}{m{7cm}}{ \begin{enumerate}
\item Activity 2 task 1
\item Activity 2 task 2
\item Activity 2 task 3
\end{enumerate} } \\
\bottomrule
\end{tabular}
\hfill
\end{table}
\end{document}
Para cada tarea 1,2,3 y 4 de la actividad 1 (digamos 2 meses, 2 meses, 1 mes, 1 mes), quiero establecer la fecha límite de manera que el tiempo se alinee con la tarea. Así también la Actividad 2, etc.
Respuesta1
La forma más sencilla de alinear los plazos con las tareas probablemente sea simplemente no utilizar enumerate
entornos y colocar cada tarea en una celda separada de la tabla. De esta manera podrás colocar fácilmente cada fecha límite en su propia celda, adecuadamente alineada con la tarea correspondiente.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{floatrow}
\usepackage{tabularx}
\usepackage{multirow}
\begin{document}
\begin{table}[h]
\caption{Table of activities}
\label{tblactivity}
\centering
\begin{tabular}{llp{1mm}p{6cm}p{2cm}}
\toprule
\textbf{No.} & \multicolumn{1}{c}{\textbf{Activity}} && \textbf{Task(s) to be completed} &
\textbf{Timeline}\\
\midrule
\multirow{7}{*}{\textbf{1}} & \multirow{7}{*}{\textbf{\textit{Activity number 1}}}
& 1. & Some long sentence here, describing task 1 of activity 1 & Deadline 1 \\
&& 2. & Another long sentence here, describing task 2 of activity 1 & Deadline 2 \\
&& 3. & Yet another long sentence here, describing task 3 of activity 1 & Deadline 3 \\
&& 4. & Activity 1 task 4 & Deadline 4 \\
\midrule
\multirow{3}{*}{\textbf{2}} & \multirow{3}{*}{\textbf{\textit{Activity number 2}}}
& 1. & Activity 2 task 1 & Deadline 1 \\
&& 2. & Activity 2 task 2 & Deadline 2 \\
&& 3. & Activity 2 task 3 & Deadline 3 \\
\bottomrule
\end{tabular}
\hfill
\end{table}
\end{document}
Respuesta2
Con definición de estilo de columna especial E
que ha integrado enumerate
y minipage
:
\documentclass{article}
\usepackage{ragged2e}
\usepackage{booktabs, makecell, multirow, tabularx}
\newcolumntype{E}{ >{\csname @minipagetrue\endcsname% list is in minipage env.
\RaggedRight\enumerate}X<{\endenumerate}} % <---
\newcommand*\mcc[1]{\multicolumn{1}{>{\bfseries}l}{#1}} % <---
\usepackage{enumitem}
\begin{document}
\begin{table}
\setcellgapes{1pt}
\makegapedcells
\setlist[enumerate]{%
resume=column, % ensure sequential numbering
nosep,
leftmargin=*,
label=\arabic*.,
after=\vspace*{-\baselineskip}
}
\begin{tabularx}{\linewidth}{@{} c >{\RaggedRight}p{17mm} E l @{}}
\toprule
\mcc{No.}
& \mcc{Activity}
& \mcc{Task(s) to be completed} & \mcc{Timeline} \\
\midrule
1 & \multirow[t]{4}{=}{Activity number 1}
& \setcounter{enumi}{0} %%%% <------- start numbering with 1
\item Some long sentence here,
describing task 1 of activity 1 & monday \\
& & \item Another long sentence here,
describing task 2 of activity 1 & in 2 weeks \\
& & \item Yet another long sentence here,
describing task 3 of activity 1 & timeline \\
& & \item Activity 1 task 4 \dots & timeline \\
\midrule
2 & \multirow[t]{2}{=}{Activity number 2}
& \setcounter{enumi}{0} %%%% <------- restart numbering with 1
\item Some long sentence here,
describing task 1 of activity 1 & monday \\
& & \item Another long sentence here,
describing task 2 of activity 1 & in 2 weeks \\
& & \item Yet another long sentence here,
describing task 3 of activity 1 & timeline \\
& & \item Activity 1 task 4 \dots & timeline \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
Respuesta3
Aquí está mi sugerencia de usar enumitem
un comando definido personalizado para ahorrar escritura. También lo he usado tabularx
para que la tabla encaje en el ancho del texto. También agregué un diseño alternativo con menos espacios en blanco en las columnas de la izquierda:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{enumitem}
\newcommand{\mytabenum}[2][resume=mylist]{\begin{enumerate}[#1, label*=\arabic*.,leftmargin=*,nosep,leftmargin=*,before=\vspace{-0.5\baselineskip},after=\vspace{-1\baselineskip}]\item #2 \end{enumerate}}
\begin{document}
\begin{table}[h]
\caption{Table of activities}
\label{tblactivity}
\centering
\begin{tabularx}{\textwidth}{l>{\raggedright\arraybackslash}p{1.5cm}Xl}
\toprule
\textbf{No.} & \textbf{Activity} & \textbf{Task(s) to be completed} & \textbf{Timeline}\\
\midrule
1 & Activity number 1 & \mytabenum[series=mylist]{Some long sentence here, describing task 1 of activity 1} & monday \\
& & \mytabenum{Another long sentence here, describing task 2 of activity 1} & in 2 weeks\\
& & \mytabenum{Yet another long sentence here, describing task 3 of activity 1} & timeline\\
& & \mytabenum{Activity 1 task 4 ...} & timeline\\
\midrule
2 & Activity number 2 & \mytabenum[series=mylist]{Some long sentence here, describing task 1 of activity 1} & monday \\
& & \mytabenum{Another long sentence here, describing task 2 of activity 1} & in 2 weeks\\
& & \mytabenum{Yet another long sentence here, describing task 3 of activity 1} & timeline\\
& & \mytabenum{Activity 1 task 4 ...} & timeline\\
\bottomrule
\end{tabularx}
\end{table}
\begin{table}[h]
\caption{Table of activities}
\label{tblactivity}
\centering
\begin{tabularx}{\textwidth}{p{\tabcolsep}Xl}
\toprule
& \textbf{Task(s) to be completed} & \textbf{Timeline}\\
\midrule
\multicolumn{3}{l}{1 Activity number 1} \\
& \mytabenum[series=mylist]{Some long sentence here, describing task 1 of activity 1} & monday \\
& \mytabenum{Another long sentence here, describing task 2 of activity 1} & in 2 weeks\\
& \mytabenum{Yet another long sentence here, describing task 3 of activity 1} & timeline\\
& \mytabenum{Activity 1 task 4 ...} & timeline\\
\midrule
\multicolumn{3}{l}{2 Activity number 2} \\
& \mytabenum[series=mylist]{Some long sentence here, describing task 1 of activity 1} & monday \\
& \mytabenum{Another long sentence here, describing task 2 of activity 1} & in 2 weeks\\
& \mytabenum{Yet another long sentence here, describing task 3 of activity 1} & timeline\\
& \mytabenum{Activity 1 task 4 ...} & timeline\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}