這是我的文件:
\documentclass[a4paper]{article}
\usepackage{multirow, tabularx}
\begin{document}
\begin{table}[!ht]
\renewcommand\arraystretch{1.5}
\newcommand\mcl[1]{\multicolumn{3}{l|}{#1}}
\caption{Tabella di Cockburn}
\begin{tabularx}{\linewidth}{|l|>{\hsize=0.4\hsize}X|
>{\hsize=1.8\hsize}X|
>{\hsize=0.8\hsize}X|}
\hline
Use Case \#N & \mcl{Login} \\
\hline
Goal in Context & \mcl{Per identificarsi} \\
\hline
Preconditions & \mcl{L'utente deve avere già un account} \\
\hline
Success End Conditions
& \mcl{L'utente è stato identificato nel sistema} \\
\hline
Failed End Conditions
& \multicolumn{3}{>{\hsize=\dimexpr3\hsize+6\tabcolsep+3\arrayrulewidth}X|}{
Lorem ipsum dolor sit amet, consectetur adipiscing elit.} \\
\hline
Primary Actor & \mcl{Attore principale dello UC} \\
\hline
Trigger & \mcl{Azione principale dell'attore che attiva lo UC} \\
\hline
Description & Step & User Action & System \\ \cline{2-4}
& 1 & L'utente clicca OK & \\ \cline{2-4}
& 2 & & Mostra M1 \\ \cline{2-4}
& 3 & L'utente clicca Cliccami & \\ \cline{2-4}
& 4 & & Chiude \\
\hline
Extensions & Step & User Action & System \\ \cline{2-4}
& & & \\
\hline
Subvariations & Step & User Action & System \\ \cline{2-4}
& & & \\
\hline
Notes & & & \\
\hline
\end{tabularx}
\end{table}
\end{document}
這導致了這個
- 如何編輯該文件,以便在
User Action
右側有另一列可以填充,例如 forUser Action
?如下圖所示:
答案1
讓我將我的評論改為答案。下面的 MWE 是與程式碼中註解解釋的 MWE 相比的所有變更。
\documentclass[a4paper]{article}
\usepackage{makecell, tabularx}
\renewcommand\theadfont{\small\bfseries} % for headers in "description" row
\renewcommand\theadgape{} % removed aditional vertical space around \thead
\newlength{\pwidth}
\usepackage{lipsum} % for generating dummy test
\begin{document}
\begin{table}[!ht]
\setcellgapes{2pt}
\makegapedcells % for additional vertical space in cells
\setlength\tabcolsep{4pt} % reduce \tabcolspace from default value 6pt,
% with this cell content has 4pt more space
\settowidth\pwidth{Preconditions} % as suggested in my answer
% on one of your previous question
% shortcut \newcommand\mcl[1]{\multicolumn{3}{l|}{#1}} is desingned
% for spanning three column, but with increasing number of columns
% it should now span four columns:
\newcommand\mcl[1]{\multicolumn{4}{l|}{#1}}
\caption{Tabella di Cockburn}
\label{tab:cockburn} % for referencing this table
\begin{tabularx}{\linewidth}{|>{\raggedright}p{\pwidth}|
% Here is inserted additional column. From provided image has the same width
% as last two column. In definig columns width we bear in mind, that sum of
% X column had to be integer number equal to number of X columns in table:
>{\hsize=0.55\hsize}X|
>{\hsize=1.15\hsize}X|
>{\hsize=1.15\hsize}X|
>{\hsize=1.15\hsize}X|}
\hline
% 1 & 2 & 3 & 4 & 5 \\
Use Case \#N & \mcl{Login} \\
\hline
Goal in Context & \mcl{Per identificarsi} \\
\hline
Preconditions & \mcl{L'utente deve avere già un account} \\
\hline
Success End Conditions
& \mcl{L'utente è stato identificato nel sistema} \\
\hline
Failed End Conditions
& \multicolumn{4}% % cell now span 4 columns, 6 \tabcolsep, 3 \arrayrulewidth
{>{\hsize=\dimexpr4\hsize+6\tabcolsep+3\arrayrulewidth}X|}%
{\lipsum[11]} \\
\hline
Primary Actor & \mcl{Attore principale dello UC} \\
\hline
Trigger & \mcl{Azione principale dell'attore che attiva lo UC} \\
\hline
Description & \thead{Step $n$}
& \thead{Attore 1}
& \thead{Attore $n$}
& \thead{SIstema} \\ \cline{2-5}
& 1 & Azzione trigger
& & \\ \cline{2-5}
& 2 & & & Mostra M1 \\ \cline{2-5}
& \dots & Azione 2
& & \\ \cline{2-5}
& $n$ & & & Chiude \\
\hline
\end{tabularx}
\end{table}
\end{document}
答案2
這應該適合你
\documentclass[a4paper]{article}
\usepackage{multirow, tabularx}
\begin{document}
\begin{table}[!ht]
\renewcommand\arraystretch{1.5}
\newcommand\mcl[1]{\multicolumn{4}{l|}{#1}}
\caption{Tabella di Cockburn}
\begin{tabularx}{\linewidth}
{
|l|>{\hsize=0.4\hsize}X|
>{\hsize=1.8\hsize}X|
>{\hsize=0.8\hsize}X|
>{\hsize=0.8\hsize}X|
}
\hline
Use Case \#N & \mcl{Login} \\
\hline
Goal in Context & \mcl{Per identificarsi} \\
\hline
Preconditions & \mcl{L'utente deve avere già un account} \\
\hline
Success End Conditions
& \mcl{L'utente è stato identificato nel sistema} \\
\hline
Failed End Conditions
& \multicolumn{4}{>{\hsize=\dimexpr3\hsize+6\tabcolsep+3\arrayrulewidth}X|}{
Lorem ipsum dolor sit amet, consectetur adipiscing elit.} \\
\hline
Primary Actor & \mcl{Attore principale dello UC} \\
\hline
Trigger & \mcl{Azione principale dell'attore che attiva lo UC} \\
\hline
Description & Step & Attore 1 & attore n & sistema \\ \cline{2-5}
& 1 & L'utente clicca OK & & \\ \cline{2-5}
& 2 & & Mostra M1 & \\ \cline{2-5}
& 3 & L'utente clicca Cliccami & & \\ \cline{2-5}
& 4 & & Chiude & \\
\hline
Extensions & Step & User Action & System & \\ \cline{2-5}
& & & & \\
\hline
Subvariations & Step & User Action & System & \\ \cline{2-5}
& & & & \\
\hline
Notes & & & & \\
\hline
\end{tabularx}
\end{table}
\end{document}
問題是您\mcl
在第 7 行定義了一個命令,該命令是該\multicolumn
命令的捷徑。那沒有什麼問題。然而,在表的後面,\multicolumn
明確使用了 。因此,您應該將多列列參數從 3 更改為 4 兩次。也許問題就在這裡。
\multicolumn
不是一個非常長的命令,而且,如果您是 LaTeX 新手,請在定義(您使用已經定義的)快捷方式之前嘗試使用套件的本機命令。大多數編輯器都提供簡單的「尋找和取代」功能,可以節省您的時間。當您有足夠的信心時,可以隨意使用命令快捷鍵;)
這是我個人對您所需的表格的解釋,帶有圓頂額外的裝飾和更少的東西(表格並不復雜,您需要用 來強制列的寬度\hsize
,您只需要知道哪些列需要拉伸X
,而且這不是,像第二個,也許第四個)
\documentclass[a4paper]{article}
\usepackage{multirow, tabularx}
\usepackage{booktabs}
\begin{document}
\begin{table}[tb]
\renewcommand\arraystretch{1.5}
\newcommand\mcl[1]{\multicolumn{4}{l}{#1}}
\centering
\caption{Tabella di Cockburn}
\label{tab:tabella-cockburn}
\begin{tabularx}{\textwidth}{llXXl}
\toprule
\textbf{Use Case \#N} & \mcl{\textbf{Login}} \\ \toprule
Goal in Context & \mcl{Per identificarsi} \\ \midrule
Preconditions & \mcl{L'utente deve avere già un account} \\ \midrule
Success End Conditions & \mcl{L'utente è stato identificato nel sistema} \\ \midrule
Failed End Conditions & \mcl{lorem ipsum dolor sit amet} \\ \midrule
Primary Actor & \mcl{Attore principale dello UC} \\ \midrule
Trigger & \mcl{Azione principale dell'attore che attiva lo UC} \\ \midrule
\textsc{Description} & \textbf{Step} & \textbf{Attore 1} & \textbf{Attore $n$} & \textbf{Sistema} \\ \cline{2-5}
& 1 & L'utente clicca OK & & \\ \cline{2-5}
& 2 & & Mostra M1 & \\ \cline{2-5}
& 3 & L'utente clicca Cliccami & & \\ \cline{2-5}
& 4 & & Chiude & \\ \midrule
\textsc{Extensions} & \textbf{Step} & \textbf{Attore 1} & \textbf{Attore $n$} & \textbf{Sistema} \\ \cline{2-5}
& & & & \\ \midrule
\textsc{Subvariations} & \textbf{Step} & \textbf{Attore 1} & \textbf{Attore $n$} & \textbf{Sistema} \\ \cline{2-5}
& & & & \\ \midrule
\textsc{Notes} & \mcl{one note spanning 4 columns} \\
& note 1 & note 2 & note 3 & note 4 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}