¿Cómo agregar una columna en una tabla?

¿Cómo agregar una columna en una tabla?

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

ingrese la descripción de la imagen aquí

  • ¿Cómo puedo editar el archivo para que a User Actionla derecha haya otra columna que se pueda completar, como por ejemplo User Action? Como muestra la siguiente imagen:

ingrese la descripción de la imagen aquí

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}

ingrese la descripción de la imagen aquí

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 \mclcomando definido en la línea 7 que sirve como atajo para \multicolumnese. No hay nada malo en eso. Sin embargo, más adelante en la tabla \multicolumnse 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í.

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

ingrese la descripción de la imagen aquí

información relacionada