
我正在寫一份很長的文件,直到我達到了在表格中寫下我的工作計劃的程度。現在我想設定每個活動的時間表,以便與相應的任務保持一致。
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
,其中整合enumerate
了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}
答案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}