如图所示,表格第三列中每行文字太长,需要强制换行,该如何实现呢?
这里介绍两种方法。
第一种,要点在于第一行的命令,和在需要换行的那一栏中使用\tabincell{c}{ }命令,并在需要换行的文字后跟上\\
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}
\begin{table}[!hpb]
\caption{Verilog HDL语言能力总结}
\label{verilog}
\centering
\begin{tabular}
{@{}cccc@{}} \toprule
%\multicolumn{2}{c}{Item} \\ \cmidrule(r){1-2}
\hei{描述级别} & \hei{抽象级别} & \hei{功能描述} & \hei{物理模型} \\ \midrule
& \song{系统级} & \tabincell{c}{用语言提供的高级结构能够实现\\所设计模块外部性能的模型} &
\tabincell{c}{芯片、电路板和物理\\划分的子模块}\\ \cmidrule{2-4}
行为级& 算法级 & \tabincell{c}{用语言提供的高级功能\\能够实现算法运行的模型} &
部件之间的物理连接,电路板\\ \cmidrule{2-4}
& RTL级 & \tabincell{c}{描述数据如何在寄存器之间流动和\\如何处理、控制这些数据流动的模型} &
芯片、宏单元\\ \midrule
逻辑级 & 门级 & 描述逻辑门与逻辑门之间连接的模型 & 标准单元布图\\ \midrule
电路级 & 开关级 & \tabincell{c}{描述器件中三极管和存储节点\\以及他们之间连接的模型} & 晶体管布图 \\ \bottomrule
\end{tabular}
\end{table}
第一种方法的排版效果如下图所示:
第二种,这种方法主要是通过第6行的命令来限制每一列的宽度,这样当文字长度超过限制宽度的时候,便会自动换行,换行后,是左对齐的。个人觉得这种方法比上面的方法稍微简单些。
\begin{table}[hfpb]
\label{verilog}
\caption{Verilog HDL语言能力总结}
\hspace{0.5cm}
\centering
\begin{tabular} {p{40pt}p{50pt}p{170pt}p{130pt}}\toprule
\hei{描述级别} & \hei{抽象级别} & \hei{功能描述} & \hei{物理模型} \\ \midrule
& \song{系统级} & 用语言提供的高级结构能够实现所设计模块外部性能的模型 &
芯片、电路板和物理划分的子模块\\ \cmidrule{2-4}
行为级& 算法级 & 用语言提供的高级功能能够实现算法运行的模型 &
部件之间的物理连接,电路板\\ \cmidrule{2-4}
& RTL级 & 描述数据如何在寄存器之间流动和如何处理、控制这些数据流动的模型 &
芯片、宏单元\\ \midrule
逻辑级 & 门级 & 描述逻辑门与逻辑门之间连接的模型 & 标准单元布图\\ \midrule
电路级 & 开关级 & 描述器件中三极管和存储节点以及他们之间连接的模型 & 晶体管布图 \\ \bottomrule
\end{tabular}
\end{table}
第二种方法的排版效果如下图所示: