LaTeX之表格中强制换行


如图所示,表格第三列中每行文字太长,需要强制换行,该如何实现呢?

这里介绍两种方法。

第一种,要点在于第一行的命令,和在需要换行的那一栏中使用\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}
第二种方法的排版效果如下图所示:

猜你喜欢

转载自blog.csdn.net/kebu12345678/article/details/85140306