das ist meine Datei:
\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}
was dazu führt
- Wie kann ich die Datei so bearbeiten, dass rechts von
User Action
noch eine Spalte steht, die man ausfüllen kann, z.B. fürUser Action
? Wie das folgende Bild zeigt:
Antwort1
Lassen Sie mich meinen Kommentar in eine Antwort umwandeln. Im MWE sind unten alle Änderungen im Vergleich zu Ihrem MWE durch Kommentare im Code erklärt.
\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}
Antwort2
Das sollte für Sie funktionieren
\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}
Die Sache ist, dass Sie \mcl
in Zeile 7 einen Befehl definiert haben, der als Abkürzung für den \multicolumn
einen gedacht ist. Daran ist nichts auszusetzen. Später in der Tabelle \multicolumn
wird es jedoch explizit verwendet. Daher hätten Sie das mehrspaltige Spaltenargument zweimal von 3 auf 4 ändern sollen. Und wahrscheinlich lag das Problem hier.
\multicolumn
ist kein extrem langer Befehl. Wenn Sie neu bei LaTeX sind, versuchen Sie, die nativen Befehle des Pakets zu verwenden, bevor Sie Tastenkombinationen definieren (oder bereits definierte verwenden). Die meisten Editoren bieten einfache „Suchen und Ersetzen“-Funktionen, die Ihnen Zeit sparen. Wenn Sie sich sicher genug fühlen, verwenden Sie Befehlstastenkombinationen nach Belieben ;)
Und dies ist meine persönliche Interpretation der Tabelle, die Sie benötigen, mit Kuppel als zusätzliche Verzierung und etwas weniger (die Tabelle ist nicht so komplex, dass Sie die Breite der Spalte mit erzwingen müssen \hsize
, Sie müssen nur wissen, welche Spalten gestreckt werden müssen X
und welche nicht, wie die zweite und vielleicht die vierte)
\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}