因此,我尝试编写一个包含一些信息的表格,这是我一生中第一次使用多行和多列。一切都很顺利,直到我决定使用\hline
,正如您在代码中看到的那样,其中一条水平线穿过多列并覆盖了我的文本。
有人能告诉我如何防止这种情况发生吗?
\begin{table}[]
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{2}{|c|}{\textbf{Item}} & \textbf{CPU33} \\ \hline
\multicolumn{2}{|c|}{Dimensiones} & A \\ \hline
\multicolumn{2}{|c|}{Consumo} & B \\ \hline
\multirow{4}{*}{Ambiente de operación} & Temperatura & C \\ \hline
& Ruido & D \\ \hline
& Vibración & E \\ \hline
& Schock & F \\ \hline
\end{tabular}
\end{table}
答案1
您可以使用 \cline 命令仅在两个单元格中绘制水平线。代码如下:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{table}
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{2}{|c|}{\textbf{Item}} & \textbf{CPU33} \\ \hline
\multicolumn{2}{|c|}{Dimensiones} & A \\ \hline
\multicolumn{2}{|c|}{Consumo} & B \\ \hline
\multirow{4}{*}{Ambiente de operación} & Temperatura & C \\ \cline{2-3}
& Ruido & D \\\cline{2-3}
& Vibración & E \\ \cline{2-3}
& Schock & F \\ \hline
\end{tabular}
\end{table}
\end{document}
您也可以参考以下链接如何绘制一条仅跨越部分表格单元格的水平线?
答案2
为了确保水平线不会穿过\multirow
单元格,您可以使用\cline
而不是\hline
。指定您的线应出现在哪些列中。
此外,我还添加了cellspace
包,以便在每个单元格的文本上方和下方留出一小段垂直空白。在第三个示例中,我还包含了一个不使用垂直线、不使用包\multirow
中水平线的表格booktabs
:
\documentclass{article}
\usepackage[column=0]{cellspace}
\setlength{\cellspacetoplimit}{3pt}
\setlength{\cellspacebottomlimit}{\cellspacetoplimit}
\usepackage{multirow}
\usepackage{booktabs} % only used in third example
\begin{document}
\begin{table}
\begin{tabular}{|0c|0c|0c|}
\hline
\multicolumn{2}{|0c|}{\textbf{Item}} & \textbf{CPU33} \\ \hline
\multicolumn{2}{|0c|}{Dimensiones} & A \\ \hline
\multicolumn{2}{|0c|}{Consumo} & B \\ \hline
\multirow{4.25}{*}{Ambiente de operación} & Temperatura & C \\ \cline{2-3}
& Ruido & D \\ \cline{2-3}
& Vibración & E \\ \cline{2-3}
& Schock & F \\ \hline
\end{tabular}
\end{table}
\begin{table}
\begin{tabular}{|0c|0c|0c|}
\hline
\multicolumn{2}{|0c|}{\textbf{Item}} & \textbf{CPU33} \\ \hline
\multicolumn{2}{|0c|}{Dimensiones} & A \\ \hline
\multicolumn{2}{|0c|}{Consumo} & B \\ \hline
\multirow{4.25}{2cm}{Ambiente de operación} & Temperatura & C \\ \cline{2-3}
& Ruido & D \\ \cline{2-3}
& Vibración & E \\ \cline{2-3}
& Schock & F \\ \hline
\end{tabular}
\end{table}
\begin{table}
\begin{tabular}{lc}
\toprule
Item & CPU33 \\
\midrule
Dimensiones & A \\
Consumo & B \\
Ambiente de operación \\
\quad Temperatura & C \\
\quad Ruido & D \\
\quad Vibración & E \\
\quad Schock & F \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案3
{NiceTabular}
您可以使用轻松制作该表nicematrix
。关键hvlines
是绘制块中除外的所有规则(由 创建\Block
)。
\documentclass{article}
\usepackage{nicematrix}
\NiceMatrixOptions{cell-space-bottom-limit=3pt,cell-space-top-limit=3pt}
\begin{document}
\begin{table}
\begin{NiceTabular}{lcc}[hvlines]
\Block{1-2}{\textbf{Item}} & & \textbf{CPU33} \\
\Block{1-2}{Dimensiones} & & A \\
\Block{1-2}{Consumo} & & B \\
\Block{4-1}{Ambiente\\ de operación} & Temperatura & C \\
& Ruido & D \\
& Vibración & E \\
& Schock & F \\
\end{NiceTabular}
\end{table}
\end{document}
您需要多次编译。