Wie füge ich einer Tabelle eine Spalte hinzu?

Wie füge ich einer Tabelle eine Spalte hinzu?

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

Bildbeschreibung hier eingeben

  • Wie kann ich die Datei so bearbeiten, dass rechts von User Actionnoch eine Spalte steht, die man ausfüllen kann, z.B. für User Action? Wie das folgende Bild zeigt:

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

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 \mclin Zeile 7 einen Befehl definiert haben, der als Abkürzung für den \multicolumneinen gedacht ist. Daran ist nichts auszusetzen. Später in der Tabelle \multicolumnwird es jedoch explizit verwendet. Daher hätten Sie das mehrspaltige Spaltenargument zweimal von 3 auf 4 ändern sollen. Und wahrscheinlich lag das Problem hier.

\multicolumnist 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 Xund 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}

Bildbeschreibung hier eingeben

verwandte Informationen