我创建的表格缺少线条,我不知道为什么或如何修复这个问题。如您所见,最右边的垂直线被打断了。
代码如下:
\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
。现在使用的小数分隔符是(小数)逗号。