Wie kann ich fehlende vertikale Linien in einer Tabelle zeichnen?

Wie kann ich fehlende vertikale Linien in einer Tabelle zeichnen?

Ich möchte fehlende vertikale Linien in einer zeichnen tabular. Ich glaube, \multirow{2}{*}{}das verhindert, dass die vertikale Linie der Tabelle gezeichnet wird.

Mein Code:

\documentclass{article}
\usepackage[a4paper,margin=1in,landscape]{geometry}
\usepackage{makecell}
\usepackage{multirow}
\usepackage{booktabs}

\begin{document}
\begin{center}
    \begin{table*}[!t]  %
        \centering
        \caption{Results ...}
        \begin{tabular}{|c|c|c|c|c|c|c|c|c|}
          \hline
          \textbf{Test} & \multicolumn{2}{c|}{Workflow} & Method
          & \multirow{2}{*}{\makecell{Completion                                                 \\ Time (min)}}
                        & \multirow{2}{*}{\makecell{Gas Used for                                               \\
          \textit{submitJob} (gas)}}
                        & \multirow{2}{*}{\makecell{Gas Used for                                               \\
          \textit{processPayment} (gas)}}
                        & \multirow{2}{*}{\makecell{Actual/Complete                                            \\ Cost
          (\textit{Cent})}}
                        & \multirow{2}{*}{\makecell{Failed}}                                                   \\
          \cmidrule(lr){2-3}
                        &       $|V|$                   & $|E|$                                                \\
          \hline
          $T_1$         & 16                            & 28 & ALGO & 27 & 1722983 & 1942770 & 0.827/0.827 & 0 \\ \hline
        \end{tabular}
    \end{table*}
\end{center}
\end{document}

Ausgabe:

Bildbeschreibung hier eingeben

Gewünschte Ausgabe:Bildbeschreibung hier eingeben

Antwort1

nicematrixSie können mit der Option verwenden hvlines. Der Befehl für Zellen mit mehreren Zeilen und Spalten lautet \Block.

Denken Sie daran, dass dies \Blocknicht dazu führt, dass die Zellen übersprungen werden, was &&zwischen den Workflow- und Methodenzellen erforderlich ist. Vergessen Sie auch nicht, zweimal zu kompilieren.

Die Linie \NiceMatrixOptions{cell-space-limits = 2pt}ist optional und schafft zusätzlichen vertikalen Raum zwischen den Zeilen.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage[a4paper,margin=1in,landscape]{geometry}
\usepackage{nicematrix}

\begin{document}
\begin{center}
    \begin{table*}[!t]  %
        \centering
        \caption{Results ...}
        \NiceMatrixOptions{cell-space-limits = 2pt}
        \begin{NiceTabular}{ccccccccc}[hvlines]
          \Block{2-1}{\textbf{Test}} & \Block{1-2}{Workflow} && \Block{2-1}{Method} & \Block{2-1}{Completion\\Time (min)}
                        & \Block{2-1}{Gas Used for\\ \textit{submitJob} (gas)}
                        & \Block{2-1}{Gas Used for\\ \textit{processPayment} (gas)}
                        & \Block{2-1}{Actual/Complete\\ Cost (\textit{Cent})}
                        & \Block{2-1}{Failed}\\
          & $|V|$ & $|E|$ \\
          $T_1$ & 16 & 28 & ALGO & 27 & 1722983 & 1942770 & 0.827/0.827 & 0
        \end{NiceTabular}
    \end{table*}
\end{center}
\end{document}

Antwort2

Wenn Sie die Linienzeichnungsmakros des booktabsPakets verwenden möchten, verwenden Sie keine vertikalen Linien. Auf keinen Fall.

Bildbeschreibung hier eingeben

Beachten Sie, dass das gesamte Dokument im Querformat gesetzt wird, wenn Sie landscapebeim Laden des Pakets die Option angeben. und sind nicht erforderlich .geometry\begin{landscape}\end{landscape}

\documentclass{article}
\usepackage[a4paper,margin=1in,landscape]{geometry}
\usepackage{booktabs,array,calc}
\newcommand\mytab[1]{\smash{\begin{tabular}[t]{@{} c @{}} #1 \end{tabular}}}
\newlength\mylen
\setlength\mylen{\widthof{Workflow}-4\tabcolsep}
\begin{document}

\begin{table}[h]
\centering
\caption{Results \dots}
\smallskip
\begin{tabular}{@{} *{2}{wc{\mylen}} *{7}{c} @{}}
  \toprule
  Test
  & \multicolumn{2}{@{}c@{}}{Workflow} 
  & Method
  & \mytab{Completion   \\ Time (min)}
  & \mytab{Gas used for \\ \textit{submitJob} (gas)}
  & \mytab{Gas used for \\ \textit{processPayment} (gas)}
  & \mytab{Actual/Complete \\ Cost (\textit{Cent})}
  & Failed \\
  \cmidrule(lr){2-3}
  & $V$ & $E$ \\
  \midrule
  $T_1$ & 16 & 28 & ALGO & 27 & 1722983 & 1942770 & 0.827/0.827 & 0 \\ 
  \bottomrule
\end{tabular}
\end{table}

\end{document}

Antwort3

Wenn nichts anderes funktioniert, würde ich einen naiven Ansatz wählen:

\documentclass{article}
\usepackage[a4paper,margin=1in,landscape]{geometry}
\usepackage{makecell}
\usepackage{multirow}
\usepackage{booktabs}

\begin{document}
%\begin{landscape}
    \begin{center}
        \begin{table*}[!t]  %
            \centering
            \caption{Results ...}
            \begin{tabular}{|c|c|c|c|c|c|c|c|c|}
              \hline
              \textbf{Test} & \multicolumn{2}{c|}{Workflow} & Method
                            & Completion  
                            & Gas Used for 
                            & Gas Used for 
                            & Actual/Complete 
                            & Failed \\ 
                            & $|V|$ & $|E|$ 
                            &
                            & Time (min) 
                            & \textit{submitJob} (gas) 
                            & \textit{processPayment} (gas) 
                            & Cost (\textit{Cent}) 
                            & \\
              \hline
              $T_1$         & 16                            & 28 & ALGO & 27 & 1722983 & 1942770 & 0.827/0.827 & 0 \\ \hline
            \end{tabular}
        \end{table*}
    \end{center}
%\end{landscape}
\end{document}

Zugegeben, das "Fehlgeschlagen" steht nicht mehr in der Mitte, aber das gilt auch für "Methode"

verwandte Informationen