我正在用 latex 在 overleaf 上写一份报告。我想在一段之后添加一个表格:
\begin{table}[]
\centering
\caption{Two Object Detection Types}
\begin{tabular}{ll}
\hline
% \rowcolor[HTML]{C0C0C0}
% \multicolumn{2}{c}{\cellcolor[HTML]{C0C0C0}\textbf{Types of Object Detection Detectors}} \\ \hline
% \rowcolor[HTML]{EFEFEF}
\multicolumn{1}{|c|}{\cellcolor[HTML]{EFEFEF}{\ul \textbf{One Stage Detectors}}} & \multicolumn{1}{c|}{\cellcolor[HTML]{EFEFEF}{\ul \textbf{Two Stage Detectors}}} \\ \hline
\multicolumn{1}{|c|}{Single Shot Detector} & \multicolumn{1}{|c|}{RCNN family} \\ \hline
\multicolumn{1}{|c|}{YOLO v1-v4} & \multicolumn{1}{|c|}{CenterNet} \\ \hline
\multicolumn{1}{|c|}{Scaled YOLO v4} & \multicolumn{1}{|c|}{EfficientDet} \\ \hline
\end{tabular}
\end{table}
我用过这网站生成代码。
但是我在这张表之前有一个段落,中间有空格,如下图所示。我想知道如何删除这些空格。
不仅如此,我还遇到了错误:上述代码中的第二行和第三行多列行的控制序列未定义。有人能向我解释一下这是为什么以及如何解决吗?
谢谢。
编辑1:
答案1
没有什么非常\ul
除了必须定义或由包提供、必须加载的命令外,表中的其他内容都是错误的。
要为第一行加粗的行加下划线(有点过头),您可以使用包soul
及其命令\ul
。加粗下划线的正确用法是
\textbf{\ul{One Stage Detectors}}
。
对于这样一个简单的表格,您不需要做所有复杂的工作\multicolumn{1}{|c|}{..
。它们是表格生成器的产物。
需要做的是在第一行添加垂直空间以容纳下划线。 完成mutirow
,使第一行高度为两行。
不要使用[H]
。而要使用[h!]
。
下次请提供完整的 MWE 及其序言。
\documentclass[12pt,a4paper]{report}
\usepackage{kantlipsum} % dummy text
\usepackage[table]{xcolor}
\usepackage{soul} % underlines
\usepackage{multirow} % multiple rows
\begin{document}
1. \kant[1]
\begin{table}[h!]
\sffamily
\centering
\caption{Two Object Detection Types}
\smallskip
\begin{tabular}{|c|c|}
\hline
\cellcolor{gray!10} &\cellcolor{gray!10}\\
\multirow{-2}{*}{\cellcolor{gray!10}\textbf{\ul{One Stage Detectors}}}&
\multirow{-2}{*}{\cellcolor{gray!10}\textbf{\ul{Two Stage Detectors}}}\\
\hline
Single Shot Detector & mRCNN family \\ \hline
YOLO v1-v4 & CenterNet \\ \hline
Scaled YOLO v4 & EfficientDet \\ \hline
\end{tabular}
\end{table}
2. \kant[2]
\end{document}