este es mi archivo:
\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}
lo que lleva a esto
- ¿Cómo puedo editar el archivo para que a
User Action
la derecha haya otra columna que se pueda completar, como por ejemploUser Action
? Como muestra la siguiente imagen:
Respuesta1
Déjame cambiar mi comentario por respuesta. En MWE a continuación se muestran todos los cambios en comparación con su MWE explicados mediante comentarios en el código.
\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}
Respuesta2
Esto debería funcionar para ti
\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}
La cuestión es que tienes un \mcl
comando definido en la línea 7 que sirve como atajo para \multicolumn
ese. No hay nada malo en eso. Sin embargo, más adelante en la tabla \multicolumn
se utiliza explícitamente. Por lo tanto, debería haber cambiado el argumento de la columna de varias columnas de 3 a 4 dos veces. Y probablemente el problema estaba aquí.
\multicolumn
no es un comando extremadamente largo y, si es nuevo en LaTeX, intente usar los comandos nativos del paquete, antes de definir (usando ya definidos) atajos. La mayoría de los editores ofrecen funciones sencillas de "buscar y reemplazar" que le ahorrarán tiempo. Cuando te sientas lo suficientemente seguro, usa atajos de comando a tu voluntad;)
Y esta es mi interpretación personal de la tabla que necesitabas, con adorno adicional de cúpula y algo menos (la tabla no es tan compleja como para que necesites forzar el ancho de la columna \hsize
, solo necesitas saber qué columnas deben estirarse X
y que no, como el segundo y tal vez el cuarto)
\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}