표: 두 열 값을 한 행에 정렬

표: 두 열 값을 한 행에 정렬

나는 작업 계획을 표로 작성할 수 있는 지점에 도달할 때까지 긴 문서를 작성하고 있습니다. 이제 각 활동의 타임라인을 해당 작업에 맞춰 설정하고 싶습니다.

아래 MSE:

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

여기에 이미지 설명을 입력하세요

활동 1의 각 작업 1,2,3, 4(예: 2개월, 2개월, 1개월, 1개월)에 대해 시간이 작업과 일치하도록 마감일을 설정하고 싶습니다. 활동 2 등도 마찬가지입니다.

답변1

마감일을 작업에 맞추는 가장 쉬운 방법은 아마도 enumerate환경을 사용하지 않고 각 작업을 테이블의 별도 셀에 배치하는 것입니다. 이렇게 하면 각 마감일을 해당 작업에 맞게 적절하게 정렬하여 자체 셀에 쉽게 배치할 수 있습니다.

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

답변2

다음과 같은 E기능이 통합된 특수 열 스타일을 정의합니다 .enumerateminipage

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

여기에 이미지 설명을 입력하세요

답변3

다음은 입력을 저장하기 위해 사용하는 제안 enumitem과 사용자 정의된 명령입니다. 나는 또한 tabularx테이블을 텍스트 너비에 맞추기 위해 사용했습니다 . 또한 왼쪽 열에 공백이 적은 대체 레이아웃을 추가했습니다.

여기에 이미지 설명을 입력하세요 여기에 이미지 설명을 입력하세요

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

관련 정보