Tabla: alinear los valores de dos columnas en una fila

Tabla: alinear los valores de dos columnas en una fila

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}

ingrese la descripción de la imagen aquí

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 enumerateentornos 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 Eque ha integrado enumeratey 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}

ingrese la descripción de la imagen aquí

Respuesta3

Aquí está mi sugerencia de usar enumitemun comando definido personalizado para ahorrar escritura. También lo he usado tabularxpara 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:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

\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}

información relacionada