为什么我的表格缺少几行?

为什么我的表格缺少几行?

我创建的表格缺少线条,我不知道为什么或如何修复这个问题。如您所见,最右边的垂直线被打断了。

桌子

代码如下:


\begin{table}[h]
    \centering
    \begin{tabular}{|c|c|c|c|c|}
         \hline
         Name & Codezeilen & Gewichte & \vtop{\hbox{\strut TPU Ops /}\hbox{\strut Gewichte Byte}} & \vtop{\hbox{\strut Prozentualer Anteil}\hbox{\strut in Juli 2016}}   \\
         \hline
         MLP0 & 100 & 20M & 200 & \multirow{2}{2em}{61\%} \\
         \cline{1-4}
         MLP1 & 1.000 & 5M & 168 \\
         \hline
         LSTM0 & 1.000 & 52M & 64 & \multirow{2}{2em}{29\%} \\
         \cline{1-4}
         LSTM1 & 1.500 & 34M & 96 \\
         \hline
         CNN0 & 1.000 & 8M & 2.888 & \multirow{2}{2em}{5\%} \\
         \cline{1-4}
         CNN1 & 1,000 & 100M & 1,750 \\
         \hline
    \end{tabular}
    \caption{Caption}
    \label{tab:my_label}
\end{table}

答案1

您缺少一些“结束”,它将为显示规则中断的单元格&插入相应的垂直规则。|

在此处输入图片描述

\documentclass{article}

\usepackage{makecell,multirow}

\begin{document}

\begin{table}[h]
  \centering
  \begin{tabular}{|c|c|c|c|c|}
     \hline
     Name & Codezeilen & Gewichte & \makecell[b]{TPU Ops / Gewichte Byte} & \makecell[b]{Prozentualer Anteil \\ in Juli 2016} \\
     \hline
     MLP0 & 100 & 20M & 200 & \multirow{2}{2em}{61\%} \\
     \cline{1-4}
     MLP1 & 1.000 & 5M & 168 & \\
     \hline
     LSTM0 & 1.000 & 52M & 64 & \multirow{2}{2em}{29\%} \\
     \cline{1-4}
     LSTM1 & 1.500 & 34M & 96 & \\
     \hline
     CNN0 & 1.000 & 8M & 2.888 & \multirow{2}{2em}{5\%} \\
     \cline{1-4}
     CNN1 & 1,000 & 100M & 1,750 & \\
     \hline
  \end{tabular}
  \caption{Caption}
\end{table}

\end{document}

我还建议使用booktabs演示:

在此处输入图片描述

\documentclass{article}

\usepackage{makecell,multirow,siunitx,booktabs}

\begin{document}

\begin{table}[h]
  \centering
  \begin{tabular}{ 
    l % Name
    S[table-format=4.3] % Codezeilen
    S[table-format=3] % Gewichte
    S[table-format=4.3] % TPU Ops/Gewichte Byte
    c % Prozentualer Anteil
  }
    \toprule
    Name & {Codezeilen} & {\makecell[b]{Gewichte \\ (M)}} & {\makecell[b]{TPU Ops / \\ Gewichte Byte}} & \makecell[b]{Prozentualer Anteil \\ in Juli 2016} \\
    \midrule
    MLP0  &   100     &  20 &  200     & \multirow{2}{2em}{61\%} \\
    MLP1  &     1.000 &   5 &  168     &                         \\
    \midrule
    LSTM0 &     1.000 &  52 &   64     & \multirow{2}{2em}{29\%} \\
    LSTM1 &     1.500 &  34 &   96     &                         \\
    \midrule
    CNN0  &     1.000 &   8 &    2.888 & \multirow{2}{2em}{\phantom{0}5\%} \\
    CNN1  &  1000     & 100 & 1750     &                         \\
    \bottomrule
  \end{tabular}
  \caption{Caption}
\end{table}

\end{document}

答案2

在表格主体中,所有行中的“&”符号数量应相同,即在具有指定数量的表格中 n列中应该有 *n - *1 个 & 符号。但是,tabularray使用选项的包vlines仍然会绘制所有垂直线。这并不意味着,如果行中全是 & 符号,您就不需要继续...

使用包的两个版本tabularray

\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx, varwidth}
\sisetup{locale = DE}

\begin{document}
    \begin{table}[ht]
    \centering
  \begin{tblr}{hlines, vlines,
               colspec = {l S[table-format=4.3] % Codezeilen
                            S[table-format=3]   % Gewichte
                            S[table-format=4.3] % TPU Ops/Gewichte Byte
                            S[table-format=3{\,\%}] % Prozentualer Anteil
                          },
             row{1} = {font=\small\bfseries},
             colsep=4pt,
             rowsep = {1pt},
             measure = vbox
             }
Name    & {{{Codezeilen}}}
                    & {{{Gewichte\\ (M) }}}
                            & {{{TPU Ops /\\ Gewichte Byte}}}
                                        & {{{Prozentualer Anteil\\
                                             in Juli 2016}}}            \\
MLP0    &   100     &  20   &  200      & \SetCell[r=2]{c}   61\,\%     \\
MLP1    &     1.000 &   5   &  168      &                               \\
LSTM0   &     1.000 &  52   &   64      & \SetCell[r=2]{c}   29\,\%     \\
LSTM1   &     1.500 &  34   &   96      &                               \\
CNN0    &     1.000 &   8   &    2.888  & \SetCell[r=2]{c}    5\,\%     \\
CNN1    &  1000     & 100   & 1750      &                               \\
  \end{tblr}
  \caption{Caption}
    \end{table}
or with `booktabs` rules and dashed lines but without vertical lines:
    \begin{table}[ht]
    \centering
  \begin{tblr}{colspec = {l S[table-format=4.3] % Codezeilen
                            S[table-format=3]   % Gewichte
                            S[table-format=4.3] % TPU Ops/Gewichte Byte
                            S[table-format=3{\,\%}] % Prozentualer Anteil
                          },
             row{1} = {font=\small\bfseries},
             colsep=4pt,
             rowsep = {1pt},
             measure = vbox
             }
    \toprule
Name    & {{{Codezeilen}}}  
                    & {{{Gewichte\\ (M) }}} 
                            & {{{TPU Ops /\\ Gewichte Byte}}}
                                        & {{{Prozentualer Anteil\\ 
                                             in Juli 2016}}}            \\
    \midrule
MLP0    &   100     &  20   &  200      & \SetCell[r=2]{c}   61\,\%     \\
MLP1    &     1.000 &   5   &  168      &                               \\
    \hline[dashed]
LSTM0   &     1.000 &  52   &   64      & \SetCell[r=2]{c}   29\,\%     \\
LSTM1   &     1.500 &  34   &   96      &                               \\
    \hline[dashed]
CNN0    &     1.000 &   8   &    2.888  & \SetCell[r=2]{c}    5\,\%     \\
CNN1    &  1000     & 100   & 1750      &                               \\
    \bottomrule
  \end{tblr}
  \caption{Caption}
    \end{table}
\end{document}

在此处输入图片描述

编辑:添加的是软件包的本地化siunitx。现在使用的小数分隔符是(小数)逗号。

相关内容