Como posso desenhar linhas verticais ausentes em tabela?

Como posso desenhar linhas verticais ausentes em tabela?

Quero desenhar linhas verticais ausentes em um arquivo tabular. Acho que \multirow{2}{*}{}impede que a linha vertical da tabela seja desenhada.

Meu código:

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

saída:

insira a descrição da imagem aqui

Saída desejada:insira a descrição da imagem aqui

Responder1

Você pode usar nicematrixcom a hvlinesopção. O comando para células com múltiplas linhas e múltiplas colunas é \Block.

Lembre-se de que isso \Blocknão faz com que as células sejam ignoradas, portanto &&é necessário entre as células Workflow e Method. Também não se esqueça de compilar duas vezes.

A linha \NiceMatrixOptions{cell-space-limits = 2pt}é opcional e cria algum espaço vertical adicional entre as linhas.

insira a descrição da imagem aqui

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

Responder2

Se você for usar as macros de desenho de linha do booktabspacote, não use linhas verticais. De jeito nenhum, não como.

insira a descrição da imagem aqui

Observe que se você especificar a opção landscapeao carregar o geometrypacote, todo o documento será digitado no modo paisagem. Não há necessidade de \begin{landscape}e \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}

Responder3

Se nada mais funcionar, eu escolheria uma abordagem ingênua:

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

É verdade que o "Falha" não está mais posicionado no meio, mas isso também vale para o "Método"

informação relacionada